1
resposta

Hora da prática: docstrings

import os

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

def exibir_nome_programa():
 '''Exibe o nome do programa'''
 print('''

░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
      ''')

def exibir_opcoes():
 ''' Exibe as opções do programa'''
 print('1.Castrar restaurante')
 print('2.Listar restaurante')
 print('3.Alternar estado do restaurante')
 print('4.Sair\n')

def finalizar_app():   
    '''Finaliza o app'''
    exibir_subtitulo('Finalizar app\n')

def voltar_menu_principal():
  '''Retona ao menu principal, exibindo nome do programa e opçoes de escolha'''
  input('\n\n Digite uma tecla para voltar ao menu inicial')
  main()

def exibir_subtitulo(texto):
  '''Exibe o titulo da opção escolhida'''
  os.system('cls')
  linha = '*' * len(texto)
  print(linha)
  print(texto)
  print(linha)
  print()
  

def opcao_invalida():
   '''Mostrar uma mensagem quando um valor digitado não está na lista de opções'''
   print('Opção inválida.\n')
   voltar_menu_principal()

def cadastrar_novo_restaurante():
  ''' Esssa função é responsavel por cadastrar um novo restaurante
  
  Input:
- Nome do restaurante
- Categoria

Output:
- Adiciona um novo restaurante à lista de restaurantes
    
  '''
  exibir_subtitulo('Cadastro de novos restaurantes')
  nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: \n')
  categoria = input(f'Digite o nome da caregoria do restaurante {nome_do_restaurante}: ')
  dados_restaurante = {'nome': nome_do_restaurante, 'categoria': categoria, 'ativo': False}
  restaurantes.append(dados_restaurante)
  print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso.\n')
  voltar_menu_principal()

def listar_restaurante():
  '''Mostra uma lista de todos os restaurantes cadastrados'''
  exibir_subtitulo('Listando 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_menu_principal()

def alternar_estado_restaurante():
    '''Alternar o estado do restaurante entre ativo e desativado'''
    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']
       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('O restaurante não foi encontrado.')
    voltar_menu_principal
    

def escolher_opcao():
 '''Seleciona a opção escolhida das opçoes '''
 try:
   opcao_escolhida = int(input('Escolha uma opção: '))
   if opcao_escolhida == 1:
     cadastrar_novo_restaurante()
   elif opcao_escolhida == 2:
     listar_restaurante()
   elif opcao_escolhida == 3:
     alternar_estado_restaurante()
   elif opcao_escolhida == 4:
    finalizar_app()
   else :
    opcao_invalida()
 except:
    opcao_invalida()

def main():
    '''Reinicia o programa'''
    print('Finalizando o app\n')
    exibir_nome_programa()
    exibir_opcoes()
    escolher_opcao()


if __name__ == '__main__':
    main()
1 resposta

Oi, Marcia! Como vai?

O seu código está muito bem organizado e com ótimas docstrings, isso mostra que você está se preocupando com a legibilidade e manutenção do seu projeto.

Uma dica interessante para o futuro é usar o método lower() quando for comparar textos inseridos pelo usuário, pois isso ajuda a evitar problemas com letras maiúsculas ou minúsculas. Veja este exemplo:


nome = input('Digite seu nome: ').lower()
if nome == 'joao':
    print('Olá, João!')
else:
    print('Nome não encontrado.')

O método lower() transforma o texto digitado em minúsculas, facilitando a comparação.

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