Steuerrechner

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Pacome
User
Beiträge: 18
Registriert: Montag 24. August 2015, 11:52

Mag mir nun jemand nochmal mit dem Input helfen?
Also Blöcke habe ich mir nun nochmal angesehen und mein Programm dementsprechend bearbeitet siehe da:

Code: Alles auswählen

einkommen = raw_input("Einkommen? ")
print(einkommen)
def steuern(einkommen):


    if einkommen <= 8004:
        steuer = 0
    elif einkommen <= 13469:
        y = (einkommen -8004.0)/10000.0
    elif einkommen <= 52881:
        z = (einkommen -13469.0)/10000.0
        steuer = (228.74 * z +2397.0)*z +1038.0
    elif einkommen <= 250730:
        steuer = einkommen * 0.42 - 8172.0
    else:
        steuer = einkommen * 0.44 - 15694
    return steuer

Ok ich hab meinen Input vor der Funktion festlegen können :)
jetzt bleibt mir diesen nur noch im Programm zu verwenden... ick denk das krieg ich schon irgendwie, irgendwann raus :) danke für die vielen Hinweise :)
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@Pacome: anbei ein einfaches Skript, das Dir zeigt, wie Du eine Funktion aufrufen und ein Ergebnis ausgeben kannst. Das Skript stammt aus Zeiten, als der Herrscher nur den Zehnten wollte und noch Python 2 verwendet wurde. Das Einkommen gibst Du als Ganzzahl ein:

Code: Alles auswählen

def berechne_steuer(einkommen):
    return einkommen * 0.1
    
einkommen = int(raw_input('Einkommen eingeben: '))
steuer = berechne_steuer(einkommen)
print 'Steuer:', steuer
Von hier aus wirst Du bestimmt weiter kommen.
Pacome
User
Beiträge: 18
Registriert: Montag 24. August 2015, 11:52

File "einkommenssteuer", line 8
if einkommen <= 8004:
^
IndentationError: unexpected indent

:( es geht wieder um die Blöcke nehm ich an..............

hier der ganze code noch -_-

Code: Alles auswählen

def berechne_steuer(einkommen):
    return einkommen * 0.1

einkommen = int(raw_input('Einkommen eingeben: '))
steuer = berechne_steuer(einkommen)
print 'Steuer:', steuer

    if einkommen <= 8004:
        print "zu entrichtende Steuer: 0"
    elif einkommen <= 13469:
        y = (einkommen -8004.0)/10000.0
        print(y)
    elif einkommen <= 52881:
        z = (einkommen -13469.0)/10000.0
        steuer = (228.74 * z +2397.0)*z +1038.0
    elif einkommen <= 250730:
        steuer = einkommen * 0.42 - 8172.0
    else:
        steuer = einkommen * 0.44 - 15694
 return steuer
Sobald das Programm läuft belästige ich euch auch erstmal nicht mehr bis ich vor einem wirklichen Problem stehe nachdem ich mich auch weiter durch Tutorials geschlagen habe :/
aber ich will wenigstens eine sinnvolle Eingabe können
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

@pacome Ohne es ausprobiert zu haben, würde ich sagen:
Verschiebe Z.8-20 in den Block der Funktion, d.h. ab Zeile 2.
Das mit dem einkommen*0.1 war doch nur ein Beispiel, das kommt weg.
Rücke die Zeile "return steuer" ein.

Und dann solltest du dich wirklich mit einem guten Tutorial beschäftigen, zB https://py-tutorial-de.readthedocs.org/de/python-3.3/ oder http://learnpythonthehardway.org/book/
PS: Die angebotene Summe ist beachtlich.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Pacome hat geschrieben:File "einkommenssteuer", line 8
if einkommen <= 8004:
^
IndentationError: unexpected indent
Ehrlich gesagt komme ich mir hier langsam verarscht vor. Du lernst ganz offensichtlich nichts aus den Erklärungen und Codebeispielen.

So lange du dich weigerst zu verstehen wofür die Einrückungen im Code da sind ist jegliche weitere Erläuterung sinnlos.
Space
User
Beiträge: 22
Registriert: Montag 7. September 2015, 16:12

Achso und falls nicht noch jemand einen fehler findet vieleicht hat ja jemand noch ein neues Thema für mich zu dem ich mit im programme schreiben weiter bilden kann. :wink:
Antworten