Frage von PCUSER97, 32

python rekursions problem?

hi, ich möchte mir eine zufällige zahl aus den beiden zahlen geben lassen und sie zurückgeben lassen aus der Funktion (siehe bild) leider bekomme ich die Fehlermeldung "i" ist nicht definiert was kann ich machen ?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Dory1, 9

Wozu überhaupt der while-loop? Würde das hier nicht ausreichen?

import random as rand
def würfeln():
return rand.randint(1, 6)
print(würfeln())

Nebenbei bemerkt:

while 1:

produziert eine Endlosschleife denn 1 entspricht boolean true und ist somit immer wahr.

Kommentar von ralphdieter ,

Es geht sogar noch kürzer: http://xkcd.com/221/ :-)

Kommentar von Dory1 ,

lol

Antwort
von Schilduin, 24

Dein Programm definiert die Variable i nur lokal in der Funktion würfeln, du versuchst sie aber mit print(i) außerhalb der Funktion wiederzugeben. Außerdem hat deine Funktion eine Endlosschleife... Du solltest besser irgendeine Methode einbauen, sie abzubrechen...

Antwort
von TUrabbIT, 4

Pack ein i=0 (o.ä.) vor die while dann geht das.
Das Problem ist, das i in der Schleife initialisiert und definiert wird, daher ist i auch nur in der Schleife bekannt. Das i das im Return steht ist ein "neues" i ohne Verbindung zum vorigen i

Kommentar von TUrabbIT ,

Quatsch, habe noch vertan und zu kurz überflogen. entweder machst du das Print(i) in die Funktion oder du machst einen Funktionsaufruf in das print.

Kommentar von TUrabbIT ,

Also print(würfeln(0)) oder eine beliebige andere Zahl

Antwort
von DouglasStamper, 17

das i, das du untern versuchst zu printen, ist nicht definiert. i ist nur innerhalb der Funktion bekannt. 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten