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.
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: 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!