Skip to content

Instantly share code, notes, and snippets.

@jessicacardoso
Created March 31, 2024 17:40
Show Gist options
  • Save jessicacardoso/026de6450afbed944d489affb80df4ff to your computer and use it in GitHub Desktop.
Save jessicacardoso/026de6450afbed944d489affb80df4ff to your computer and use it in GitHub Desktop.
# cadastrar usuário e cadastrar conta
def criar_usuario(usuarios, cpfs):
print("Crie seu usuário")
nome = input("Nome: ")
data_nascimento = input("Data de nascimento (dd-mm-aaaa): ")
cpf = input("CPF (somente números): ")
if cpf in cpfs:
print("CPF já cadastrado.")
return
endereco = input("Endereço (logradouro, nro - bairro - cidade/sigla estado): ")
usuarios.append(
{
"nome": nome,
"data_nascimento": data_nascimento,
"cpf": cpf,
"endereco": endereco,
}
)
cpfs.add(cpf)
def criar_conta(agencia, numero_conta, usuarios, contas, cpfs):
print("Crie sua conta")
cpf = input("CPF (somente números): ")
if cpf not in cpfs:
print("CPF não cadastrado.")
return
for usuario in usuarios:
if usuario["cpf"] == cpf:
contas.append(
{
"agencia": agencia,
"numero_conta": numero_conta,
"usuario": usuario,
}
)
print("Conta criada com sucesso.")
return contas[-1]
def saque(*, saldo, valor, extrato, limite, numero_saques, limite_saques):
if numero_saques < limite_saques:
if valor > 0 and valor > limite:
print(f"Valor acima do limite de saque. Limite máximo de {limite} reais.")
elif saldo >= valor:
saldo -= valor
extrato += f"Saque de R$ {valor:.2f}\n"
numero_saques += 1
else:
print("Saldo insuficiente.")
else:
print("Limite diário de saques atingido.")
return numero_saques, saldo, extrato
def deposito(saldo, valor, extrato, /):
if valor > 0:
saldo += valor
extrato += f"Depósito de R$ {valor:.2f}\n"
else:
print("Valor inválido.")
return saldo, extrato
def mostrar_extrato(saldo, /, *, extrato):
print("===============EXTRATO================")
print(f"Saldo atual: R$ {saldo:.2f}")
print("Extrato:")
print(extrato)
print("=====================================")
AGENCIA = "0001"
LIMITE_SAQUES = 3
def main():
saldo = 0
limite = 500
extrato = ""
numero_saques = 0
usuarios = []
contas = []
cpfs = set()
print("Bem-vindo ao Banco do Python!")
menu = """
[d] Depositar
[s] Sacar
[e] Extrato
[cu] Criar usuário
[cc] Criar conta
[q] Sair
=> """
while True:
opcao = input(menu)
if opcao == "d":
valor = float(input("Quanto deseja depositar? "))
saldo, extrato = deposito(saldo, valor, extrato)
elif opcao == "s":
valor = float(input("Quanto deseja sacar? "))
numero_saques, saldo, extrato = saque(
saldo=saldo,
valor=valor,
extrato=extrato,
limite=limite,
numero_saques=numero_saques,
limite_saques=LIMITE_SAQUES,
)
elif opcao == "e":
mostrar_extrato(saldo, extrato=extrato)
elif opcao == "cu":
criar_usuario(usuarios, cpfs)
elif opcao == "cc":
conta = criar_conta(AGENCIA, len(contas) + 1, usuarios, contas, cpfs)
if conta:
print(f"Agência: {conta['agencia']}")
print(f"Número da conta: {conta['numero_conta']}")
print(f"Titular: {conta['usuario']['nome']}")
elif opcao == "q":
break
else:
print("Opção inválida.")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment