Ir para conteúdo
Fórum Script Brasil
  • 0

Erro no if


xxp

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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()

 

Editado por ThiagoD
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...