Unterricht und Kurs · Station 1 von 10

Gehaltsrechner

Ein Konsolenprogramm, das aus dem Stundenlohn den Brutto- und Nettolohn eines Monats berechnet.

Gehaltsrechner

Ziel

Mit Eingaben, Bedingungen und Schleifen ein Programm schreiben, das etwas Nützliches ausrechnet.

Umsetzung

  • In drei Versionen gewachsen: vom einfachen Rechner bis zur Abfrage von Arbeitsstunden, Arbeitstagen, Jahr und Monat.
  • Die Arbeitstage des gewählten Monats zählt das Programm selbst über das Kalendermodul.
  • Vereinfachte Abzüge: Lohnsteuer in Stufen, Kirchensteuer je nach Bundesland und Sozialversicherung mit Beitragsbemessungsgrenzen.
  • Falsche Eingaben werden abgefangen und neu abgefragt.

Code

Von Brutto zu Netto in ein paar Zeilen

payroll.py
def payroll_tax(monthly):
    if monthly < 1000:
        payroll_tax = 5
    elif 1000 <= monthly < 2000:
        payroll_tax = 15
    elif 2000 <= monthly < 3500:
        payroll_tax = 25
    elif 3500 <= monthly < 5000:
        payroll_tax = 35
    elif 5000 <= monthly < 7000:
        payroll_tax = 42
    else:
        payroll_tax = 45

    netto = monthly * (1 - payroll_tax / 100)
    return netto

netto = payroll_tax(monthly)

churchtax_netto = (monthly - netto) * churchtax

pension_insurance_limit = 7550
health_insurance_limit = 5175

if monthly < pension_insurance_limit:
    pension_insurance = monthly * .093
    unemployment_insurance = monthly * .013
else:
    pension_insurance = pension_insurance_limit * .093
    unemployment_insurance = pension_insurance_limit * .013

if monthly < health_insurance_limit:
    health_insurance = monthly * .073
    nursingcare_insurance = monthly * .023
else:
    health_insurance = health_insurance_limit * .073
    nursingcare_insurance = health_insurance_limit * .023

Eine Funktion wählt den Steuersatz nach Stufen, die Sozialversicherung wird an der Beitragsbemessungsgrenze gedeckelt.

Was ich gelernt habe

Eingaben nie zu trauen. Und ein Programm wächst in kleinen Versionen besser als in einem großen Wurf.

Es ist ein unerwarteter Fehler aufgetreten. Neu laden 🗙

Verbindung wird wiederhergestellt …

Verbindung fehlgeschlagen. Nächster Versuch in Sekunden.

Verbindung fehlgeschlagen. Bitte erneut versuchen oder die Seite neu laden.

Die Sitzung wurde vom Server pausiert.

Die Sitzung konnte nicht fortgesetzt werden. Bitte erneut versuchen oder die Seite neu laden.