trilha-python-dio
trilha-python-dio copied to clipboard
desafio.py
menu def (): menu = """ \ne
Olá, que bom que você viu por aqui! \n
============ CARDÁPIO ============
[1] \t Depositar
[2] _t Sacar
[3] \t Extrato
[4] \t Novo usuário
[5] \t Nova conta
[6] \t Listar conta
[7] _t Sair
=> """
retornar entrada(menu)
def depositar ( saldo , valor , extrato , / ): se valor > 0: saldo += valor extrato += f"Depósito:R$ { valor :.2f } \n " print ( " \n ===Depósito realizado com sucesso!===" ) print ( f" \n Saldo: \t \t R$ { saldo :.2f } " ) outro: print("\n*** Operação falhou! O valor informado é inválido. ***")
retornar saldo, extrato
def sacar ( * , saldo , valor , extrato , limite , numero_saques , limite_saques ): excedeu_saldo = valor > saldo excedeu_limite = valor > limite excedeu_saques = numero_saques >= limite_saques
se excedeu_saldo:
print ( " \n Saldo insuficiente. " )
elif excedeu_limite :
print("O valor do saque excede o limite. ")
elif excedeu_saques :
print("Número máximo de saques excedidos. ")
valor elif > 0:
saldo -= valor
extrato += f"Saque: R$ { valor :.2f } \n "
numero_saques += 1
print ( " \n === Saque realizado com sucesso! ===" )
outro:
print ( " \n O valor informado é inválido. " )
retornar saldo, extrato
def exibir_extrato ( saldo , / , * , extrato ):
imprimir("\n================ EXTRATO =================")
print ( "Não foram realizadas movimentações." if not extrato else extrato )
print ( f" \n Saldo: R$ { saldo :.2f } " )
imprimir("===============================================")
def exibir_extrato ( saldo , / , * , extrato ): imprimir("\n============= EXTRATO ============") print ( "Não foram realizadas movimentações." if not extrato else extrato ) print ( f" \n Saldo: \t \t R$ { saldo :.2f } " ) imprimir("=======================================")
def criar_usuario(usuários):
cpf = input ( "Informe o CPF (apenas números): " )
usuários = filtrar_usuario(cpf, usuários)
se usuários:
print("Já existe usuário com esse cpf! ")
retornar
nome = input("Informações do nome completo: ")
data_nascimento = input ( "Informar a data de nascimento (dd-mm-aaaa): " )
endereco = input("Informe o endereço(logradouro,número - bairro - cidade/símbolo do estado): ")
usuarios.append({"nome": nome, "data_nascimento": data_nascimento, "cpf": cpf, "endereco": endereco})
print ( "Usuário criado com sucesso! " )
def filtrar_usuario(cpf, usuários): usuarios_filtrados = [usuario para usuario em usuarios se usuario["cpf"] == cpf] retornar usuarios_filtrados[0] se usuarios_filtrados senão Nenhum
def criar_conta ( agência , numero_conta , usuários ): cpf = input ( "Informe o cpf do usuário: " ) usuário = filtrar_usuario(cpf, usuários) se usuários: print ( " \n === Conta criada com sucesso ===" ) return{"agência": agência, "numero_conta": numero_conta, "usuário": usuario}
print("**** Usuário não encotrado. ")
def listar_contas ( contas ):
para conta em contas:
linha = f"""
Agência:\t{conta['agência']}
C/C: \t \t { conta [ 'numero_conta' ] }
Titular:\t{conta['usuário']['nome']}
"""
imprimir("=" * 100)
imprimir(linha)
def principal(): LIMITE_SAQUES = 3 AGÊNCIA = "0001"
saldo = 0
limite = 500
extrato = ""
numero_saques = 0
usuários = []
contas = []
enquanto Verdadeiro:
opção = menu()
se opção == "1":
valor = float(input("Informar o valor do depósito: "))
saldo , extrato = depositar ( saldo , valor , extrato )
elif opcao == "2" :
valor = float(input("Informações sobre o valor do saque: "))
saldo , extrato = sacar (
saldo = saldo ,
valor = valor ,
extrato = extrato ,
limite = limite ,
numero_saques = numero_saques ,
limite_saques = LIMITE_SAQUES ,
)
elif opcao == "3" :
exibir_extrato ( saldo , extrato = extrato )
elif opcao == "4" :
criar_usuario("usuários")
elif opcao == "5" :
numero_conta = len ( conta ) + 1
conta = criar_conta(AGÊNCIA, numero_conta, usuarios)
se conta:
contas . append ( conta )
elif opcao == "6" :
listar_contas ( contas )
elif opcao == "7" :
print ( "OBRIGADO POR SER NOSSO CLIENTE, TENHA UM BOM DIA." )
quebrar
outro:
print("Operação inválida, por favor selecione a operação desejada. ")
principal()