Seite 1 von 1

-Ergebnisausgabe mit [def main]-Problem

Verfasst: Samstag 7. November 2015, 13:56
von Sony23
Hallo Leute,
also ich habe folgendes Problem, vielleicht könnt ihr mir weiterhelfen:

Code: Alles auswählen

#Einfaches Subtraktionsprogramm mit def main()

def Rechnung(x,y):
    a=x-y
    return a


def main():
    x=int(input("Bitte eine zahl eingeben"))
    y=int(input("Bitte eine zahl eingeben"))
    print(a)

main()

ich habe im def Rechnung(x,y) Teil, die Rechnung die durchgeführt werden soll definiert. Das Ergebnis dieser Rechnung soll die Variable a sein.
Aber ich kriege ständig diese Fehlermeldung: [NameError: name 'a' is not defined]
Könnt ihr bitte sagen, was genau mein fehler ist und ihn erklären

Danke schonmal

Re: -Ergebnisausgabe mit [def main]-Problem

Verfasst: Samstag 7. November 2015, 14:03
von BlackJack
@Sony23: Innerhalb von `main()` ist kein `a` definiert. Ein Sinn von Funktionen ist ja gerade das lokale Namen nicht im ganzen Programm existieren sondern nur lokal in der Funktion, so dass man sich nicht für das ganze Programm immer neue Namen ausdenken muss und Angst haben muss der Name wird an anderer Stelle schon für etwas anderes verwendet.

Die `Rechnung()`-Funktion gibt das Ergebnis ja zum Aufrufer zurück, da muss man den Wert dann auch verwenden. Beziehungsweise muss man die Funktion auch erst einmal aufrufen damit der Code darin ausgeführt wird.

Re: -Ergebnisausgabe mit [def main]-Problem

Verfasst: Samstag 7. November 2015, 14:04
von Sony23
Wie würde es dann aussehen?

Re: -Ergebnisausgabe mit [def main]-Problem

Verfasst: Samstag 7. November 2015, 14:08
von kbr
Sony23 hat geschrieben:Wie würde es dann aussehen?
Nun, so wie Du main() aufrufst, musst Du auch Rechnung() aufrufen. z.B:

Code: Alles auswählen

resultat = Rechnung(x, y)
Und dann das Ergebnis zur Ausgabe bringen.