You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Neste projeto o professor apresentou as possíveis configurações do código e a partir dos códigos apresentados foi possível fazer o exercício da replicação, compreendendo a lógica da programação e a funcionalidade dos códigos bem como o funcionamento do Python. Segue abaixo o código baseado na aula do desafio do projeto e em seguida a execução que fiz com exemplos que fui utilizando.
import textwrap
def menu():
menu = """\n
============ MENU ===========
[d]\tDepositar
[s]\tSacar
[e]\tExtrato
[nc]\tNova conta
[lc]\tListar contas
[nu]\tNovo usuário
[q]\tSair
"""
return input(textwrap.dedent(menu))
def depositar(saldo, valor, extrato, /):
if valor > 0:
saldo += valor
extrato += f"Depósito:\tR$ {valor:.2f}\n"
print("\n**** Depósito realizado com sucesso! ****")
else:
print("\n### Operação falhou! O valor informado é inválido. ###")
return 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
if excedeu_saldo:
print("\n**** Operação falhou! Você não tem saldo suficiente. ****")
elif excedeu_limite:
print("\n&&&& Operação falhou! O valor do saque excedeu o limite. &&&&")
elif excedeu_saques:
print("\n@@@ Operação falhou! Número máximo de saques excedido. @@@")
elif valor > 0:
saldo -= valor
extrato += f"Saque:\t\tR$ {valor:.2f}\n"
numero_saques += 1
print("\n%%%% Saque realizado com sucesso! %%%%")
else:
print("\n#### Operação falhou! O valor informado é inválido. ####")
return saldo, extrato
def exibir_extrato(saldo, /, *, extrato):
print("\n============= EXTRATO ================")
print("Não foram realizados movimentações." if not extrato else extrato)
print(f"\nSaldo:\t\tR$ {saldo:.2f}")
print("==================================")
def criar_usuario(usuarios):
cpf = input("Informe o CPF (somente número): ")
usuario = filtrar_usuario(cpf, usuarios)
if usuario:
print("\n$$$$ Já existe usuário com esse CPF! $$$$")
return
nome = input("Informe o nome completo: ")
data_nascimento = input("Informe a data de nascimento (dd-mm-aaaa): ")
endereco = input("Informe o endereço (lograduro, nro - bairro - cidade/sigla estado): ")
usuarios.append({"nome": nome, "data_nascimento": data_nascimento, "cpf": cpf, "endereco": endereco})
print("@@@@ Usuário criado com sucesso! @@@@")
def filtrar_usuario(cpf, usuarios):
usuarios_filtrados = [usuario for usuario in usuarios if usuario["cpf"] == cpf]
return usuarios_filtrados[0] if usuarios_filtrados else None
def criar_conta(agencia, numero_conta, usuarios):
cpf = input("Informe o CPF do usuário: ")
usuario = filtrar_usuario(cpf, usuarios)
if usuario:
print("\n**** Conta criada com sucesso! ****")
return {"agencia": agencia, "numero_conta": numero_conta, "usuario": usuario}
print("\n#### Usuário não encontrado, fluxo de criação de conta encerrado! ####")
def listar_contas(contas):
for conta in contas:
linha = f"""\
Agência:\t{conta['agencia']}
C/C:\t\t{conta['numero_conta']}
Titular:\t{conta['usuario']['nome']}
"""
print("=" * 100)
print(textwrap.dedent(linha))
def main():
LIMITE_SAQUES = 3
AGENCIA = "0001"
saldo = 0
limite = 500
extrato = ""
numero_saques = 0
usuarios = []
contas = []
while True:
opcao = menu()
if opcao == "d":
valor = float(input("Informe o valor do depósito: "))
saldo, extrato = depositar(saldo, valor, extrato)
elif opcao == "s":
valor = float(input("Informe 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 == "e":
exibir_extrato(saldo, extrato=extrato)
elif opcao == "nu":
criar_usuario(usuarios)
elif opcao == "nc":
numero_conta = len(contas) + 1
conta = criar_conta(AGENCIA, numero_conta, usuarios)
if conta:
contas.append(conta)
elif opcao == "lc":
listar_contas(contas)
elif opcao == "q":
break
else:
print("Operação inválido, por favor selecione novamente a operação desejada.")
main()
Agora segue a execução das funções do código com exemplos que fui inserindo:
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
d
Informe o valor do depósito: 100
**** Depósito realizado com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
Usuário não encontrado, fluxo de criação de conta encerrado!
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 123
Informe o nome completo: Raphael do Amaral Vaz
Informe a data de nascimento (dd-mm-aaaa): 05-05-2024
Informe o endereço (lograduro, nro - bairro - cidade/sigla estado): Rua Odette de Oliveira. 500 - Jardim da Penha - Vitória/ES
@@@@ Usuário criado com sucesso! @@@@
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 2
Titular: Raphael do Amaral Vaz
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 123
$$$$ Já existe usuário com esse CPF! $$$$
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 456
Informe o nome completo: João Carvalho
Informe a data de nascimento (dd-mm-aaaa): 31-10-1994
Informe o endereço (lograduro, nro - bairro - cidade/sigla estado): Rua Silva Pinto, 134 aptº 201 - Vila Isabel - Rio de Janeiro/RJ
@@@@ Usuário criado com sucesso! @@@@
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 456
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 2
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 3
Titular: João Carvalho
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
The text was updated successfully, but these errors were encountered:
Neste projeto o professor apresentou as possíveis configurações do código e a partir dos códigos apresentados foi possível fazer o exercício da replicação, compreendendo a lógica da programação e a funcionalidade dos códigos bem como o funcionamento do Python. Segue abaixo o código baseado na aula do desafio do projeto e em seguida a execução que fiz com exemplos que fui utilizando.
import textwrap
Agora segue a execução das funções do código com exemplos que fui inserindo:
PS C:\Users\Rafael> & C:/Users/Rafael/AppData/Local/Programs/Python/Python312/python.exe c:/Users/Rafael/desafio.py
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
d
Informe o valor do depósito: 100
**** Depósito realizado com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
Usuário não encontrado, fluxo de criação de conta encerrado!
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 123
Informe o nome completo: Raphael do Amaral Vaz
Informe a data de nascimento (dd-mm-aaaa): 05-05-2024
Informe o endereço (lograduro, nro - bairro - cidade/sigla estado): Rua Odette de Oliveira. 500 - Jardim da Penha - Vitória/ES
@@@@ Usuário criado com sucesso! @@@@
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 123
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 2
Titular: Raphael do Amaral Vaz
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 123
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nu
Informe o CPF (somente número): 456
Informe o nome completo: João Carvalho
Informe a data de nascimento (dd-mm-aaaa): 31-10-1994
Informe o endereço (lograduro, nro - bairro - cidade/sigla estado): Rua Silva Pinto, 134 aptº 201 - Vila Isabel - Rio de Janeiro/RJ
@@@@ Usuário criado com sucesso! @@@@
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
nc
Informe o CPF do usuário: 456
**** Conta criada com sucesso! ****
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
lc
Agência: 0001
C/C: 1
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 2
Titular: Raphael do Amaral Vaz
====================================================================================================
Agência: 0001
C/C: 3
Titular: João Carvalho
============ MENU ===========
[d] Depositar
[s] Sacar
[e] Extrato
[nc] Nova conta
[lc] Listar contas
[nu] Novo usuário
[q] Sair
The text was updated successfully, but these errors were encountered: