Steuerrechner
das ist ja schon der 3. Code den ich mir abschreibe.... ich kann schon nachvollziehen das sich keiner mit meinem Wissensstand über Python mit der Sache befassen möchte weil ich mir das selbst erarbeiten muss! das will ich ja auch -.- aber dafür brauch ich doch auch funktionierende Programme. Ist ja nun nicht so das ich jeden Tag ein Code abtippe und mich damit programmierer schimpfe -.- ich gehe auch jeden Code durch um die einzelnen Bausteine zu verstehen...
@BlackJack
du hast mich falsch verstanden weil ich mich auch echt dumm ausgedrückt habe.....
die Fehlermeldung zu einem nicht definierten Modul habe ich wenn ich die Funktion steuern ausführen möchte weil ich doch das Script da oben so defeniert habe......
und nicht beim input -_- wenn ich einen input einfügen möchte, bekomme ich eine Fehlermeldung bei der variablen.... was für mich einfach unverständlich ist was das Problem für ein namen meiner variablen ist >.<
du hast mich falsch verstanden weil ich mich auch echt dumm ausgedrückt habe.....
die Fehlermeldung zu einem nicht definierten Modul habe ich wenn ich die Funktion steuern ausführen möchte weil ich doch das Script da oben so defeniert habe......
und nicht beim input -_- wenn ich einen input einfügen möchte, bekomme ich eine Fehlermeldung bei der variablen.... was für mich einfach unverständlich ist was das Problem für ein namen meiner variablen ist >.<
Code: Alles auswählen
def steuern(einkommen):
einkommen = raw_input("Einkommen? ")
print 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
und die Fehlermeldung:
File "einkommenssteuer", line 3
einkommen = raw_input("Einkommen? ")
^
IndentationError: expected an indented block
und selber Schreiben würde ich ja ganz gerne mal wenn ich mir mal klar werden könnte womit ich mich befassen kann.
Nur wer gibt mir schon eine Aufgabe mit der ich mich mal auseinander setzen muss
Also muss ich mir selbst eine Fragestellung überlegen..... aber bevor ich mir an einer Aufgabe die Zähne ausbeise, lerne ich erstmal einpa Grundlagen
Und wie soll ich bitte besser lernen als durch wiederholung? eigene Codes werde ich anfangen zu gestalten wenn ich die Grundlagen mir angeeignet habe
Bis dahin ist es halt Mühsam........ ich weiß >.<
Wenn du eine Funktion schreibst, dann sollte sie auch Code enthalten. Da du die auf def folgenden Codezeilen nicht eingerückt hast geht Python davon aus, dass diese kein Teil der Funktion sein sollen. Damit hättest du aber eine Funktion ohne Code und das ist nicht zulässig.Pacome hat geschrieben:Code: Alles auswählen
def steuern(einkommen): einkommen = raw_input("Einkommen? ") print einkommen
Einrückungen sind in Python nicht nur optische Gliederung sondern sie sind elementar für den Programmfluss.
@Pacome: wenn Du nicht genau zeigst, was Du machst, kann man Dir ja auch nicht helfen, von "nicht wollen" kann da gar keine Rede sein. Du kannst nicht Code, der außerhalb der Funktion stehen soll, in die Funktion hineinschreiben. Was hast Du Dir gedacht, als Du die Zeilen 3 und 4 dort hingeschrieben hast? Das erzeugt aber auch nicht den Fehler "steuern sei ein undefiniertes Modul".
@Sirius3
Nein diese Fehlermeldung wird erzeugt wenn ich steuern als Funktion ausführen möchte...... in dem ich bei Python einfach steuern eintippe
Danke für die Hinweise zum Einrücken. Ich werde mich Morgen damit weiter befassen -.-
Nein diese Fehlermeldung wird erzeugt wenn ich steuern als Funktion ausführen möchte...... in dem ich bei Python einfach steuern eintippe
Danke für die Hinweise zum Einrücken. Ich werde mich Morgen damit weiter befassen -.-
@Pacome: Die Zahlen zur Berechnung der Steuer stimmen auch nicht, zumindest sind es nicht die Werte für 2014-2015. Auch die Berechnung der unteren Steuerbelastungen, oberhalb des Freibetrags, werden nicht funktionieren.
Die aktuelle Formel wird Dir angezeigt, wenn das Ergebnis der Einkommensteuerberechnung des BMF ausgegeben wird:
https://www.bmf-steuerrechner.de/ekst/?
Die aktuelle Formel wird Dir angezeigt, wenn das Ergebnis der Einkommensteuerberechnung des BMF ausgegeben wird:
https://www.bmf-steuerrechner.de/ekst/?
Das ist für das Testprogramm eines Anfängers vermutlich nicht so entscheidend. Wichtiger ist es, dass es einen Weg durch die Funktion gibt, bei dem steuer gar nicht gesetzt wird und wodurch das anschließende return steuer folglich nicht funktioniert.kbr hat geschrieben:@Pacome: Die Zahlen zur Berechnung der Steuer stimmen auch nicht, zumindest sind es nicht die Werte für 2014-2015.
Auch wenn ich python-kurs.eu nicht für so gelungen halte*¹, die Strukturierung wird schon sehr weit vorne im Kurs angesprochen: Blöcke.Pacome hat geschrieben:Danke für die Hinweise zum Einrücken. Ich werde mich Morgen damit weiter befassen -.-
[*¹] Der "Public, Protected, Private"-Blödsinn.
Da kann ich nur zustimmen, denn schließlich soll das ganze ja mit einem Erfolgserlebnis enden. Wobei dieses umso schöner ist, wenn am Ende, wenn der Programmablauf funktioniert, dann auch die richtigen Zahlen rauskommen./me hat geschrieben:Das ist für das Testprogramm eines Anfängers vermutlich nicht so entscheidend. Wichtiger ist es, dass es einen Weg durch die Funktion gibt, bei dem steuer gar nicht gesetzt wird und wodurch das anschließende return steuer folglich nicht funktioniert.
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:
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
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
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
@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:
Von hier aus wirst Du bestimmt weiter kommen.
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
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 -_-
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
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
aber ich will wenigstens eine sinnvolle Eingabe können
@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/
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.
Ehrlich gesagt komme ich mir hier langsam verarscht vor. Du lernst ganz offensichtlich nichts aus den Erklärungen und Codebeispielen.Pacome hat geschrieben:File "einkommenssteuer", line 8
if einkommen <= 8004:
^
IndentationError: unexpected indent
So lange du dich weigerst zu verstehen wofür die Einrückungen im Code da sind ist jegliche weitere Erläuterung sinnlos.