Me sinto meio travado quando o assunto e POO, aqui foi ate onde eu consegui chegar, me deem dicas de como posso melhorar meu codigo, ainda vou fazer o tratamento de errros da minha variavel valor para so aceitar numero sem que o programa de erro assim como fiz na função opcao_menu.
obrigado a todos!
from time import sleep
def menu(msg,lista, tam=0):
tam += len(msg)
print('*' * tam)
print(msg)
print('*' * tam)
print(f'Saque maximo: {Conta.saque_maximo:.2f}R$')
print(f'Deposito limite: {Conta.deposito_maximo:.2f}R$')
for i, c in enumerate(lista):
print(f'{i+1} - {c}')
print('*' * tam)
def opcao_menu(msg):
while True:
try:
opcao = int(input(msg))
if opcao > 4:
raise(opcao)
except:
if opcao >= 4:
print('Opção indisponivel')
else:
print('Apenas numeros sao validos.')
continue
else:
return opcao
class Conta:
saque_maximo = 2000
deposito_maximo = 5000
def __init__(self, numero_conta, titular, saldo, limite):
self.numero_conta = numero_conta
self.titular = titular
self.saldo = saldo
self.limite = limite
def extrato(self):
print('Retirando extrato da conta, Aguarde um momento...')
sleep(1)
print('** Extrato **')
print(f'Conta: {self.numero_conta}')
print(f'Titular: {self.titular}')
print(f'Saldo: {self.saldo:.2f}R$')
print(f'Limite: {self.limite:.2f}R$')
def saca(self, valor):
if valor <= self.saque_maximo:
if valor <= self.saldo:
self.saldo -= valor
sleep(1)
print('Saque efetuado com sucesso...')
print('Consulte o extrato para ver o saldo.')
else:
print('Saldo insuficiente')
else:
print('Valor acima do saque permitido')
def deposita(self, valor):
if valor <= self.deposito_maximo:
if valor <= self.limite:
self.saldo += valor
sleep(1)
print('Desposito efetuado com sucesso.')
print('Consulte o extrato para ver o saldo.')
else:
print('Valor excedeu o valor de deposito.')
conta1 = Conta(123, 'Douglas', 5000, 20000)
opc = 0
while opc != 4:
menu('Banco Central', ['Extrato', 'Deposito', 'Saque', 'Sair'])
opc = opcao_menu('Digite sua opção: ')
if opc == 1:
conta1.extrato()
elif opc == 2:
valor = int(input('Digite o valor que deseja deposita: R$'))
conta1.deposita(valor)
elif opc == 3:
valor = int(input('Digite o valor que deseja sacar: R$'))
conta1.saca(valor)
else:
print('Saindo...')