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

[Bug] Criei a função 'ativar restaurante' e a opcao 'sair' parou de funcionar

a diferença de conteúdo da unidade da 3 para 4 me deixou um pouco confuso, mas estou entendendo o essencial. Estou enfrentando um problema apos criar a função para ativar o restaurante, a função de encerrar o programa parou de funcionar. pedi um print na funcao de sair para entender melhor mas aparceu isso: <function opcao_escolhida at 0x000001850DF68E00>.

import os
#----VARIAVEIS------------------------
restaurantes = []
#----FUNCOES ESCONDIDAS------------------------
def clear_screen():
    os.system('cls' if os.name == 'nt' else 'clear')

def titulo_clear_screen():
    clear_screen()
    titulo()

def opcao_escolhida():
    try:
        titulo_clear_screen()
        menu()
        opcao = int(input('Escolha uma opção: '))
        if opcao == 1:
            cadastro()
        elif opcao == 2:
            listar_restaurantes()
        elif opcao == 3:
            ativar_restaurante()
        elif opcao == 4:
            exit_program()
        else:
            opcao_invalida()
    except: ValueError
    opcao_invalida()

def opcao_invalida():
    print('Opção inválida, tente novamente.\n')
    input('Pressione Enter para continuar...')
    main()

def voltar_menu():
    input('\ndigite algo para voltar ao menu...')  
    main()

def alternar_estado_restaurante():
    print('Certo irei alterar o estado do restaurante')
    nome_restaurante = input('Digite o nome do restaurante que deseja ativar/desativar: ')
    restaurante_encontrado = False
    for restaurante in restaurantes: 
        if nome_restaurante == restaurante['Nome']:
            restaurante_encontrado = True
            restaurante['Ativo'] = not restaurante['Ativo']
            mensagem = f'O restaurante {nome_restaurante} foi ativado.' if restaurante['Ativo'] else f'O restaurante {nome_restaurante}foi desativado com sucesso '
            print(mensagem)
            break
        if not restaurante_encontrado:
            print(f'O restaurante {nome_restaurante} não foi encontrado.')
#----FUNCOES ABERTAS------------------------

def titulo():
    print(""" 
░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░\n""")

def menu():
    print('1-Cadastrar restaurante')
    print('2-Listar restaurantes')
    print('3-Ativar restaurantes')
    print('4-Exit \n')

def cadastro(): 
    titulo_clear_screen()
    nome_restaurante = str(input('Digite o nome do restaurante: '))
    categoria_restaurante = str(input('Digite a categoria do restaurante: '))
    restaurante = {'Nome': nome_restaurante, 'Categoria': categoria_restaurante, 'Ativo': False}
    restaurantes.append(restaurante)
    print(f'Restaurante "{nome_restaurante}" cadastrado com sucesso!')
    voltar_menu()

def listar_restaurantes(): 
    titulo_clear_screen()
    if not restaurantes:
        print("Nenhum restaurante cadastrado.")
    else:
        for restaurante in restaurantes:
            nome = restaurante.get('Nome', 'Não informado')
            categoria = restaurante.get('Categoria', 'Não informada')
            ativo = restaurante.get('Ativo', False)  
            print(f'Nome: {nome}, Categoria: {categoria}, Ativo: {ativo}')
    voltar_menu()

def ativar_restaurante():
    titulo_clear_screen()
    alternar_estado_restaurante()
    voltar_menu()

def exit_program():  
    exit
    print(opcao_escolhida)

#-----DEF MAIN-----------------------

def main():
    clear_screen()
    titulo()
    menu()
    opcao_escolhida()
    
#-----MAIN-----------------------
if __name__ == "__main__":
    main()
1 resposta
solução!

Descobri o erro. eu deveria ter colocado: except ValueError: porem estava except: ValueError