Oi, Álvaro! Tudo bem?
Assim como muitas outras linguagens de programação, o Python não consegue interpretar a condição if letra == 'a' or 'e' or 'i' or 'o' or 'u':
da maneira que pode parecer intuitiva para nós.
O Python, entende da seguinte forma: "Se a letra for igual a 'a', ou se 'e' for verdadeiro, ou se 'i' for verdadeiro, ou se 'o' for verdadeiro, ou se 'u' for verdadeiro". No final das contas, toda essa expressão é transformada, involuntariamente, em uma única string.
Como strings não vazias são consideradas como verdadeiras no Python, a condição sempre retornará verdadeiro, e por isso sempre imprimirá "Esta letra é uma vogal". Para contornar essa situação, teremos que verificar se a variável letra
é igual a alguma das vogais 'a'
, 'e'
, 'i'
, 'o'
ou 'u'
desta forma:
letra = str(input('Digite uma letra: ')).lower()
if letra == 'a' or letra == 'e' or letra == 'i' or letra == 'o' or letra == 'u':
print('Esta letra é uma vogal')
else:
print('Esta letra é uma consoante')
Ao separar as condições em nosso IF
, nos certificamos que todas as análises serão devidamente feitas antes de dizer se a letra é vogal ou consoante!
Espero ter ajudado, Álvaro! Se surgirem novas dúvidas, fico à disposição.
Um forte abraço.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!