DEV Community

Eduardo Santos
Eduardo Santos

Posted on

Optimizar sentencia if, elif, else

En algún momento de nuestra vida como desarrolladores nos enfrentamos a controlar una situación con diferentes opciones, una de ellas podría ser controlar los días de la semana o los meses.
Para poder enfrentar esta situación escribimos un código como el siguiente:

if dia == 1:
    return “lunes”
elif dia == 2:
    return “martes”
…
elif dia == 7:
    return “domingo”
else:
    return “dia no controlado”
Enter fullscreen mode Exit fullscreen mode

Pero podríamos eficientar este proceso haciendo uso de diccionarios, esto nos permitirá reducir significativamente las líneas de código, y generar un código mucho mas limpio.

DICT_DIAS = {
    '1': 'lunes',
    '2': 'martes',
    '3': 'miercoles',
    '4': 'jueves',
    '5': 'viernes',
    '6': 'sabado',
    '7': 'domingo'
}

def obtener_dia(valor:str)->str:
    return DICT_DIAS.get(valor,'Valor no controlado')
Enter fullscreen mode Exit fullscreen mode

Con el código anterior no solamente logramos optimizar nuestro código si no que emula la función de la sentencia case, en caso que el valor buscado no exista devolvera 'Valor no controlado'

Top comments (0)