Jump to content
Fórum Script Brasil
  • 0

Erro no if


Question

Ola, estou iniciando em python e estava fazendo uns exercicios. O exercicio é: Faça um Programa que verifique se uma letra digitada é vogal ou consoante.

Eu fiz assim:

letra = input('Digite uma letra: ').strip()
if len(letra) > 1:
    print('não é possivel verificar mais de uma letra ')
else:
    if letra.lower() == 'a' or 'e' or 'i' or 'o' or 'u':
        print('Letra digitada é uma vogal')
    else:
        print('Letra digitada é uma consoante')

Mas qualquer letra ou numero que eu digite aparece que é uma vogal. alguém sabe porque? E alguém tem uma dica de como eu poderia impossibilitar que digitem numeros? Eu pensei em fazer um if com todos os numeros, tipo if letra == '0' or '1' or.. mas acho que deve ter alguma forma mais facil de fazer isso.

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Voce não pode fazer assim:

if letra.lower() == 'a' or 'e' or 'i' or 'o' or 'u':

O correto seria fazer assim:

if letra.lower() == 'a' or letra.lower() == 'e' or letra.lower() == 'i' or letra.lower() == 'o' or letra.lower() == 'u':

Mas nesse caso tem uma forma mais facil:

if letra in 'aeiou':

O código completo fica assim:

while True:
    letra = str(input('=> ')).strip()

    if len(letra) == 0:
        print('Nenhum valor foi digitado')

    elif not letra.isalpha():
        print('Digite apenas letras!')
    
    elif len(letra) > 1:
        print('Digite apenas uma letra!')
    
    else:
        if letra in 'aeiou':
            print('vogal')

        else:
            print('consoante')

Se todo o conteudo da variavel letra for uma letra, a funçao isalpha() retorna True!

leia mais aqui: https://docs.python.org/3/library/stdtypes.html#str.isalpha

eu só esqueci de usar o lower()

 

Edited by ThiagoD
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644525
×
×
  • Create New...