Existe alguma forma de limitar o campo de resposta somente para Números ao perguntar coisas do tipo "Qual sua idade?"
Pergunto isso porque testei aqui no exercício e foi possível responder "20 anos˜, o que causou um erro na sequência.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Existe alguma forma de limitar o campo de resposta somente para Números ao perguntar coisas do tipo "Qual sua idade?"
Pergunto isso porque testei aqui no exercício e foi possível responder "20 anos˜, o que causou um erro na sequência.
Oiii Constantin, como você está? Espero que esteja bem ^-^
Podemos fazer uma verificação para ver se o que o usuário digitou é um número e caso não seja, repetimos o procedimento de pedir ao usuário para digitar a idade até que ele digite um valor correto(somente números). E para fazer isso podemos contar com a função isdigit, com ela saberemos se o valor digitado é ou não um número. Veja:
entrada_do_usuario = input('Qual a sua idade?\n')
while(not entrada_do_usuario.isdigit()):
entrada_do_usuario = input('Digite apenas números. Qual a sua idade?\n')
entrada_do_usuario = int(entrada_do_usuario)
print(f'Idade digitada pelo usuário: {entrada_do_usuario}')Resultado:
Qual a sua idade?
20 anos
Digite apenas números. Qual a sua idade?
40 anos
Digite apenas números. Qual a sua idade?
50 anos
Digite apenas números. Qual a sua idade?
30 kkk
Digite apenas números. Qual a sua idade?
20y
Digite apenas números. Qual a sua idade?
30
Idade digitada pelo usuário: 30Quando utilizamos o input, o tipo do valor que escrevemos será por padrão, do tipo str e a função isdigit é inerente ao tipo str, por isso, após o usuário digitar algum valor numérico precisamos converter para inteiro. Tudo bem?
Qualquer dúvida é só falar, estou à disposição. Abraços e bons estudos!
Perfeito, já vou copiar esse código aqui nas minhas anotações. Muito obrigado!