import os
restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
{'nome':'Pizza Suprema', 'categoria':'Pizza','ativo':True},
{'nome':'Cantina', 'categoria':'Italiana','ativo':False},]
def exibir_nome_do_programa():
'''Exibe o nome estilizado do programa na tela'''
print("""
╭━━━╮╱╱╭╮╱╱╱╱╱╱╱╭━━━╮
┃╭━╮┃╱╱┃┃╱╱╱╱╱╱╱┃╭━━╯
┃╰━━┳━━┫╰━┳━━┳━╮┃╰━━┳╮╭┳━━┳━┳━━┳━━┳━━╮
╰━━╮┃╭╮┃╭╮┃╭╮┃╭╯┃╭━━┻╋╋┫╭╮┃╭┫┃━┫━━┫━━┫
┃╰━╯┃╭╮┃╰╯┃╰╯┃┃╱┃╰━━┳╋╋┫╰╯┃┃┃┃━╋━━┣━━┃
╰━━━┻╯╰┻━━┻━━┻╯╱╰━━━┻╯╰┫╭━┻╯╰━━┻━━┻━━╯
╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
""")
def exibir_opcoes():
'''Exibe as opções disponíveis no menu principal'''
print('1. Cadastrar restaurante')
print('2. Listar restaurante')
print('3. Alternar estado do restaurante')
print('4. Sair\n')
def finalizar_app():
'''Exibe a mensagem de finalização do app'''
exibir_subtitulo('Finalizando o app...')
def voltar_menu_principal():
''' Solicita uma tecla para voltar ao menu principal
Outputs:
- Retorna ao menu principal
'''
input('\nDigite uma tecla para voltar ao menu inicial ')
main()
def exibir_subtitulo(texto):
''' Exibe um subtítulo estilizado na tela
Inputs:
- texto: str - O texto do subtítulo
'''
os.system('cls')
linha = '*' * (len(texto))
print(linha)
print(texto)
print(linha)
print()
def cadastrar_novo_restaurante():
'''Função de cadastrar novos restaurantes ao dicionário
Input:
-Nome do restaurante
-Categoria
Output:
-Adiciona um novo restaurante a 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'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')
voltar_menu_principal()
def opcao_invalida():
''' Exibe mensagem de opção inválida e retorna ao menu principal
Outputs:
- Retorna ao menu principal
'''
print('Opção inválida\n')
voltar_menu_principal()
def listar_restaurante():
'''Lista os restaurantes presentes na lista
Outputs:
-Exibe a lista de restaurantes na tela
'''
exibir_subtitulo('Listando os restaurantes')
print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')
for restaurante in restaurantes: #python cria a variavel restaurante na declaração do for
nome_restaurante = restaurante['nome']
categoria = restaurante['categoria']
ativo = 'ativado' if restaurante['ativo'] else 'Desativado'
print(f'- {nome_restaurante.ljust(20)} | {categoria.ljust(20)} | {ativo}')
voltar_menu_principal()
def alternar_estado_restaurante():
'''Altera o estado ativo/desativado de um restaurante
Outputs:
- Exibe mensagem indicando oi= sucesso da operação
'''
exibir_subtitulo('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']
#A palavra reservada not inverte o valor daquilo que vem depois dela
mensagem = f'O restaurante {nome_restaurante} foi atiuvado 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_menu_principal()
def escolher_opcao():
'''Solicita e executa a opção escolhida pelo usuário
Outuputs:
-Executa a opção escolhida pelo usuário
'''
try:
opcao_escolhida = int(input('Escolha uma opção: '))
if opcao_escolhida == 1:
print('Cadastrar restaurante')
cadastrar_novo_restaurante()
elif opcao_escolhida == 2:
listar_restaurante()
elif opcao_escolhida == 3:
print('Ativar restaurantes')
alternar_estado_restaurante()
elif opcao_escolhida == 4:
finalizar_app()
else:
opcao_invalida()
except:
opcao_invalida()
def main():
'''Função principal que inicia o programa'''
os.system('cls')
exibir_nome_do_programa()
exibir_opcoes()
escolher_opcao()
if __name__ == '__main__':
main()