Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Prevendo erro

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.

2 respostas
solução!

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: 30

Quando 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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software