Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] No meu não aparece todos restaurantes, apenas o primeiro

import os

restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False}, {'nome':'Pizza Superma', 'categoria':'Pizza', 'ativo':True}, {'nome':'Cantina', 'categoria':'Italiano', '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')

def finalizar_app(): exibir_subtitulo(""" ███████╗███╗░░██╗░█████╗░███████╗██████╗░██████╗░░█████╗░███╗░░██╗██████╗░░█████╗░ ██╔════╝████╗░██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗████╗░██║██╔══██╗██╔══██╗ █████╗░░██╔██╗██║██║░░╚═╝█████╗░░██████╔╝██████╔╝███████║██╔██╗██║██║░░██║██║░░██║ ██╔══╝░░██║╚████║██║░░██╗██╔══╝░░██╔══██╗██╔══██╗██╔══██║██║╚████║██║░░██║██║░░██║ ███████╗██║░╚███║╚█████╔╝███████╗██║░░██║██║░░██║██║░░██║██║░╚███║██████╔╝╚█████╔╝ ╚══════╝╚═╝░░╚══╝░╚════╝░╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░░╚════╝░""")

def voltar_ao_menu_principal(): input('\nDigite uma tecla para voltar ao menu principal: ') main()

def opcao_invalida(): print('Opção inválida!\n') voltar_ao_menu_principal()

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

def cadastrar_novo_restaurante(): exibir_subtitulo(""" █▀▀ ▄▀█ █▀▄ ▄▀█ █▀ ▀█▀ █▀█ █▀█   █▀▄ █▀▀   █▀█ █▀▀ █▀ ▀█▀ ▄▀█ █░█ █▀█ ▄▀█ █▄░█ ▀█▀ █▀▀ █▀ █▄▄ █▀█ █▄▀ █▀█ ▄█ ░█░ █▀▄ █▄█   █▄▀ ██▄   █▀▄ ██▄ ▄█ ░█░ █▀█ █▄█ █▀▄ █▀█ █░▀█ ░█░ ██▄ ▄█

      """)
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!')
voltar_ao_menu_principal()

def listar_restaurantes(): exibir_subtitulo(""" █░░ █ █▀ ▀█▀ ▄▀█   █▀▄ █▀▀   █▀█ █▀▀ █▀ ▀█▀ ▄▀█ █░█ █▀█ ▄▀█ █▄░█ ▀█▀ █▀▀ █▀ █▄▄ █ ▄█ ░█░ █▀█   █▄▀ ██▄   █▀▄ ██▄ ▄█ ░█░ █▀█ █▄█ █▀▄ █▀█ █░▀█ ░█░ ██▄ ▄█

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

    voltar_ao_menu_principal()

def escolher_opcao():

try:
    opcao_escolhida = int(input('Escolha uma opção: '))
    
    if opcao_escolhida == 1:
        cadastrar_novo_restaurante()
    elif opcao_escolhida == 2:
        listar_restaurantes()
    elif opcao_escolhida == 3:
        print('Ativar restaurantes')
    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()

2 respostas
solução!

acredito que o problema esteja no seu laço for...

na primeixa vez que rodar o laco vai chamar menu principal. acredito que a linha

voltar_ao_menu_principal()

deveria estar fora do laço.

Hahaha, era isso mesmo. Esquecid e responder antes, muito obrigada!