Minimalismo IV: o inferno do if-elif-else

Confira os princípios do código minimalista na introdução ao primeiro desafio.

Na aba Código, você encontrará um código ao qual falta apenas um caractere para passar nos testes. No entanto, seu objetivo é enviar uma função tão minimalista quanto possível. Use as dicas da seção abaixo.

Escreva uma função que retorne o valor booleano True se o número fornecido for zero, a string "positive" se ele for maior que zero ou a string "negative" se for menor que zero.

Dicas

Ao executar return, a função termina.

Por exemplo, este código:

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

Pode ser simplificado assim:

def compare_to_100(x):
    if x > 100:
        return "greater"
    if x < 100:
        return "smaller"
    return "equal"
  • Se x for maior que 100, Python não executará o código após o primeiro return.
  • Se x for menor que 100, Python não executará o código dentro do primeiro bloco if nem o código após o segundo return.
  • Se x for igual a 100, Python não executará o código dentro de nenhum dos dois blocos if.
  • Isso só funciona se houver um return dentro do bloco if.

Bônus

O código acima pode ser simplificado ainda mais:

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

Notas

  • Esta é uma série aberta: não há uma lista definitiva de temas para os desafios. Você pode deixar suas sugestões nos Comentários.
  • A legibilidade é, de fato, um conceito subjetivo. Vamos conversar sobre isso! Você pode deixar sua opinião nos Comentários.
  • Você encontra todos os exercícios desta série aqui.