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()