How to allow only a certain word?

1

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

I want any other word that I put (ex: John) the user can not continue 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.")
    
asked by anonymous 21.02.2017 / 16:56

1 answer

2

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

ALLOWED_NAMES = ["maria"]

Notice that the name is all in the box. It is important for future validation.

We define the variable nome and read it while 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")

Notice that in%% of% we check the value of while ? So that the user can type variations of the same name: Maria, Maria, MARIA, etc. For validation, we convert the name to the lower case and check if it belongs to the list. Only when the name is valid will 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 at Repl.it .

  

Note : Keeping the names allowed in a list is not trivial for the logic itself, it just keeps the program easy to expand for situations if more than one name is allowed. If Paulo was a permissible name, simply add it to the list and do not write more lines of code by implementing a new nome.lower() .

    
21.02.2017 / 17:10