Podem me auxiliar com este caso? Por favor.

777 views
Skip to first unread message

Italo Borges

unread,
Jan 15, 2016, 7:23:19 PM1/15/16
to Python Brasil
O Exercício é o seguinte:

*****Faca um Programa que verifique se uma letra digitada é vogal ou consoante***

OBS: Porém, eu não quero apenas informar se é vogal ou consoante,
quero também pedir ao usuário, caso ele NÃO coloque um caractere no formato (str), para ele colocar um LETRA,

EX: Se o usuário colocar um Símbolo ou um número, vai apresentar uma mensagem pedindo que ele digite uma letra,
Visto que não é possivel informar se um número/simbulo é Vogal ou Consoante.
____________________________________________________________________________

O PROBLEMA:

Logo de inicio, coloquei a função While(infinito caso não se coloque uma (str)), para verificar, pois se NÃO for uma (srt), vai apresentar uma
mensagem de erro "por favor, digite uma letra".

Mas não esta funcionando :(
Quando coloco um número, o programa lê como se fosse uma vogal(
'according' em inglês rs)

Por favor, quem puder me dar um help, muito obrigado.
Desde já agradeço pela atenção.
_______________________________________________________

SEGUE O SCRIPT:

__author__
= 'italo'
# coding: latin-1
# Faca um Programa que verifique se uma letra digitada e vogal ou consoante.


print('Type a letter:')
letter = input()

while type(letter) is not str:
print('Please, Type a Letter!!! "' + str(letter) + '" is not a Letter')
letter = input()

if letter == "a" or letter == "e" or letter == "i" or letter == "o" or letter == "u" :
print('The letter "' + str(letter) + '" is a vowel.')
else:
print('The letter "' + str(letter) + '" is a according.')


print("End")

Fabio C. Barrionuevo da Luz

unread,
Jan 15, 2016, 7:51:35 PM1/15/16
to python...@googlegroups.com

Ola, seja bem vindo ao grupo Python-Brasil.

Há várias formas de resolver isso, você poderia resolver com a função isalpha() uma string, com expressões regulares e etc.

Veja como ficaria com isalpha ( https://docs.python.org/3/library/stdtypes.html#str.isalpha )


print('Type a letter:')
letter =
str(input())

while not letter.isalpha():
    print('Please, Type a Letter!!! "{}" is not a Letter'.format(letter))
    letter = str(input())

# voce pode substuir isto #
if letter == "a" or letter == "e" or letter == "i" or letter == "o" or letter == "u" : # por:
if letter in "aeiou" :
    # print('The letter "' + str(letter) + '" is a vowel.')
    # esse tipo de concatenacao nao eh boa pratica em Python, use Python String Format
    #  aqui um bom guia https://pyformat.info/

print('The letter "{}" is a vowel.'.format(letter))
else:
print('The letter "{}" is a according.'.format(letter))
    

print("End")


Dito isto, aqui nós possuímos algumas regras que ajudam a manter essa lista útil e agradável para os participantes:

Antes de mandar a sua primeira pergunta, pedimos para que leia o texto:

http://wiki.python.org.br/AntesDePerguntar

http://wiki.python.org.br/ComoFazerPerguntasInteligentes <-Leitura Obrigatória

http://aprenda-python.blogspot.com.br/2014/02/como-perguntar.html

  • Seja SEMPRE cordial e respeitoso ao fazer e ao responder perguntas.

  • Não publique, indique qualquer coisa pirata, isso inclui software, livros, musicas, videos etc.

  • Nós não fazemos de forma alguma trabalhos de escola/faculdade para você. O principal interessado em aprender é exclusivamente você. Então por consequência, é você que deverá faze-lo. Os Acertos e principalmente os Erros são uma parte extremamente importante do processo de aprendizagem.

  • Sempre antes de perguntar:

    • leia a documentação oficial do software que você tem duvidas.
    • pesquise sua duvida no histórico da lista neste link: https://groups.google.com/forum/?fromgroups#!forum/python-brasil . Existe uma grande possibilidade de alguém ter tido uma duvida igual ou muito parecida com a sua e que a galera já ter respondido a pergunta.
  • Google e o DuckDuckGo são seus amigos, pesquise sua duvida em português e em inglês.

  • Ao fazer uma pergunta, mostre o que você já tentou, quais foram os erros que estão sendo apresentados.

    • Se tiver código, mostre-o também.
    • Também mande o link para a pagina do projeto que você quer ajuda.
  • Se for mandar muito código, coloque no https://gist.github.com/ e mande o link, ou coloque seu projeto inteiro num repositório código publico, como o Github.com, Bitbucket.com, Gitlab.com e mande o link

Há algumas Perguntas recorrentes (pode se pesquisar na lista ou ver essas respostas):

E para quem esta começando nós temos essas duas paginas muito boas com informações: http://wiki.python.org.br/InicieSehttp://wiki.python.org.br/AprendaProgramar

Bons estudos. :-D


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Fábio C. Barrionuevo da Luz
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

Capi Etheriel

unread,
Jan 17, 2016, 11:07:42 PM1/17/16
to Python Brasil
no lugar de checar mil vezes o valor de uma variavel, vc pode checar com uma lista.
ou seja, ao invés de
if letter == 'a' or letter == 'e' or letter == 'i' or ...
vc pode simplesmente escrever
if letter in ['a', 'e', 'i', 'o', 'u']
Reply all
Reply to author
Forward
0 new messages