1
resposta

ola, estou tentando ir na opção listar restaurantes opção 2 do menu, porem ja tentei de tudo é não entra na opção selecionada, simplesmente retorna opção invalida finalizando app...... segue codigo!

import os

restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
                {'nome':'Pizzaria Suprema', 'categoria':'Pizza','ativo':True},
                {'nome':'Cantina', 'categoria':'Italiana', 'ativo':False}]

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

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

   

def finalizar_app():
    exibir_subtitulo('Finalizando o app')

def opcao_invalida():
    print('opção invalida!\n')
    input('digite qualquer tecla para voltar o inicio')
    main()


def exibir_subtitulo():
    os.system('cls')
    print()

def cadastro_novo_restaurante():
    os.system('cls')
    restaurantes_digitados = input('digite um nome de um restaurante:')
    restaurantes.append(restaurantes_digitados)
    print(f'o restaurante {restaurantes_digitados} foi cadastrado com sucesso!\n')
    input('\ndigite uma tecla para retornar ao menu principal')
    main()

def listar_restaurantes():
    exibir_subtitulo('listando restaurantes:')

    for restaurante in restaurantes:
        nome_restaurante = restaurante['nome']
        categoria = restaurante['categoria']
        ativo = restaurante['ativo']
        print(f'- {nome_restaurante} | {categoria} | {ativo}')

    exibir_subtitulo('\ndigite uma tecla para retornar ao menu principal')
    




def escolher_opcao():
    opcao_escolhida = int(input('Escolha uma opção: '))
    try:
        if opcao_escolhida == 1: 
            print('Cadastrar restaurante')
            cadastro_novo_restaurante()

        elif opcao_escolhida == 2: 
            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()
1 resposta

Boa noite! tudo bem ?

O problema está na função exibir_subtitulo(). Você a definiu sem nenhum parâmetro, mas a está chamando passando uma string...