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.