Crie em PYTHON um programa que simule um caixa eletrônico. O que precisa implementar:
Depósito
Saque
Pagamento de conta
Listagem de movimentações (extrato)
EM PYHON
Soluções para a tarefa
Resposta:
import random
print('\nOlá, bem-vindo ao Caixa Eletrônico 24 horas.\n')
# Introdução ao MENU.
def menu():
# Variaveis.
balance = 4000
withdraw = 5
account_data = 0
opcao = 0
while opcao != 5:
print('Escolha a opção: ')
print('1 - Extrato')
print('2 - Saque')
print('3 - Depósito')
print('4 - Pagamento de conta')
print('5 - Fechar/Sair')
opcao = int(input('Opção: '))
if (opcao == 1):
account_number = random.randint(1000,9999) # Gerar números aleatórios entre 1000 e 9999
print('Número da conta:', account_number)
print('Saldo: R${:.2f}'.format(balance))
print('Saques disponíveis:', withdraw)
elif (opcao == 2):
withdraw_ok = int(input('Digite o valor que você deseja sacar: '))
if withdraw_ok <= balance:
balance = balance - withdraw_ok # Calculo pra somar o valor da variavel depois de realizar o saque.
print('Você sacou R${:.2f} da sua conta.'.format(withdraw_ok))
print('Agora você tem R${:.2f} disponível em conta.'.format(balance))
withdraw = withdraw -1 # Calculo pra saber quantos saques podem ser realizados.
print('Você só pode realizar mais {} saques da sua conta.'.format(withdraw))
else:
print('Você não tem esse valor disponível na conta!')
elif (opcao == 3):
deposito = int(input('Digite o valor que você deseja depositar: '))
balance = deposito + balance # Calculo para depositar dinheiro na sua conta bancária.
print('Você depositou R${:.2f} na sua conta com sucesso e ficou com R${:.2f} disponível na conta!'.format(deposito, balance))
elif (opcao == 4):
pagar_conta = int(input('Digite o valor a pagar: '))
if pagar_conta <= balance:
balance = balance - pagar_conta # Calculo para cobrar de sua conta bancária.
print('Conta paga com sucesso! Ficou R${:.2f} disponível na sua conta!'.format(balance))
else:
print('Valor indisponivel na conta.') # Aviso para caso não tenha dinheiro disponivel na sua conta.
elif (opcao == 5):
print('Volte sempre.')
else:
print('Opção inválida!')
menu()
Explicação:
Coloquei alguns comentários no código pra não ficar confuso.
Uma solução seria criar uma classe em Python chamada "CaixaEletronico" que possuísse quatro métodos: "deposito", "saque", "pagamento_de_conta" e "extrato".
Como ficaria a classe CaixaEletronico em Python?
Uma implementação possível seria:
class CaixaEletronico:
def __init__(self):
self.saldo = 0
self.movimentacoes = []
def deposito(self, valor):
self.saldo += valor
self.movimentacoes.append(f'Depósito de R$ {valor:.2f}')
def saque(self, valor):
if valor > self.saldo:
print('Saldo insuficiente')
else:
self.saldo -= valor
self.movimentacoes.append(f'Saque de R$ {valor:.2f}')
def pagamento_de_conta(self, valor, descricao):
if valor > self.saldo:
print('Saldo insuficiente')
else:
self.saldo -= valor
self.movimentacoes.append(f'Pagamento de conta: {descricao} no valor de R$ {valor:.2f}')
def extrato(self):
print(f'Saldo: R$ {self.saldo:.2f}')
for movimentacao in self.movimentacoes:
print(movimentacao)
Um exemplo de uso dessa classe seria:
caixa = CaixaEletronico()
caixa.deposito(100)
caixa.saque(50)
caixa.pagamento_de_conta(25, "Conta de Luz")
caixa.extrato()
Como funciona o código?
O método "init" é um construtor e é chamado quando uma nova instância da classe é criada.
Nele são inicializadas as variáveis:
- Saldo -> valor 0
- Movimentações -> lista vazia.
O método "deposito":
- Recebe como parâmetro o valor de um depósito.
- Adiciona este valor ao saldo.
- Adiciona a mensagem "Depósito de R$ valor" na lista de movimentações.
O método "saque":
- Recebe como parâmetro o valor do saque.
- Verifica se o valor é maior do que o saldo disponível.
- Se for, é exibida a mensagem "Saldo insuficiente".
- Se não for, é efetuado o saque, e é adicionada a mensagem "Saque de R$ valor" na lista de movimentações.
O método "pagamento_de_conta":
- Recebe como parâmetros o valor do pagamento e uma descrição da conta.
- Verifica se o valor é maior do que o saldo disponível.
- Se for, é exibida a mensagem "Saldo insuficiente".
- Caso contrário, é efetuado o pagamento, e é adicionada a mensagem "Pagamento de conta: descrição no valor de R$ valor" na lista de movimentações.
Por fim, o método "extrato" exibe o saldo atual e as movimentações registradas.
Aprenda mais sobre Python em:
https://brainly.com.br/tarefa/52810204
#SPJ2