Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 34 additions & 39 deletions 00 - Fundamentos/desafio.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# menu incial
menu = """

[d] Depositar
Expand All @@ -6,61 +7,55 @@
[q] Sair

=> """

# variáveis
saldo = 0
limite = 500
extrato = ""
numero_saques = 0
LIMITE_SAQUES = 3

# iteração do sistema
while True:

opcao = input(menu)

# op deposito
if opcao == "d":
valor = float(input("Informe o valor do depósito: "))

# deposito deve ser um valor acima de 0
if valor > 0:
saldo += valor
extrato += f"Depósito: R$ {valor:.2f}\n"

saldo+=valor
extrato+=(f"Depósito: + R$ {valor:.2f}\n")
print("Operação válida, epósito realizado com sucesso!")
else:
print("Operação falhou! O valor informado é inválido.")

print("Operação inválido, depósito não realizado.")
# op saque
elif opcao == "s":
valor = float(input("Informe o valor do saque: "))

excedeu_saldo = valor > saldo

excedeu_limite = valor > limite

excedeu_saques = numero_saques >= LIMITE_SAQUES

if excedeu_saldo:
print("Operação falhou! Você não tem saldo suficiente.")

elif excedeu_limite:
print("Operação falhou! O valor do saque excede o limite.")

elif excedeu_saques:
print("Operação falhou! Número máximo de saques excedido.")

elif valor > 0:
saldo -= valor
extrato += f"Saque: R$ {valor:.2f}\n"
numero_saques += 1

else:
print("Operação falhou! O valor informado é inválido.")

# saque deve ser até 500 reais, menor ou igual ao saldo e tem limite de 3 vezes diárias
valor_max_saque = 0 < valor <= 500
saque_menor_saldo = valor <= saldo
quantidade_saques = LIMITE_SAQUES >= numero_saques
# se o saque for qualificável
if valor_max_saque and saque_menor_saldo and quantidade_saques is True:
saldo-=valor
numero_saques+=1
extrato+=(f"Saque: - R$ {valor:.2f}\n")
print("Operação válida, saque realizado com sucesso!")
# por que o saque não é qualificável
elif valor_max_saque is False:
print("Operação inválida, saque permitido de até R$500.00.")
elif saque_menor_saldo is False:
print("Operação inválida, saldo insuficiente.")
elif quantidade_saques is False:
print("Operação inválida, limite diário de saques já foi atingido.")
# op extrato
elif opcao == "e":
print("\n================ EXTRATO ================")
print("Não foram realizadas movimentações." if not extrato else extrato)
print(f"\nSaldo: R$ {saldo:.2f}")
print("==========================================")

print("EXTRATO".center(27,"="))
print(f"Sua atividade na conta:\n{extrato}")
print(f"Seu saldo atual: R$ {saldo:.2f}")
print("".center(27,"="))
# op de sair
elif opcao == "q":
break

# se nenhuma op for selecionada/escrita errada
else:
print("Operação inválida, por favor selecione novamente a operação desejada.")