Unterricht und Kurs · Station 1 von 10
Gehaltsrechner
Ein Konsolenprogramm, das aus dem Stundenlohn den Brutto- und Nettolohn eines Monats berechnet.

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
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 * .023Eine 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.