1
resposta

[Projeto] Projeto finalizado

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()
1 resposta

Oi, Luís! Como vai?

Obrigada por compartilhar seu código com a comunidade Alura.

Parabéns pelo seu projeto! A estrutura está bem organizada e as funções estão claras e eficientes. É ótimo ver que você está aplicando os conceitos de maneira tão prática.

Continue empenhado e não hesite em retornar ao fórum sempre que tiver dúvidas ou quiser compartilhar mais insights.

Abraços e bons estudos!