Preciso de ajuda para criar a seguinte lógica em python.
Terá um menu:
1) opção 1
2) opção 2
3) opção 3
*O usuário terá que digitar o número correspondente a opção e retornar ao menu sempre que quiser.
*Caso o usuário digite um número que seja diferente da opção, ou algum caractere que não seja um número, exibir uma mensagem de erro.
Preciso de ajuda principalmente no segundo, até consigo criar uma lógica que permita voltar para o menu, mas não consigo resolver os erros referentes aos caracteres diferentes.
Soluções para a tarefa
Resposta:
opcao = 0
while True:
try:
print("Menu\n1 - opção1\n2 - opção2\n3 - opção3")
opcao = int(input("Escolha uma das opções: "))
if not opcao in [1, 2, 3]:
print("Opção incorreta")
else:
if opcao == 1:
print("opcao 1")
retornar = input("Retornar ao menu? s/n: ")
if retornar == "n": break
elif opcao == 2:
print("opcao 2")
retornar = input("Retornar ao menu? s/n: ")
if retornar == "n": break
else:
print("opcao 3")
retornar = input("Retornar ao menu? s/n: ")
if retornar == "n": break
except ValueError:
print("Caractere inválido, digite uma das opções")
Explicação: Você pode utilizar o bloco try/except para pegar erros que quebram o código como por exemplo digitar um caractere especial na hora da opção. O except ValueError pega esse tipo de erro e deixa você tratar ele, sem encerrar o programa.