It is because you are turning the letter into a list. The operator in
checks if something belongs to the list. Since the vowel list only has strings, it only makes sense to test if strings belong to it.
So to test if the letter belongs to the list, don’t turn it into a list, just do:
mensagem = input("Digite qualquer letra\n")
Another detail is that you can simplify the code using only if
/else
:
if mensagem in vogais:
print("A letra é uma vogal")
else:
print("A letra é uma consoante")
If the message is not in the vowel list, it already falls in the else
. No reason to test again if the letter does not belong to the list.
Remember that this code is very "naive", because if I type "@", or "!" or "2", for example (or even a capital vowel) it says it is a consonant.
To be more precise, the ideal is also to have a list of consonants:
# transforma o que foi digitado em letra minúscula
mensagem = input("Digite qualquer letra\n").lower()
vogais = ['a', 'e', 'i', 'o', 'u']
consoantes = ['b', 'c', etc...] # coloque todas as consoantes aqui
if mensagem in vogais:
print("A letra é uma vogal")
elif mensagem in consoantes:
print("A letra é uma consoante")
else:
print("O que foi digitado não é uma vogal nem consoante")
Finally, it is worth remembering that this code does not consider accented letters (but simply add them to the list, if applicable).