Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

erro na execução da opção 1

não estou conseguindo encontrar o erro na função cadastrar_novo_restaurante, o retorno deveria pedir o nome do restaurante mas estou recebendo a mensagem de opção inválida.

import os

restaurantes = []

def exibir_nome_do_programa():
    print('''
░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
''')

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

def finalizar_app():
    os.system('cls')
    print('Encerrando o app\n')

def opcao_invalida():
    print('Opção inválida!\n')
    input('Digite uma tecla para voltar ao menu principal')
    main()

def cadastrar_novo_restaurante():
    os.system('cls')
    print('Cadastro de novos restaurantes\n')
    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
    restaurantes.append(nome_do_restaurante)
    print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')
    input('Digite uma tecla para voltar ao menu principal')
    main()


def escolher_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 restaurante')
        elif opcao_escolhida == 4:
            finalizar_app()
        else:
            opcao_invalida()
    except:
        opcao_invalida()

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

if __name__ == '__main__':
    main()

estou usando o VSCode, fiz o teste com o Colab e funcionou.

1 resposta
solução!

Olá Itagiba! Tudo bem?

O código que você compartilhou parece estar correto em relação à função cadastrar_novo_restaurante(). No entanto, você mencionou que está recebendo uma mensagem de "opção inválida" ao invés de ser solicitado a inserir o nome do restaurante.

Uma possível causa para isso pode ser a forma como o terminal está lidando com a limpeza da tela no Windows. O comando os.system('cls') é usado para limpar a tela, mas em alguns casos, ele pode causar um comportamento inesperado, especialmente se houver alguma configuração específica no VSCode ou no terminal que você está usando.

Aqui estão algumas sugestões para tentar resolver o problema:

  1. Verifique o Terminal: Tente executar o script diretamente no terminal do Windows (cmd) ou no PowerShell, ao invés do terminal integrado do VSCode, para ver se o problema persiste.

  2. Comentar a Limpeza de Tela: Experimente comentar as linhas os.system('cls') no seu código para ver se isso afeta o comportamento do programa. Isso pode ajudar a identificar se o problema está relacionado à limpeza da tela.

Espero que essas sugestões ajudem a resolver o problema que você está enfrentando.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.