Wieso rufst du 'frag_name' zwei mal auf?
Code: Alles auswählen
def frage_name() :
name = input("wie ist der Name:")
return name
name = frage_name()
print(name)
Es passiert jetzt folgendes: Die Funktion 'frage_name' wird aufgerufen, darin wird 'input' aufgerufen. Das ist auch eine Funktion.
Du gibst jetzt einen Namen ein und dieser Name wird von der Funktion 'input' zurück gegeben und du kannst mit diesem Namen in deiner Funktion 'frage_name' arbeiten, weil du schreibst 'name = input()'. Der RÜckgabewert wird an 'name' gebunden. Und wenn du in der Funktion jetzt 'print(name)' schreiben würdest, würdest du 'name' wieder ausgeben.
Da du 'name' jetzt aber noch wo anderst willst, musst du ihn an den Aufrufer zurück geben und das machst du mit 'return'.
Und jetzt passiert das gleiche wie mit 'input'. name = 'frage_name()' bedeutet dass der Rückgabewert (return name) an 'name' gebunden wird und du kannst jetzt auserhalb der Funktion mit 'name' arbeiten.
Grüße
Dennis