1
resposta

Faça como eu fiz: dicionários

Minha resposta: simplifiquei o título para caber no limite de caracteres

import os

restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False}, 
                {'nome':'Pizza Superma', 'categoria':'Pizza', 'ativo':True},
                {'nome':'Cantina', 'categoria':'Italiano', 'ativo':False},
                {'nome': 'Pé de Fava', 'categoria': 'Nordestino', 'ativo':False}]

def exibir_nome():
    print('''Sabor Express ''')

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

def finalizar_app ():
    exibir_subtitulo("Finalizando programa... ")

def opcao_invalida():
    print("Opção Inválida\n")
    voltar_ao_menu_principal()

def cadastrar_novo_restaurante():
    exibir_subtitulo("Cadastro de novos restaurantes")

    nome_restaurante = input("Digite o nome do restaurante: ")
    categoria = input(f"digite o nome da categoria do restaurante {nome_restaurante}: ")

    dados_restaurante = {"nome":nome_restaurante, "categoria":categoria, "ativo":False}

    restaurantes.append(dados_restaurante)
    
    print(f"O Restaurante {nome_restaurante} foi Cadastrado com sucesso:")
    voltar_ao_menu_principal()


def listar_restaurantes():
    exibir_subtitulo("Listando os restaurantes \n")
    
    print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')
    for restaurante in restaurantes:
        nome_restaurante = restaurante['nome']
        categoria = restaurante['categoria']
        ativo = 'ativado' if restaurante['ativo'] else 'desativado'
        print(f' - {nome_restaurante.ljust(20)} | {categoria.ljust(20)} | {ativo}')
    print('\n')
    voltar_ao_menu_principal()    

def alternar_estado():
    exibir_subtitulo("Alternando Estado de Restaurante")
    nome_restaurante = input("Digite o nome do restaurante que deseja alternar o estado")
    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 com sucesso com sucesso' if restaurante['ativo'] else f'O restaurante {nome_restaurante} foi desativado com sucesso'
            print(mensagem)
    if not restaurante_encontrado:
        print("O restaurante não foi encontrado")

    voltar_ao_menu_principal()

def escolher_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma opção: '))

        match opcao_escolhida:
            case 1:
                cadastrar_novo_restaurante()
            case 2:
                listar_restaurantes()
            case 3:
                alternar_estado()
            case 4:
                finalizar_app()
            case _:
                opcao_invalida()
    except:
        opcao_invalida()

def exibir_subtitulo(texto):
    os.system("cls")
    linha = '*' * (len(texto))
    print(linha)
    print(texto)
    print(linha)
    print()



def voltar_ao_menu_principal():
    input("Digite uma tecla para voltar ao menu principal: ")
    main()

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

if __name__ == '__main__':
    main()
1 resposta

Oi, Luiz!

Sua solução ficou bem completa, você não só reproduziu a ideia da aula como também expandiu o projeto com mais restaurantes e organização das funções.

Mandou bem usando dicionários, ternário e match, isso mostra que você já está confortável com a estrutura do programa.

Bons estudos!

Sucesso

Imagem da comunidade