Minimalismo IV: el infierno de if-elif-else

Consulta los principios del código minimalista en la introducción al primer desafío.

En la pestaña Código encontrarás código al que le falta un solo carácter para pasar las pruebas. Sin embargo, tu objetivo es enviar una función tan minimalista como sea posible. Usa los consejos de la sección siguiente.

Escribe una función que devuelva el valor booleano True si el número dado es cero, la cadena "positive" si es mayor que cero o la cadena "negative" si es menor que cero.

Consejos

Al ejecutar return, la función termina.

Por ejemplo, este código:

def compare_to_100(x):
    if x > 100:
        return "greater"
    elif x < 100:
        return "smaller"
    else:
        return "equal"

Puede simplificarse así:

def compare_to_100(x):
    if x > 100:
        return "greater"
    if x < 100:
        return "smaller"
    return "equal"
  • Si x es mayor que 100, Python no ejecutará el código que sigue al primer return.
  • Si x es menor que 100, Python no ejecutará el código dentro del primer bloque if ni el que sigue al segundo return.
  • Si x es igual a 100, Python no ejecutará el código dentro de ninguno de los dos bloques if.
  • Esto solo funciona si tienes un return dentro del bloque if.

Extra

El código anterior puede simplificarse aún más:

def compare_to_100(x):
    return "greater" if x > 100 else "smaller" if x < 100 else "equal"

Notas

  • Esta serie es abierta: no hay una lista definitiva de temas para los desafíos. Puedes dejar tus sugerencias en los Comentarios.
  • La legibilidad es, en efecto, un concepto subjetivo. ¡Hablemos de ello! Puedes dejar tu opinión en los Comentarios.
  • Puedes encontrar todos los ejercicios de esta serie aquí.