How can we allow just one particular word?

Asked

Viewed 119 times

1

How to make only the name "Maria" allowed by the program?

I want any other word I put (e.g., John) the user can not proceed with the completion of the Form.

nome = input("Coloque seu nome: ") 
cpf = input("Coloque seu CPF: ")
endereco = input("Coloque seu Endereço: ") 
idade = input("Coloque sua idade: ")
altura = input("Coloque sua altura: ") 
telefone = input("Coloque seu telefone: ")

print (nome, "você tem", idade, "anos e", altura, "de altura.") 
while nome == "Maria":
    print("Seu telefone é: ", telefone)
    print("Seu cpf é: ", cpf)
    print("Seu endereço é: ", endereco) 
else:
    print("Nome diferente.")

1 answer

2


We can create a list of names that will be allowed:

ALLOWED_NAMES = ["maria"]

Note that the name is all in low box. It is important for a future validation.

We define the variable nome and read as long as the value does not belong to the list of allowed names:

nome = ""

# Enquanto o nome for inválido:
while nome.lower() not in ALLOWED_NAMES:

  # Pergunta o nome do usuário:
  nome = input("Coloque seu nome: ")

  # Verifica se o nome é permitido:
  if nome.lower() not in ALLOWED_NAMES:
    print("Usuário não permitido")

Do you realize that in the while we verify the value of nome.lower()? This is so that the user can type variations of the same name: maria, maria, maria, etc. For validation, we convert the name to lower box and check if it belongs to the list. Only when the name is valid, we continue the program.

Complete code

ALLOWED_NAMES = ["maria"]

nome = ""

# Enquanto o nome for inválido:
while nome.lower() not in ALLOWED_NAMES:

  # Pergunta o nome do usuário:
  nome = input("Coloque seu nome: ")

  # Verifica se o nome é permitido:
  if nome.lower() not in ALLOWED_NAMES:
    print("Usuário não permitido")

# Pergunta o CPF:
cpf = input("Coloque seu CPF: ")

# Pergunta o endereço:
endereco = input("Coloque seu endereço: ") 

# Pergunta a idade:
idade = input("Coloque sua idade: ")

# Pergunta a altura:
altura = input("Coloque sua altura: ") 

# Pergunta o telefone:
telefone = input("Coloque seu telefone: ")

print (nome, "você tem", idade, "anos e", altura, "de altura.") 
print("Seu telefone é: ", telefone)
print("Seu CPF é: ", cpf)
print("Seu endereço é: ", endereco) 

See working on Repl.it.

Note: Keeping the allowed names in a list is not trivial to the logic itself, it just keeps the program easy to expand to situations if more than one name is allowed. If Paul become an allowed name, simply add it to the list and no longer write lines of code implementing a new one if else.

Browser other questions tagged

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