Sistema bancário simples em linha de comando, implementado em Python com Programação Orientada a Objetos. Demonstra herança, classes abstratas, encapsulamento (properties) e composição.
Aplicação CLI com menu interativo. Permite:
- Cadastrar usuários (CPF, nome, data de nascimento, endereço)
- Criar contas correntes associadas a um usuário
- Listar todas as contas
- Realizar depósitos e saques (com limite de valor por saque e limite de saques diários)
- Exibir o extrato da conta com histórico de transações
- Validar saldo insuficiente, valor inválido e limite excedido
- Python 3 (sem dependências externas — usa apenas
abc,datetimeetextwrapda stdlib)
desafioPython/
├── desafioClasses.py # definição das classes do domínio
├── desafioExtraClasses.py # CLI com menu e fluxo principal
├── .gitignore
└── README.md
Cliente (base)
└── PessoaFisica # adiciona nome, cpf, data_nascimento
Conta (base)
└── ContaCorrente # adiciona limite e limite de saques
Transacao (ABC)
├── Deposito
└── Saque
Historico # mantém a lista de transações da conta
- Um
Clientepode ter váriasContas. - Uma
Contatem umHistorico(composição). DepositoeSaqueimplementam a interfaceTransacao(ABC) e sabem se aplicar a umaConta.
git clone https://github.com/LeandroPalos/desafioPython.git
cd desafioPython
python desafioExtraClasses.py================ MENU ================
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
[nu]Cadastrar um usuário (CPF, nome, data de nascimento, endereço)[nc]Criar uma conta para esse usuário (informa o CPF)[d]Depositar um valor na conta[s]Sacar um valor (respeitando limite e quantidade de saques)[e]Conferir o extrato