image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Gabriel Garcia
Gabriel Garcia24/08/2025 19:12
Compartir

Otimizando o Sistema Bancário com Funções Python

    Otimizando o Sistema Bancário com Funções Python

    Este artigo explora o desenvolvimento de um sistema bancário modularizado utilizando Python, com foco na separação de responsabilidades e na implementação de funcionalidades essenciais para a gestão de contas e usuários.

    Objetivo do Projeto

    O projeto visa aprimorar um sistema bancário básico, implementando as seguintes funcionalidades:

    • Depósito: Permite adicionar valores à conta do usuário.
    • Saque: Permite retirar valores da conta, respeitando limites de saldo e número de saques.
    • Extrato: Exibe o histórico de transações realizadas.
    • Cadastro de Usuário: Registra novos clientes no sistema.
    • Cadastro de Conta Corrente: Associa uma conta bancária a um usuário.DIO

    Essas funcionalidades são implementadas por meio de funções específicas, promovendo a modularização e facilitando a manutenção do código.

    Estrutura do Código

    1. Função menu()

    Exibe o menu principal do sistema e solicita a escolha do usuário.DIO

    
    import textwrap
    
    def menu():
      menu = """
      ----------------- MENU ------------------
      [d] Depositar
      [s] Sacar
      [e] Extrato
      [nc] Nova Conta
      [lc] Lista Contas
      [nu] Novo Usuário
      [q] Sair
      => """
      return input(textwrap.dedent(menu))
    

    2. Função depositar()

    Realiza depósitos na conta do usuário, atualizando o saldo e o extrato.DIO+1

    
    def depositar(saldo, valor, extrato):
      if valor > 0:
          saldo += valor
          extrato += f"Depósito: R$ {valor:.2f}\n"
          print("\n Depósito Realizado. ")
      else:
          print("\n Operação Inválida. ")
      return saldo, extrato
    

    3. Função sacar()

    Permite saques da conta, verificando saldo, limite e número de saques permitidos.DIO

    
    def sacar(*, saldo, valor, extrato, limite, num_saques, limite_saques):
      sem_saldo = valor > saldo
      sem_limite = valor > limite
      sem_saque = num_saques >= limite_saques
      if sem_saldo:
          print("\n Saldo Insuficiente. ")
      elif sem_limite:
          print("\n Sem Limite. ")
      elif sem_saque:
          print("\n Número de Saques Excedido. ")
      elif valor > 0:
          saldo -= valor
          extrato += f"Saque: R$ {valor:.2f}\n"
          num_saques += 1
          print("\n Saque Realizado ")
      else:
          print("\n Operação Inválida ")
      return saldo, extrato
    

    4. Função exibir_extrato()

    Exibe o extrato bancário do usuário, mostrando o histórico de transações e o saldo atual.

    
    def exibir_extrato(saldo, *, extrato):
      print("\n------------------------ EXTRATO ----------------------")
      print("Não Foram Realizadas Movimentações." if not extrato else extrato)
      print(f"\n Saldo: R$ {saldo:.2f}")
      print("---------------------------------------------------------")
    

    5. Função novo_usuario()

    Cadastra um novo usuário no sistema, coletando informações como CPF, nome, data de nascimento e endereço.DIO

    
    def novo_usuario(usuarios):
      cpf = input("CPF (22222222222): ")
      usuario = filtrar_usuario(cpf, usuarios)
      if usuario:
          print("\n Usuário já cadastrado ")
          return
      nome = input("Nome Completo: ")
      data_nascimento = input("Digite a data de nascimento: (dd-mm-aaaa): ")
      endereco = input("Digite o Endereco")
      bairro = input("Digite o Bairro: ")
      cidade = input("Digite a Cidade: ")
      uf = input("Digite o Estado: ")
      usuarios.append({"nome": nome, "data_nascimento": data_nascimento, "cpf": cpf, "endereco": endereco, "bairro": bairro, "cidade": cidade, "estado": uf})
      print("\n Usuário Cadastrado com Sucesso ")
    

    6. Função filtrar_usuario()

    Busca um usuário no sistema pelo CPF.DIO

    
    def filtrar_usuario(cpf, usuarios):
      usuarios_filtrados = [usuario for usuario in usuarios if usuario['cpf'] == cpf]
      return usuarios_filtrados[0] if usuarios_filtrados else None
    

    Conclusão

    Este projeto exemplifica a aplicação de conceitos fundamentais de programação em Python, como funções, controle de fluxo e manipulação de listas e strings. A modularização do código facilita a manutenção e expansão do sistema, permitindo a adição de novas funcionalidades de forma organizada e eficiente.DIO

    Para mais detalhes e acesso ao código completo, visite o repositório no GitHub: Otimizando o Sistema Bancário com Funções Python.

    Compartir
    Recomendado para ti
    Ri Happy - Front-end do Zero #2
    Avanade - Back-end com .NET e IA
    Akad - Fullstack Developer
    Comentarios (1)

    EL

    Emerson Liberalino - 24/08/2025 20:30

    Muito bom!