Sistema bancario simple en Python
El siguiente ejemplo es para aprender el funcionamiento del sistema bancario de Python:
Ejemplo
means = [0, 0, 0]
loan = 0
rate = 0
pay = 0
investment = 0
annual_rate = 0
# Calcular el rendimiento esperado de la inversión periódica
# La fórmula de cálculo del rendimiento de la inversión periódica es: M=a(1+x)[-1+(1+x)^n]/x;
# Donde M representa el rendimiento esperado, a representa el monto de inversión periódica, x representa la tasa de rendimiento y n representa el número de períodos.
# Supongamos que el usuario invierte 300 yuanes al mes, es decir, 3600 yuanes al año, con una tasa de rendimiento anual del 15%,
# Si el período de inversión es de 35 años, el rendimiento se puede calcular como 3600(1+15%)[-1+(1+15%)^35]/15%=3,648,044 yuanes.
def fixed_investment(inv, a_rate, y):
global means
inv = 12 * inv
a_rate = a_rate / 100
if a_rate == 0:
expected = 0
else:
expected = inv * (1 + a_rate) * (pow((1 + a_rate), y) - 1) / a_rate
print("El ingreso esperado de la inversión periódica es: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("El total de tus activos es: %.2f" % total)
print("El desglose de tus activos es:\n")
print("Depósito: %.2f" % means[0])
print("Inversión: %.2f" % means[1])
print("Pasivos: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("¡El monto del depósito no puede ser menor que 0!")
else:
means[0] += amount
print("Depositado: %.2f yuanes" % amount)
print("Saldo actual: %.2f yuanes" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("¡El monto del retiro no puede ser menor que 0!")
elif drawing > means[0]:
print("¡El monto del retiro no puede superar el saldo!")
else:
means[0] -= drawing
print("Retirado: %.2f yuanes" % drawing)
print("Saldo actual: %.2f yuanes" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("¡¡¡Nunca lo terminarás de pagar!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("El préstamo se pagará por completo en %d años." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Tus pasivos actuales son: %.2f" % loan)
# means[2] = loan
return loan
# Situación financiera futura
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = means[0] + income - debt
print("El total de tus activos en el año %i es: %.3f" % (years, captial))
def init():
print()
print('''Los siguientes servicios están disponibles:
1. Consultar activos
2. Depósito
3. Retiro
4. Calcular interés compuesto
5. Calcular préstamo
6. Calcular activos futuros
q. Salir''')
def main():
init()
while True:
choice = input("Por favor, ingrese el código del servicio que desea realizar: ")
# Consultar saldo
if choice == "1":
balance()
# Depósito
elif choice == "2":
inc = float(input("Por favor, ingrese el monto del depósito: "))
saving(inc)
# Retiro
elif choice == "3":
dec = float(input("Por favor, ingrese el monto del retiro: "))
draw_money(dec)
# Calcular inversión periódica
elif choice == "4":
investment = float(input("Por favor, ingrese el monto de inversión mensual: "))
annual_rate = float(input("Por favor, ingrese la tasa de rendimiento anual: "))
years = int(input("Por favor, ingrese el período de inversión (años): "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Los datos ingresados son incorrectos")
else:
money = fixed_investment(investment, annual_rate, years)
print("Ganancia final: %.2f yuanes" % money)
# Calcular préstamo
elif choice == "5":
loan = float(input("Por favor, ingrese el préstamo actual: "))
rate = float(input("Por favor, ingrese la tasa de interés anual: "))
pay = float(input("Por favor, ingrese el pago anual: "))
if loan <= 0 or rate <= 0 or pay <= 0:
print("Los datos ingresados son incorrectos")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("¿Cuántos años en el futuro desea consultar la situación financiera? "))
future(years)
# Salir
elif choice == "q":
print("¡Le esperamos de nuevo! ¡Adiós!")
break
else:
print("La instrucción que ingresó es incorrecta, por favor ingrésela de nuevo"\n")
if __name__ == '__main__':
main()
loan = 0
rate = 0
pay = 0
investment = 0
annual_rate = 0
# Calcular el rendimiento esperado de la inversión periódica
# La fórmula de cálculo del rendimiento de la inversión periódica es: M=a(1+x)[-1+(1+x)^n]/x;
# Donde M representa el rendimiento esperado, a representa el monto de inversión periódica, x representa la tasa de rendimiento y n representa el número de períodos.
# Supongamos que el usuario invierte 300 yuanes al mes, es decir, 3600 yuanes al año, con una tasa de rendimiento anual del 15%,
# Si el período de inversión es de 35 años, el rendimiento se puede calcular como 3600(1+15%)[-1+(1+15%)^35]/15%=3,648,044 yuanes.
def fixed_investment(inv, a_rate, y):
global means
inv = 12 * inv
a_rate = a_rate / 100
if a_rate == 0:
expected = 0
else:
expected = inv * (1 + a_rate) * (pow((1 + a_rate), y) - 1) / a_rate
print("El ingreso esperado de la inversión periódica es: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("El total de tus activos es: %.2f" % total)
print("El desglose de tus activos es:\n")
print("Depósito: %.2f" % means[0])
print("Inversión: %.2f" % means[1])
print("Pasivos: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("¡El monto del depósito no puede ser menor que 0!")
else:
means[0] += amount
print("Depositado: %.2f yuanes" % amount)
print("Saldo actual: %.2f yuanes" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("¡El monto del retiro no puede ser menor que 0!")
elif drawing > means[0]:
print("¡El monto del retiro no puede superar el saldo!")
else:
means[0] -= drawing
print("Retirado: %.2f yuanes" % drawing)
print("Saldo actual: %.2f yuanes" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("¡¡¡Nunca lo terminarás de pagar!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("El préstamo se pagará por completo en %d años." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Tus pasivos actuales son: %.2f" % loan)
# means[2] = loan
return loan
# Situación financiera futura
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = means[0] + income - debt
print("El total de tus activos en el año %i es: %.3f" % (years, captial))
def init():
print()
print('''Los siguientes servicios están disponibles:
1. Consultar activos
2. Depósito
3. Retiro
4. Calcular interés compuesto
5. Calcular préstamo
6. Calcular activos futuros
q. Salir''')
def main():
init()
while True:
choice = input("Por favor, ingrese el código del servicio que desea realizar: ")
# Consultar saldo
if choice == "1":
balance()
# Depósito
elif choice == "2":
inc = float(input("Por favor, ingrese el monto del depósito: "))
saving(inc)
# Retiro
elif choice == "3":
dec = float(input("Por favor, ingrese el monto del retiro: "))
draw_money(dec)
# Calcular inversión periódica
elif choice == "4":
investment = float(input("Por favor, ingrese el monto de inversión mensual: "))
annual_rate = float(input("Por favor, ingrese la tasa de rendimiento anual: "))
years = int(input("Por favor, ingrese el período de inversión (años): "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Los datos ingresados son incorrectos")
else:
money = fixed_investment(investment, annual_rate, years)
print("Ganancia final: %.2f yuanes" % money)
# Calcular préstamo
elif choice == "5":
loan = float(input("Por favor, ingrese el préstamo actual: "))
rate = float(input("Por favor, ingrese la tasa de interés anual: "))
pay = float(input("Por favor, ingrese el pago anual: "))
if loan <= 0 or rate <= 0 or pay <= 0:
print("Los datos ingresados son incorrectos")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("¿Cuántos años en el futuro desea consultar la situación financiera? "))
future(years)
# Salir
elif choice == "q":
print("¡Le esperamos de nuevo! ¡Adiós!")
break
else:
print("La instrucción que ingresó es incorrecta, por favor ingrésela de nuevo"\n")
if __name__ == '__main__':
main()
Ejemplos de Python3