Aprenent Python Recorrent el camí pas a pas

15 Lògica

Es tracta d’expossar els criteris per tal que el programa prenga les decisions.

Exemple:

color = 'verd':
if color == 'roig':
    print('Has d'esperar')
elif color == 'verd':
    print('Pots passar')
else:
    print('Passa amb cura')

Podem veure la definició de la funció

def estado_agua(temperatura):
    """(num) -> string
    funcion que determina el estado del
    agua en base a la temperatura en la que se encuentra. Admite
    datos de tipo int o float. Con otros tipos de datos devuelve un
    mensaje de "Estado Indeterminado"
    (-12) -> "estado del agua: solido"
    (95) -> "estado del agua: liquido"
    (129) -> "estado del agua: gaseoso"
    ("hola pepe") -> "estado indeterminado, temperatura no valida"
    """ 
 
    #Un primer if comprueba el tipo de dato pasado como argumento    
     
    if (type(temperatura) == int  or  type(temperatura) == float) :
        if temperatura <= 0 :
            return "estado del agua: solido"
        elif (temperatura > 0) and (temperatura <= 100) :
            return "estado del agua: liquido"
        elif temperatura >100 :
            return "estado del agua: gaseoso"
    else:
        return "estado indeterminado, temperatura no valida"

Introduïm un comodí:

def estado_agua(temperatura):
    """(num) -> string
    funcion que determina el estado del
    agua en base a la temperatura en la que se encuentra
    (-12) -> "estado del agua: solido"
    (95) -> "estado del agua: liquido"
    (129) -> "estado del agua: gaseoso"
    (hola pepe) -> "estado indeterminado, temperatura no valida"
    """
    #utiliza una cadena de texto como comodin para poder
    #diferenciar los datos de tipo numerico de los que
    #no lo son
    comodin="algo"
 
    #retorna el mensaje correspondiente dependiendo de
    #el rango en el que se encuentre la temperatura del
    #agua 
    if (type(temperatura)) != (type(comodin)):
        if temperatura <= 0 :
            return "estado del agua: solido"
        elif (temperatura > 0) and (temperatura <= 100) :
            return "estado del agua: liquido"
        elif temperatura >100 :
            return "estado del agua: gaseoso"
    else:
        return "estado indeterminado, temperatura no valida"

Font: Videotutoriales 17