Não precisa do if opçao in opcoes
. Vc já testa se é 1, 2, ou 3 (ou seja, está verificando todos os valores possíveis), então se não for nenhum deles, é porque o valor é inválido. Ou seja, poderia ser apenas:
if opçao == "1":
print("Criando Registro.")
elif opçao == "2":
print("Listando Registro.")
elif opçao == "3":
print("Programa Finalizado.")
else:
print("Opcão inválida! Selecione uma das opcões no menu.")
E nesse caso a lista opcoes
passa a não ser necessária. E mesmo o lower
não me parece necessário, pois as opções válidas são dígitos: se digitar uma letra, tanto faz se é maiúscula ou minúscula, nunca será um dígito. E se digitar um número, chamar lower
não o altera. Então pode tirar o lower
também.
Alternativa
Mas se a ideia é ter opções e ações associadas, poderia usar um dicionário, no qual cada opção é mapeada para uma tupla com as mensagens e demais informações. Por exemplo:
opçoes = {
"1": ('Criar Registro de Estudante', 'Criando Registro'),
"2": ('Listar Registro de Estudante', 'Listando Registro'),
"3": ('Sair', 'Programa Finalizado')
}
print('Selecione a opção desejada:\n')
for opcao, mensagens in opçoes.items():
print(f'({opcao}) {mensagens[0]}.')
op = input("Escolha uma das opções: ")
# se está no dicionário, pega a mensagem correspondente
if op in opçoes:
print(f'{opçoes[op][1]}.')
else:
print("Opcão inválida! Selecione uma das opcões no menu.")
Claro, provavelmente vc quer executar alguma coisa para cada opção, então bastaria adicionar a respectiva função em cada opção:
def cadastrar():
print('cadastro')
# faz o cadastro
def listar():
print('listagem')
# lista os cadastros
import sys
def sair(): # sai do programa
sys.exit(0)
opçoes = {
"1": ('Criar Registro de Estudante', 'Criando Registro', cadastrar),
"2": ('Listar Registro de Estudante', 'Listando Registro', listar),
"3": ('Sair', 'Programa Finalizado', sair)
}
print('Selecione a opção desejada:\n')
for opcao, mensagens in opçoes.items():
print(f'({opcao}) {mensagens[0]}.')
op = input("Escolha uma das opções: ")
if op in opçoes:
print(f'{opçoes[op][1]}.')
# executa a função
opçoes[op][2]()
else:
print("Opcão inválida! Selecione uma das opcões no menu.")