4
respostas

[Dúvida] Após digitar o nome do restaurante a mensagem "Opção Invlaida" aparece.

O meu código está logo abaixo.

Após digitar o nome do restaurante a mensagem de opção invalida aparece.

import os

restaurantes = {}

def exibir_nome_do_programa():
    print('Sabor Express.\n')

def exibir_opcoes():
    print('1. Cadastrar restaurante.')
    print('2. Listar restaurante.')
    print('3. Ativar restaurante.')
    print('4. Sair.\n')

def opcao_invalida():
    print('Opcão Invalida!\n')
    input('Digite uma tecla para coltar ao menu principal!')
    main()

def finalizando_app():
    os.system('cls')
    print('Sistema finalizado\n')

def cadastrar_novo_restaurante():
    os.system('cls')
    print('Cadastro de novos restaurantes.\n')
    nome_do_restaurante = input('Digite o nome do restaurante.\n')
    restaurantes.append(nome_do_restaurante)
    print(f'O restaurante: {nome_do_restaurante} foi cadastrado com sucesso\n.')
    input('Digite uma tecla para voltar ao menu principal!\n')
    main()
    
def escoler_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma opção: '))
        if opcao_escolhida == 1:
            cadastrar_novo_restaurante()
        elif opcao_escolhida == 2:
             print('Listar restaurantes')
        elif opcao_escolhida == 3:
            print('Ativar restaurantes')
        elif opcao_escolhida == 4:
            print('Finalizando...\n')
            finalizando_app()    
        else:
            opcao_invalida()
    except:
        opcao_invalida()

def main():
    os.system('cls')
    exibir_nome_do_programa()
    exibir_opcoes()
    escoler_opcao()

if __name__ == '__main__':
    main()
4 respostas

Olá Thiago,

O problema que está ocorrendo é que sua lista de restaurantes está definida com chaves e deveria ser colchetes.

restaurantes = []

Por ele não conseguir dar o append, a rotina "cadastrar_novo_restaurante" dá erro e o try cai na exceção, por isso mostra opção inválida.

Olá, Obrigado por responder.

Parece que o problema continua: Insira aqui a descrição dessa imagem para ajudar na acessibilidade


import os

restaurantes = []

def exibir_nome_do_programa():
    print('Sabor Express.\n')

def exibir_opcoes():
    print('1. Cadastrar restaurante.')
    print('2. Listar restaurante.')
    print('3. Ativar restaurante.')
    print('4. Sair.\n')

def opcao_invalida():
    print('Opcão Invalida!\n')
    input('Digite uma tecla para coltar ao menu principal!')
    main()

def finalizando_app():
    os.system('cls')
    print('Sistema finalizado\n')

def cadastrar_novo_restaurante():
    os.system('cls')
    print('Cadastro de novos restaurantes.\n')
    nome_do_restaurante = input('Digite o nome do restaurante.\n')
    restaurantes.append(nome_do_restaurante)
    print(f'O restaurante: {nome_do_restaurante} foi cadastrado com sucesso\n.')
    input('Digite uma tecla para voltar ao menu principal!\n')
    main()
    
def escoler_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma opção: '))
        if opcao_escolhida == 1:
            cadastrar_novo_restaurante()
        elif opcao_escolhida == 2:
             print('Listar restaurantes')
        elif opcao_escolhida == 3:
            print('Ativar restaurantes')
        elif opcao_escolhida == 4:
            print('Finalizando...\n')
            finalizando_app()    
        else:
            opcao_invalida()
    except:
        opcao_invalida()

def main():
    os.system('cls')
    exibir_nome_do_programa()
    exibir_opcoes()
    escoler_opcao()

if __name__ == '__main__':
    main()

Bom dia,

Acabei descobrindo que era problema de compilador.

Tudo certinho agora. Pode encerrar o tópico.

Bom dia Tiago.

Não sei o que pode ser então. Esse código que você colocou aqui, rodou ok aqui. Testei nas versões 3.10, 3.11 e 3.12 do python e em todas rodou como esperado a parte de cadastrar restaurante.

Só consigo pensar que talvez você pode estar usando uma versão mais antiga.