Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] exercicios Python - 5

segue o projeto com as DocStrings

import os

restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
                {'nome':'Pizza Suprema', 'categoria':'Pizza', 'ativo':True},
                {'nome':'Cantina', 'categoria':'Italiano', 'ativo':False}]


def exibir_do_programa():
      ''' Função que exibe o nome do programa, em formato especial'''
      print('''
░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
      ''')

def exibir_opcoes():
      '''Função responsavel por apresentar as opções disponiveis no menu principal'''
      print('1 . Cadastrar Restaurante')
      print('2 . Listar Restaurante')
      print('3 . Alternar estado do Restaurante')
      print('4 . Sair\n')

def finalizar_app():
    '''Função que encerra o programa'''
    exibir_subtitulo('Encerrando o programa\n')

def opcao_invalida():
     '''Função que informa ao usuario que selecionou ou inseriu um valor invalido'''
     print('opção invalidade\n')
     voltar_ao_menu()

def exibir_subtitulo(texto):
      '''Funcão que realiza a limpeza da tela, e adiciona um estilo a imagem na tela
      obs. A função e realizada a cada troca de menu.
      '''
      os.system('cls')
      linha = '*' * (len(texto))
      print(linha)
      print(texto)
      print(linha)
      print()

def voltar_ao_menu():
      '''Função que retorna ao menu principal do programa
      
      Outputs: 
      -Retorna ao menu pricnipal
      '''
      input('\nDigite uma tecla para voltar o menu ')
      main()

def cadastrar_novo_restaurante():
     '''Essa função e responsavel por cadastrar um novo restaurante
     
     inputs:
     - Nome do Restaurantes
     - Categoria

     Outputs:
     - Adicionaum novo restaurante a lista de restaurantes

     '''
     exibir_subtitulo('Cadastro de novos Restaurantes\n')
     nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: \n')
     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\n')
     voltar_ao_menu()

def listar_restaurantes():
      ''' Função responsavel por apresentar uma lista dos restaurantes pertencente a lista'''
      exibir_subtitulo('Listando os Restaurantes')

      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}' )
      voltar_ao_menu()

def alternar_estado_restaurante():
      ''' Função responsavel por ativar ou desativar os restaurantes na lista
      
      inputs:
      - insere o nome do restaurantes cadastrado

      Outputs:
      - Altera o status do restaurante informado. 

      Obs. E recomendando que apos executar essa função, utilize a listar restaurantes para conferir se a alteração foi feita corretamente.

      '''
      exibir_subtitulo('Alternando o 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']
                  mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'O restaurante {nome_restaurante} foi desativado com sucesso'
                  print(mensagem)
      if not restaurante_encontrado:
            print(f'O restaurante {nome_restaurante} não foi encontrado')

      voltar_ao_menu()

2 respostas

segue abaixo o restante do codigo

def escolhe_opcao():
      ''' Função responsavel por direcionar o usuario a função que ele deseja
      
      inputs:
      - Insere o numero da opção deseja

      Outputs:
      - Programa limpa a tela
      - inicia a Função seleciona
      
      '''
      try: 
            opcao_escolhida = int(input('Escolha uma opção: '))
            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():
    ''' Função responsavel por exibir a tela inicial do program'''
    os.system('cls')
    exibir_do_programa()
    exibir_opcoes()
    escolhe_opcao()

if __name__ == '__main__':
    main()
solução!

Oi, Rony!

Agradeço por compartilhar seu código com a comunidade Alura.

Foi ótimo ver que você adicionou as docstrings em todas as funções, explicando entradas, saídas e até observações quando necessário. Isso torna seu projeto muito mais profissional e fácil de ser mantido por outras pessoas.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!