Einfaches Bankensystem in Python
Die folgenden Beispiele dienen dem Erlernen der Abläufe eines Python-Bankensystems:
Beispiele
bedeutet = [0, 0, 0]
Darlehen = 0
Zinssatz = 0
Zahlung = 0
Investition = 0
annual_rate = 0
# Berechne die erwartete Rendite einer regelmäßigen Investition
# Die Formel zur Berechnung der Rendite regelmäßiger Investitionen lautet: M=a(1+x)[-1+(1+x)^n]/x;
# Dabei steht M für die erwartete Rendite, a für den regelmäßigen Investitionsbetrag pro Periode, x für den Renditesatz und n für die Anzahl der Investitionsperioden.
# Angenommen, der Nutzer investiert 300 Yuan pro Monat, was 3600 Yuan pro Jahr entspricht, bei einer jährlichen Rendite von 15%,
# Bei einer Investitionsdauer von 35 Jahren kann die Rendite als 3600(1+15%)[-1+(1+15%)^35]/15%=3648044 Yuan berechnet werden.
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("Erwartetes Einkommen aus regelmäßiger Investition: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("Ihr Gesamtvermögen beträgt: %.2f" % total)
print("Ihre Vermögensdetails sind:\n")
print("Einlagen: %.2f" % means[0])
print("Vermögensverwaltung: %.2f" % means[1])
print("Verbindlichkeiten: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("Der Einzahlungsbetrag darf nicht kleiner als 0 sein!")
else:
means[0] += amount
print("Eingezahlt: %.2f yuan" % amount)
print("Aktueller Kontostand: %.2f yuan" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("Der Abhebungsbetrag darf nicht kleiner als 0 sein!")
elif drawing > means[0]:
print("Der Abhebungsbetrag darf das Guthaben nicht überschreiten!")
else:
means[0] -= drawing
print("Abgehoben: %.2f yuan" % drawing)
print("Aktueller Kontostand: %.2f yuan" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("Du wirst es nie abbezahlen!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("Das Darlehen wird in %d Jahren abbezahlt sein." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Ihre aktuellen Verbindlichkeiten sind: %.2f" % loan)
# means[2] = loan
return loan
# Zukünftiger Finanzstatus
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = bedeutet[0] + income - debt
print("Ihr Gesamtvermögen im Jahr %i: %.3f" % (years, captial))
def init():
print()
print('''Die folgenden Dienste sind verfügbar:
1. Vermögenswerte abfragen
2. Einzahlen
3. Abheben
4. Zinseszins berechnen
5. Kredit berechnen
6. Zukünftige Vermögenswerte berechnen
q. Beenden''')
def main():
init()
while True:
choice = input("Bitte geben Sie den Servicecode ein, den Sie verwenden möchten: ")
# Kontostand abfragen
if choice == "1":
balance()
# Einzahlung
elif choice == "2":
inc = float(input("Bitte geben Sie den Einzahlungsbetrag ein: "))
saving(inc)
# Abhebung
elif choice == "3":
dec = float(input("Bitte geben Sie den Abhebungsbetrag ein: "))
draw_money(dec)
# Regelmäßige Investition berechnen
elif choice == "4":
investment = float(input("Bitte geben Sie den monatlichen regelmäßigen Anlagebetrag ein: "))
annual_rate = float(input("Bitte geben Sie die jährliche Rendite ein: "))
years = int(input("Bitte geben Sie die Anlagedauer (Jahre) ein: "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Die eingegebenen Daten sind falsch")
else:
money = fixed_investment(investment, annual_rate, years)
print("Endgültiger Gewinn: %.2f yuan" % money)
# Kredit berechnen
elif choice == "5":
loan = float(input("Bitte geben Sie den aktuellen Kredit ein: "))
rate = float(input("Bitte geben Sie den jährlichen Zinssatz ein: "))
pay = float(input("Bitte geben Sie die jährliche Rückzahlung ein: "))
if loan <= 0 or rate <= 0 or Zahlung <= 0:
print("Die eingegebenen Daten sind falsch")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("Wie viele Jahre später möchten Sie den Finanzstatus überprüfen? "))
future(years)
# Beenden
elif choice == "q":
print("Bis zum nächsten Mal! Auf Wiedersehen!")
break
else:
print("Der eingegebene Befehl ist falsch, bitte erneut eingeben\n")
if __name__ == '__main__':
main()
Darlehen = 0
Zinssatz = 0
Zahlung = 0
Investition = 0
annual_rate = 0
# Berechne die erwartete Rendite einer regelmäßigen Investition
# Die Formel zur Berechnung der Rendite regelmäßiger Investitionen lautet: M=a(1+x)[-1+(1+x)^n]/x;
# Dabei steht M für die erwartete Rendite, a für den regelmäßigen Investitionsbetrag pro Periode, x für den Renditesatz und n für die Anzahl der Investitionsperioden.
# Angenommen, der Nutzer investiert 300 Yuan pro Monat, was 3600 Yuan pro Jahr entspricht, bei einer jährlichen Rendite von 15%,
# Bei einer Investitionsdauer von 35 Jahren kann die Rendite als 3600(1+15%)[-1+(1+15%)^35]/15%=3648044 Yuan berechnet werden.
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("Erwartetes Einkommen aus regelmäßiger Investition: %.2f" % expected)
means[1] = expected
return expected
def balance():
total = 0
for i in means:
total += i
print("Ihr Gesamtvermögen beträgt: %.2f" % total)
print("Ihre Vermögensdetails sind:\n")
print("Einlagen: %.2f" % means[0])
print("Vermögensverwaltung: %.2f" % means[1])
print("Verbindlichkeiten: %.2f" % means[2])
def saving(amount):
global means
if amount < 0:
print("Der Einzahlungsbetrag darf nicht kleiner als 0 sein!")
else:
means[0] += amount
print("Eingezahlt: %.2f yuan" % amount)
print("Aktueller Kontostand: %.2f yuan" % means[0])
def draw_money(drawing):
global means
if drawing < 0:
print("Der Abhebungsbetrag darf nicht kleiner als 0 sein!")
elif drawing > means[0]:
print("Der Abhebungsbetrag darf das Guthaben nicht überschreiten!")
else:
means[0] -= drawing
print("Abgehoben: %.2f yuan" % drawing)
print("Aktueller Kontostand: %.2f yuan" % means[0])
def loans(loan, rate, pay, years):
global means
if pay < (loan - pay) * rate:
print("Du wirst es nie abbezahlen!!!")
else:
if years == 0:
count = 0
while loan > 0:
loan -= pay
loan *= (1 + rate)
count += 1
print("Das Darlehen wird in %d Jahren abbezahlt sein." % count)
else:
for _ in range(years):
loan -= pay
if loan == 0:
break
else:
loan *= (1 + rate)
print("Ihre aktuellen Verbindlichkeiten sind: %.2f" % loan)
# means[2] = loan
return loan
# Zukünftiger Finanzstatus
def future(years):
income = fixed_investment(investment, annual_rate, years)
debt = loans(loan, rate, pay, years)
captial = bedeutet[0] + income - debt
print("Ihr Gesamtvermögen im Jahr %i: %.3f" % (years, captial))
def init():
print()
print('''Die folgenden Dienste sind verfügbar:
1. Vermögenswerte abfragen
2. Einzahlen
3. Abheben
4. Zinseszins berechnen
5. Kredit berechnen
6. Zukünftige Vermögenswerte berechnen
q. Beenden''')
def main():
init()
while True:
choice = input("Bitte geben Sie den Servicecode ein, den Sie verwenden möchten: ")
# Kontostand abfragen
if choice == "1":
balance()
# Einzahlung
elif choice == "2":
inc = float(input("Bitte geben Sie den Einzahlungsbetrag ein: "))
saving(inc)
# Abhebung
elif choice == "3":
dec = float(input("Bitte geben Sie den Abhebungsbetrag ein: "))
draw_money(dec)
# Regelmäßige Investition berechnen
elif choice == "4":
investment = float(input("Bitte geben Sie den monatlichen regelmäßigen Anlagebetrag ein: "))
annual_rate = float(input("Bitte geben Sie die jährliche Rendite ein: "))
years = int(input("Bitte geben Sie die Anlagedauer (Jahre) ein: "))
if investment <= 0 or annual_rate <= 0 or years <= 0:
print("Die eingegebenen Daten sind falsch")
else:
money = fixed_investment(investment, annual_rate, years)
print("Endgültiger Gewinn: %.2f yuan" % money)
# Kredit berechnen
elif choice == "5":
loan = float(input("Bitte geben Sie den aktuellen Kredit ein: "))
rate = float(input("Bitte geben Sie den jährlichen Zinssatz ein: "))
pay = float(input("Bitte geben Sie die jährliche Rückzahlung ein: "))
if loan <= 0 or rate <= 0 or Zahlung <= 0:
print("Die eingegebenen Daten sind falsch")
else:
loans(loan, rate, pay, 0)
elif choice == "6":
years = int(input("Wie viele Jahre später möchten Sie den Finanzstatus überprüfen? "))
future(years)
# Beenden
elif choice == "q":
print("Bis zum nächsten Mal! Auf Wiedersehen!")
break
else:
print("Der eingegebene Befehl ist falsch, bitte erneut eingeben\n")
if __name__ == '__main__':
main()
Python3-Beispiele