2
respostas

Quando usar else ou elif

Olá, tudo bem? Quando uso else? Quando uso elif? Quando estou criando um laço, não tenho a certeza de qual dos dois escolho. Alguém consegue detalhar mais sobre?

2 respostas

Imagina que você queira criar saudações diferentes baseado no sexo da pessoa. Seu sistema é um pouco mais antigo e tem algo assim.

pessoa = ("Julio", "m")
if (pessoa[1] == "m"):
    print(f"O {pessoa[0]} é uma pessoa muito legal")
else:
    print(f"A {pessoa[0]} é uma pessoa muito legal")

Como os únicos dois sexos eram 'f' ou 'm', se não for 'm' ele só pode ser 'f', então nesse caso você usuaria o else. Agora sua empresa pediu para você adaptar o seus sistema para lidar com o público mais atual e utilizar o gênero da pessoa, tendo que aceitar não binários como um gênero. Então você faz a mudança:

pessoa = ("Julio", "m")
if (pessoa[1] == "m"):
    print(f"O {pessoa[0]} é uma pessoa muito legal")
elif (pessoa[1] == "f"):
    print(f"A {pessoa[0]} é uma pessoa muito legal")
else:
    print(f"E {pessoa[0]} é uma pessoa muito legal")

O else sempre vai ser executado se a condição do if não for satisfeita. O elif, é executado se a condição do if não for satisfeita e se a condição dele próprio for aceita. Se você tem familiaridade com C é similar a sintaxe1 do C else if (condicao) { codigo }

Olá Matheus, ainda sou iniciante na parte de programação, mas acho que posso te ajudar.

Usando um exemplo de uma restrição do input. Suponha que se o valor for menor que 0 você deva printar "Valor negativo", Suponha também que deva printar "Zero", quando o valor do input for "0", Suponha agora que se o valor for positivo e par você deva printar "Valor positivo par", E por fim, printar "Valor positivo ímpar" para o caso de um valor maior que 0 e ímpar.

O código ficaria algo como:

numero = int(input("Digite um valor: ")

if(numero < 0):
    print("Valor negativo")
elif(numero == 0):
    print("Zero")
elif(numero > 0 and numero %2 == 0"):
    print("Valor positivo par")
else:
    print("Valor positivo ímpar")

A diferença entre o elif e else nesse caso são: que para o else, nesse caso não há outra escolha senão um número ímpar e positivo, devido os elifs usados anteriormente, mas isso pode variar de acordo com a sua preferência.

Espero ter ajudado, e caso eu esteja errado, alguém me corrija, por favor.