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

Faça como eu fiz: dicionários

from os import system
restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
                {'nome':'Pizza suprema', 'categoria':'Italiana','ativo':True},
                {'nome':'Cantina','categoria':'Italiano','ativo':False}
]

def exibir_nome_do_programa():
    print("""
            ░██████╗░█████╗░██████╗░░█████╗░██████╗░
            ██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗
            ╚█████╗░███████║██████╦╝██║░░██║██████╔╝
            ░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗
            ██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║
            ╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝
    ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
    ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
    █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
    ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
    ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
    ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░""")

def exibir_opcoes():
    print('1. Cadastrar restaurante')
    print('2. Listar restaurante')
    print('3. Alternar estado do restaurante')
    print('4. Sair\n') #\n Pula uma linha
    
def cadastrar_novo_restaurante():
    resp = 'S'
    while resp == 'S':
        exibir_textos('Cadastro de novos restaurantes')
        nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
        categoria = input(f'Digite o nome da categoria do restaurante {nome_do_restaurante}: ')
        dados_do_restaurante = {'nome':nome_do_restaurante,'categoria':categoria,'ativo':False}
        restaurantes.append(dados_do_restaurante)
        exibir_textos(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')

        resp = input('Deseja cadastrar mais restaurantes [S/N]: ').upper().strip()
    voltar_ao_menu_principal()

def voltar_ao_menu_principal():
    exibir_textos(input('\nAperte "ENTER" para voltar ao menu principal '))
    main()

def opcao_invalida():
    exibir_textos('Opção inválida!')
    voltar_ao_menu_principal()

def exibir_textos(texto):
    system('cls')
    linha = '*' * (len(texto) + 4)
    print(linha)
    print(texto)
    print(linha)
    print()

def listar_restaurantes():
    exibir_textos('Lista de restaurantes')
    print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')
    print('-' * 60)
    for i in restaurantes: #Para cada restaurante na lista restaurante print
        nome_restaurate = i['nome']
        categoria = i['categoria']
        ativo = 'ativado' if i['ativo'] else 'desativado' # Ternario
        print(f'- {nome_restaurate.ljust(20)} | {categoria.ljust(20)} | {ativo}')
    voltar_ao_menu_principal()

def escolher_opcao():
        opcao_escolhida = int(input('Escolha uma opção: '))
        match opcao_escolhida:
            case 1:
                cadastrar_novo_restaurante()
            case 2:
                listar_restaurantes()
            case 3:
                alternar_estado_restaurante() 
            case 4:
                finalizar_app()
            case _:
                opcao_invalida()
    except:  
        opcao_invalida()   

def alternar_estado_restaurante():
    exibir_textos('Alternando estado do restaurante')
    nome_restaurante = input('Digite o nome do restaurante que deseja alterar 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 resurante {nome_restaurante} foi ativado com sucesso!' if restaurante['ativo'] else f'O  {nome_restaurante} foi desativado com sucesso!'
            print(mensagem)
    if not restaurante_encontrado:
        print(f'O restaurante {nome_restaurante} não foi encontrado!')
    voltar_ao_menu_principal()

def finalizar_app(): # def = Definição, cria uma função
     exibir_textos('Finalizando o app')

def main():
     system('cls')
     exibir_nome_do_programa()
     exibir_opcoes()
     escolher_opcao()

if __name__ == '__main__':
     main()
1 resposta
solução!

Olá, Adamos. Tudo bem?

Obrigado por compartilhar seu códigoaqui com a gente! O seu código está muito bem organizado e é uma excelente aplicação dos conceitos de dicionários. A forma como você estruturou o cadastro e a alternância de estado dos restaurantes está correta. O uso de match para lidar com as opções do menu é uma ótima escolha para manter o código limpo e fácil de seguir. Parabéns pelo trabalho!

Um detalhe interessante que você pode explorar no futuro é o método get() dos dicionários. Ele permite acessar os valores de forma mais segura, evitando erros caso a chave não exista. Caso queira se aprofundar um pouco mais, indico a leitura do artigo Python: Trabalhando com dicionários, da Alura.

Conte com o apoio do Fórum. Abraços e bons estudos!