Problem with data entry

Asked

Viewed 45 times

-1

Good night,

I’m a novice programmer who was testing what I learned in a course, I was trying to make a simple site registration, but at the time of reporting age, I wanted it to be only for those over 18, Only to test it and when the person typed a word instead of a number like that showed up a message with "Invalid answer" and it was possible for the user to try again, but I could not. I don’t know what I’m doing wrong, someone could help me?

inserir a descrição da imagem aqui

  • 5

    Welcome to [en.so]! You have posted an image of the code and/or error message. Although it sounds like a good idea, it’s not! One of the reasons is that if someone wants to answer the question, they can’t copy the code and change something inside. Clicking put the code/error as text. See more about this in these links - Manual on how NOT to ask questions, Post Error Message as Picture

2 answers

1

Hi, I saw that Voce put the age as str. If Voce change to int, when the user put a letter or symbol, error. I am also new in the area, I tried the following code:

nome = str(input('Insira seu nome e sobrenome para comecar: '))

print('Seja bem vindo, {}'.format(nome))

idade = int(input('Informe sua idade: '))


if idade < 18:
    print('A idade minima para acessar e 18 anos.')
else:
    endereco = str(input('Informe seu endereco: '))

0

Hello! I am also beginner and analyzing your code I managed to run it as follows. I think a "loop" cannot be inside a "Try" since "Try/except" always ends the program.

# Variavel do tipo string para entrad do nome
nome_completo = str(input('Insira o seu nome e sobrenome para iniciar o cadastro: '))
print(f'Seja bem-vindo {nome_completo}!')

# Variavel do tipo inteiro para entrada da idade
idade = int(input('Informe a sua idade para ter acesso ao conteúdo. \n'))

# Condicional que compara se a idade é maior ou igual a 18
if idade >= 18:
    print(f'{nome_completo} seu acesso foi liberado com sucesso! ')

# Loop infinito que verifica se a idade é menor que 18
while idade < 18:
    # Tratamento de erros
    # TRY -> executa enquanto a idade nao seja maior o igual a 18 anos
    try:
        print('Você precisa ser maior de 18 anos para acessar esse conteúdo:')
        enter_idade = int(input('Informe a sua idade para ter acesso ao conteúdo: '))
        if enter_idade >= 18:
            print(f'{nome_completo} seu acesso foi liberado com sucesso! ')
            break
    # EXECPT -> Caso o usuário digite um valor que não seja "int"
    # mostrará o print voltando ao loop.
    except ValueError:
        print('Por favor insira somente números inteiros na idade no campo idade: \n')

Browser other questions tagged

You are not signed in. Login or sign up in order to post.