Python - Mínimo error en codigo

 
Vista:

Mínimo error en codigo

Publicado por Maximo (6 intervenciones) el 09/06/2021 16:47:37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def capacidad_recinto(area, nombre_del_recinto):
 
    nombre_lower = nombre_del_recinto.lower()
 
    if "sala " in nombre_lower:
 
        area_total=area//3
        return int(area_total)
 
    elif "edificio " in nombre_lower:
 
        area_total=area//2
        return int(area_total)
 
    elif "patio " in nombre_lower:
 
        area_total=area//1.5
        return int(area_total)
 
    else:
        return (0)

tengo el siguiente código, pero por ejemplo en este input; nombre_recinto_1 = 'PrePatio de Humanidades' me deberia returnar 0 ya que Sala, Edificio y Patio NO deben ser substrings de otra palabra, pero no puedo solucionar este problema de substrings, si alguien me pudiera ayudar porfavor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Mínimo error en codigo

Publicado por joel (903 intervenciones) el 09/06/2021 18:40:31
Hola Maximo, pero "patio" esta en el cadena "PrePatio de Humanidades", no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Mínimo error en codigo

Publicado por tincopasan (858 intervenciones) el 09/06/2021 20:49:25
si entendí tu planteo se podría resumir a:

1
2
3
4
5
6
7
8
def capacidad_recinto(area, nombre_del_recinto):
    nombre_lower = nombre_del_recinto.lower().split()
    lista={'sala':3,'edificio':2,'patio':1.5}
    for x in nombre_lower:
        divisor=lista.get(x)
        if divisor != None:
            return int(area // divisor)
    return 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar