Python funktion fragee?
Warum wird x hier ausgegraut und ich kann es nicht benutzen
Ich will einfach in die funktion einbauen das immer wenn sie benutzt wird x 1 dazu bekommt
3 Antworten
Die Variablen musst du in der Funktion selber definieren, deswegen erstellt man immer eine 2. Python Datei nur mit Funktionen und importiert sie per Code in die Main Datei. Deswegen funktioniert auch nicht dein Code, weil die restlichen Variablen nur "lokal" in dieser Datei existieren -> Funktionen und restlicher Code sind getrennt.
Dein Ziel ist es ja immer wenn du deine Funktion angewendet hast x = x + 1 zu rechnen, also kannst du es simpel abfragen. Wenn die Funktion keinen Fehler beinhaltet und ausgeführt werden kann, dann addierst du 1 dazu (if).
x = 0
def funk():
pass
while True:
funk()
if funk:
x = x + 1
print(x)
Falls du das wirklich per Funktion machen willst, dann musst du das in der Funktion abfragen und ausgeben:
def funk():
x = 0
while True:
x = x + 1
print(x)
funk()
Merk dir, wenn du eine Funktion im Main Code erstellst sind die Variablen getrennt vom restlichen Code.
Ansonsten funktioniert das noch (wie schon gesagt) mit 2 Dateien und du importierst die Funktionen in deine Main Datei, ist aber sehr viel unnötiger Aufwand.
Hoffe ich konnte dir helfen.
Innnerhalb einer Funktion kannst Du eine globale Variable entweder lesen oder lokal neu definieren:
def f():
y = x+1 # ok: globales x wird gelesen
x = "Hallo" # ok: globales x wird nicht geändert.
Du versuchst aber, eine globale Variable zu ändern. Das ist in 99% aller Fälle ein Logikfehler und deshalb in Python nicht automatisch erlaubt. Wenn es gebraucht wird, musst Du das explizit dazu schreiben:
def f():
global x
x = x+1
Die Funktion 'global' kannte ich selber nicht in Python, danke dir ebenfalls bro.
Genau deswegen bin ich gegen Python für Anfänger. Hättest du das gleiche mit Java gemacht dann wüsstest du das eine Methode bzw. Funktion so nocjh funktionieren kann.
Java hätte solchen Code ohne Warnung compiliert. Dass Python hier meckert, ist eine der vielen Besonderheiten, die diese Sprache so anfängerfreundlich macht.