Sonjiru hat geschrieben:Code: Alles auswählen
def rechnen():
# Anfang Eingabe der Zahlen
zahl1 = int(input('Erster Wert: '))
zahl2 = int(input('Zweiter Wert: '))
# Ende Eingabe der Zahlen
rechnen()
summe = zahl1 + zahl2
print("Ergebnis: " + summe)
Also irgendwas hab ich da noch nicht verstanden.
Du verteilst deine Einrückungen völlig wahlfrei im Code. Einrückungen dienen dazu, die Zugehörigkeit von Code zu anderen Codeteilen festzulegen.
Du hast erst einmal mit
def rechnen() eine Funktionsdeklaration. Die folgenden Zeilen mit
input sind eingerückt und gehören folglich dazu. Anschließend rufst du mit
rechnen() die Funktion
rechnen auf. Die folgende Zeile ist jetzt wieder eingerückt, aber es gibt nichts vorhergehendes, wozu die Einrückung gehören könnte (
if,
for, ...) und damit bekommst du dann den von dir genannten Fehler. Die Zeile mit dem
print ist dann auch noch eingerückt, aber zu dem Zeitpunkt ist das Kind ohnehin schon in den Brunnen gefallen. Erschwerend kommt noch dazu, dass deine Einrückungen inkonsistent sind mit mal 2 und mal 3 Leerzeichen. Der Style Guide für Python Code (
PEP 8) empfiehlt 4 Leerzeichen pro Einrückungsebene.
Was du vermutlich willst ist, dass die Funktion
rechnen zwei Werte addiert und ihre Summe zurückgibt.
Code: Alles auswählen
def rechnen():
zahl1 = int(input('Erster Wert: '))
zahl2 = int(input('Zweiter Wert: '))
summe = zahl1 + zahl2
return summe
ergebnis = rechnen()
print("Ergebnis: " + str(ergebnis))
(Ich würde den Code zwar eigentlich deutlich anders schreiben und anders aufteilen, aber du sollst ihn ja wiedererkennen)
Was nicht geht, ist das was du in deinem ersten Versuch gemacht hast, nämlich
zahl1 und
zahl2 außerhalb ihrer Funktion weiter zu benutzen. Dort existieren diese Namen aber überhaupt nicht.
Mit diesem Code kannst du das ganze selber ausprobieren. Das
x außerhalb und das
x innerhalb der Funktion heißen zwar gleich, haben aber nichts miteinander zu tun. Lass das Miniprogramm mal laufen und überlege dir vorher mal selber, welches Ergebnis du erwartest.