1
resposta

Faça como eu fiz: dicionários

import trace, os, platform

### Debbugger 1-2
#tracer = trace.Trace(
#    trace=True,     # Set to True to trace line execution
#    count=False
#)

# Old
# restaurantes = ['Pizza', 'Sushi']

# New
restaurantes = [{'nome':'Matsu', 'categoria':'Japonesa', 'status':False},
                {'nome':'Pizza Suprema', 'categoria':'Italiana', 'status':True},
                {'nome':'Esfihas Alibabos', 'categoria':'Árabe','status':False}]
###

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

def finalizar_app():
    exibir_titulo('Finalizar app')

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

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

def exibir_titulo(texto):
    sistema = platform.system()
    if sistema == 'Windows':
        os.system('cls')
    elif sistema == 'macOS' or 'Linux':
        os.system('clear')
    else:
        print('Sistema Operacional, não identificado.')
    linha = '*' * (len(texto))
    print(linha, texto, linha,'\n')

def cadastrar_novo_restaurante():
    exibir_titulo('Cadastro de novos restaurantes')
    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
    # restaurantes.append(nome_do_restaurante)
    # New
    categoria = input(f'Digite o nome da categoria do restaurante {nome_do_restaurante}: ')
    dados_do_restaurante = {'nome': nome_do_restaurante, 'categoria': categoria, 'status': False}
#    print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')
    restaurantes.append(dados_do_restaurante)
    print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')   
    voltar_ao_menu_principal()

def listar_restaurantes():
    exibir_titulo('Listando restaurantes')

    print ('Nome do restaurante'.ljust(22),'| Nome da Categoria'.ljust(22),'| Status')
    for restaurante in restaurantes:
        # print(f'.{restaurante}')
        # New
        nome_restaurante = restaurante['nome']
        categoria = restaurante['categoria']
        status = 'ativo' if restaurante['status'] else 'desativado'
        print(f'- {nome_restaurante.ljust(20)} | {categoria.ljust(20)} | {status}')
        ###

    voltar_ao_menu_principal()

def alternar_estado_restaurante():
    exibir_titulo('Alterando estado do restaurante.')
    nome_restaurante = input('Digite o nome do restaurante, o qual deseja alterar o estado: ')
    restaurante_encontrado = False

    for restaurante in restaurantes:
        if nome_restaurante == restaurante['nome']:
            restaurante_encontrado = True
            restaurante['status'] = not restaurante['status']
            mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['status'] else f'O restaurante foi desativado com sucesso.'
            print(mensagem)
    if not restaurante_encontrado:
        print('Restaurante não foi encontrado')

    voltar_ao_menu_principal()

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

        if opcao_escolhida == 1: 
            cadastrar_novo_restaurante()
        elif opcao_escolhida == 2: 
            listar_restaurantes()
        elif opcao_escolhida == 3: 
            alternar_estado_restaurante()
        elif opcao_escolhida == 4: 
            finalizar_app()
        else: 
            opcao_invalida()
    except:
        opcao_invalida()

def main():
    # Exibir nome do programa
    exibir_titulo('Delivery Restaurantes')
    exibir_opcoes()
    escolher_opcao()

if __name__ == '__main__':
    main()
    ### Debugger 2-2
    # tracer.runfunc(main)
1 resposta

Olá, Marcos! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de dicionários para estruturar os dados, utilizou muito bem o platform.system() para adaptar a limpeza da tela conforme o sistema operacional e ainda compreendeu a importância do encapsulamento das funcionalidades para manter o código organizado e reutilizável.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!