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)