-Ergebnisausgabe mit [def main]-Problem

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.
Antworten
Benutzeravatar
Sony23
User
Beiträge: 5
Registriert: Samstag 7. November 2015, 13:39

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
Zuletzt geändert von cofi am Samstag 7. November 2015, 14:34, insgesamt 1-mal geändert.
Grund: Code Highlighting korrigiert
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.
Benutzeravatar
Sony23
User
Beiträge: 5
Registriert: Samstag 7. November 2015, 13:39

Wie würde es dann aussehen?
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

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.
Antworten