Простая банковская система на Python
Следующие примеры предназначены для изучения операций банковской системы на Python:
Примеры
означает = [0, 0, 0]
кредит = 0
ставка = 0
платёж = 0
инвестиция = 0
annual_rate = 0
# Вычислить ожидаемую доходность регулярных инвестиций
# Формула расчёта доходности регулярных инвестиций: M=a(1+x)[-1+(1+x)^n]/x;
# Где M обозначает ожидаемую доходность, a обозначает сумму регулярных инвестиций за период, x обозначает ставку доходности, а n обозначает количество периодов инвестирования.
# Предположим, пользователь инвестирует 300 yuan в месяц, что составляет 3600 yuan в год, при годовой ставке доходности 15%,
# При периоде инвестирования 35 лет доход можно рассчитать как 3600(1+15%)[-1+(1+15%)^35]/15%=3648044 yuan.
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("Ожидаемый доход от регулярных инвестиций: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("Ваши общие активы: %.2f" % total)
print("Детали ваших активов:\n")
print("Депозиты: %.2f" % means[0])
print("Управление благосостоянием: %.2f" % means[1])
print("Обязательства: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("Сумма депозита не может быть меньше 0!")
else:
means[0] += amount
print("Внесено: %.2f yuan" % amount)
print("Текущий баланс: %.2f yuan" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("Сумма снятия не может быть меньше 0!")
elif drawing > means[0]:
print("Сумма снятия не может превышать баланс!")
else:
means[0] -= drawing
print("Снято: %.2f yuan" % drawing)
print("Текущий баланс: %.2f yuan" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("Вы никогда не выплатите это!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("Кредит будет погашен через %d лет." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Ваши текущие обязательства: %.2f" % loan)
# means[2] = loan
return loan
# Финансовое состояние в будущем
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = означает[0] + income - debt
print("Ваши совокупные активы в году %i: %.3f" % (years, captial))
def init():
print()
print('''Доступны следующие услуги:
1. Запрос активов
2. Пополнение
3. Снятие
4. Расчёт сложных процентов
5. Расчёт кредита
6. Рассчитать будущие активы
q. Выход''')
def main():
init()
while True:
choice = input("Пожалуйста, введите код услуги, который хотите использовать: ")
# Запрос баланса
if choice == "1":
balance()
# Пополнение
elif choice == "2":
inc = float(input("Пожалуйста, введите сумму пополнения: "))
saving(inc)
# Снятие
elif choice == "3":
dec = float(input("Пожалуйста, введите сумму снятия: "))
draw_money(dec)
# Расчёт регулярных инвестиций
elif choice == "4":
investment = float(input("Пожалуйста, введите сумму ежемесячных регулярных инвестиций: "))
annual_rate = float(input("Пожалуйста, введите годовую доходность: "))
years = int(input("Пожалуйста, введите период инвестирования (лет): "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Введённые данные неверны")
else:
money = fixed_investment(investment, annual_rate, years)
print("Итоговый доход: %.2f yuan" % money)
# Расчёт кредита
elif choice == "5":
loan = float(input("Пожалуйста, введите текущую сумму кредита: "))
rate = float(input("Пожалуйста, введите годовую процентную ставку: "))
pay = float(input("Пожалуйста, введите годовую сумму погашения: "))
if loan <= 0 or rate <= 0 or платёж <= 0:
print("Введённые данные неверны")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("Через сколько лет вы хотите проверить финансовое состояние? "))
future(years)
# Выход
elif choice == "q":
print("Возвращайтесь в следующий раз! До свидания!")
break
else:
print("Введённая команда неверна, пожалуйста, введите заново\n")
if __name__ == '__main__':
main()
кредит = 0
ставка = 0
платёж = 0
инвестиция = 0
annual_rate = 0
# Вычислить ожидаемую доходность регулярных инвестиций
# Формула расчёта доходности регулярных инвестиций: M=a(1+x)[-1+(1+x)^n]/x;
# Где M обозначает ожидаемую доходность, a обозначает сумму регулярных инвестиций за период, x обозначает ставку доходности, а n обозначает количество периодов инвестирования.
# Предположим, пользователь инвестирует 300 yuan в месяц, что составляет 3600 yuan в год, при годовой ставке доходности 15%,
# При периоде инвестирования 35 лет доход можно рассчитать как 3600(1+15%)[-1+(1+15%)^35]/15%=3648044 yuan.
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("Ожидаемый доход от регулярных инвестиций: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("Ваши общие активы: %.2f" % total)
print("Детали ваших активов:\n")
print("Депозиты: %.2f" % means[0])
print("Управление благосостоянием: %.2f" % means[1])
print("Обязательства: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("Сумма депозита не может быть меньше 0!")
else:
means[0] += amount
print("Внесено: %.2f yuan" % amount)
print("Текущий баланс: %.2f yuan" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("Сумма снятия не может быть меньше 0!")
elif drawing > means[0]:
print("Сумма снятия не может превышать баланс!")
else:
means[0] -= drawing
print("Снято: %.2f yuan" % drawing)
print("Текущий баланс: %.2f yuan" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("Вы никогда не выплатите это!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("Кредит будет погашен через %d лет." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Ваши текущие обязательства: %.2f" % loan)
# means[2] = loan
return loan
# Финансовое состояние в будущем
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = означает[0] + income - debt
print("Ваши совокупные активы в году %i: %.3f" % (years, captial))
def init():
print()
print('''Доступны следующие услуги:
1. Запрос активов
2. Пополнение
3. Снятие
4. Расчёт сложных процентов
5. Расчёт кредита
6. Рассчитать будущие активы
q. Выход''')
def main():
init()
while True:
choice = input("Пожалуйста, введите код услуги, который хотите использовать: ")
# Запрос баланса
if choice == "1":
balance()
# Пополнение
elif choice == "2":
inc = float(input("Пожалуйста, введите сумму пополнения: "))
saving(inc)
# Снятие
elif choice == "3":
dec = float(input("Пожалуйста, введите сумму снятия: "))
draw_money(dec)
# Расчёт регулярных инвестиций
elif choice == "4":
investment = float(input("Пожалуйста, введите сумму ежемесячных регулярных инвестиций: "))
annual_rate = float(input("Пожалуйста, введите годовую доходность: "))
years = int(input("Пожалуйста, введите период инвестирования (лет): "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Введённые данные неверны")
else:
money = fixed_investment(investment, annual_rate, years)
print("Итоговый доход: %.2f yuan" % money)
# Расчёт кредита
elif choice == "5":
loan = float(input("Пожалуйста, введите текущую сумму кредита: "))
rate = float(input("Пожалуйста, введите годовую процентную ставку: "))
pay = float(input("Пожалуйста, введите годовую сумму погашения: "))
if loan <= 0 or rate <= 0 or платёж <= 0:
print("Введённые данные неверны")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("Через сколько лет вы хотите проверить финансовое состояние? "))
future(years)
# Выход
elif choice == "q":
print("Возвращайтесь в следующий раз! До свидания!")
break
else:
print("Введённая команда неверна, пожалуйста, введите заново\n")
if __name__ == '__main__':
main()
Python3 Примеры