Minha resposta: simplifiquei o título para caber no limite de caracteres
import os
restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
{'nome':'Pizza Superma', 'categoria':'Pizza', 'ativo':True},
{'nome':'Cantina', 'categoria':'Italiano', 'ativo':False},
{'nome': 'Pé de Fava', 'categoria': 'Nordestino', 'ativo':False}]
def exibir_nome():
print('''Sabor Express ''')
def exibir_opcoes():
print('1. Cadastrar restaurante')
print('2. Listar restaurante')
print('3. Alternar estado do restaurante')
print('4. Sair\n')
def finalizar_app ():
exibir_subtitulo("Finalizando programa... ")
def opcao_invalida():
print("Opção Inválida\n")
voltar_ao_menu_principal()
def cadastrar_novo_restaurante():
exibir_subtitulo("Cadastro de novos restaurantes")
nome_restaurante = input("Digite o nome do restaurante: ")
categoria = input(f"digite o nome da categoria do restaurante {nome_restaurante}: ")
dados_restaurante = {"nome":nome_restaurante, "categoria":categoria, "ativo":False}
restaurantes.append(dados_restaurante)
print(f"O Restaurante {nome_restaurante} foi Cadastrado com sucesso:")
voltar_ao_menu_principal()
def listar_restaurantes():
exibir_subtitulo("Listando os restaurantes \n")
print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')
for restaurante in restaurantes:
nome_restaurante = restaurante['nome']
categoria = restaurante['categoria']
ativo = 'ativado' if restaurante['ativo'] else 'desativado'
print(f' - {nome_restaurante.ljust(20)} | {categoria.ljust(20)} | {ativo}')
print('\n')
voltar_ao_menu_principal()
def alternar_estado():
exibir_subtitulo("Alternando Estado de Restaurante")
nome_restaurante = input("Digite o nome do restaurante que deseja alternar 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 Restaurante {nome_restaurante} foi ativado com sucesso 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_ao_menu_principal()
def escolher_opcao():
try:
opcao_escolhida = int(input('Escolha uma opção: '))
match opcao_escolhida:
case 1:
cadastrar_novo_restaurante()
case 2:
listar_restaurantes()
case 3:
alternar_estado()
case 4:
finalizar_app()
case _:
opcao_invalida()
except:
opcao_invalida()
def exibir_subtitulo(texto):
os.system("cls")
linha = '*' * (len(texto))
print(linha)
print(texto)
print(linha)
print()
def voltar_ao_menu_principal():
input("Digite uma tecla para voltar ao menu principal: ")
main()
def main():
os.system('cls')
exibir_nome()
exibir_opcoes()
escolher_opcao()
if __name__ == '__main__':
main()