Abaixo, todo o código efetuado junto com as aulas da Alura, além dos docstings, procurei uma solução para que os dados cadastrados sejam armazenados após finalização do app e conheci o .json (amor à primeira vista), mas enfim, abaixo consta o código puro.
(Parte 1)
import os
import json
try:
with open('restaurantes.json', 'r') as arquivo:
restaurantes = json.load(arquivo)
except FileNotFoundError:
restaurantes = [{'nome':'Hizza Put', 'categoria':'Pizzaria', 'ativo':False},
{'nome':'Iendag', 'categoria':'Japonesa', 'ativo':True},
{'nome':'Dam Monalds', 'categoria':'Hamburgueria', 'ativo':False}]
#Tela Inicial
def exibir_nome_do_programa():
'''
Esta função apresenta o nome do restaurante de uma forma visualmente agradavel
'''
print('''
█▀ ▄▀█ █▄▄ █▀█ █▀█ █▀▀ ▀▄▀ █▀█ █▀█ █▀▀ █▀ █▀
▄█ █▀█ █▄█ █▄█ █▀▄ ██▄ █░█ █▀▀ █▀▄ ██▄ ▄█ ▄█
''')
def exibir_opcoes_do_restaurante():
'''
Esta função apresenta as possíveis opções na qual o usuário pode selecionar
'''
print('1. Cadastrar Restaurante')
print('2. Listar Restaurante')
print('3. Alternar Status do Restaurante')
print('4. Sair\n')
#Funções Gerais
def voltar_ao_menu_principal():
'''
Esta função serve para o usuário retornar ao menu principal para quando ele estiver realizando alguma atividade e queira retornar
'''
input('\nPressione Enter para voltar ao menu ')
main()
def opcao_invalida():
'''
Esta função mostra ao usuário que ele inseriu algum input incorreto no menu principal
'''
print('Opção Inválida, digite dentre as opções acima')
voltar_ao_menu_principal()
def exibir_subtitulo(texto):
'''
Função para formatar um padrão nos subtítulos de cada parte do programa
Nele se limpa o sistema e mostra o texto com "*" acima e abaixo do texto do subtítulo
'''
os.system('cls')
linha = '*' * (len(texto))
print(linha)
print(texto)
print(linha)
print()
#Funções das opções
def cadastrar_restaurante():
'''
Essa função é responsável por cadastrar um novo restaurante
Inputs:
- Nome do restaurante
- Categoria
Outputs:
- Adiciona um novo Restaurante à lista de restaurantes
'''
exibir_subtitulo('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)
print(f'Restaurante {nome_do_restaurante} cadastrado com sucesso!')
voltar_ao_menu_principal()