Ich schreibe ein "Sie denken an eine Nummer und der Computer muss es erraten" Programm eingeben. Mein Code ist hier: http://pastebin.com/6Ny01PJV, und wenn es eine Funktion von einer anderen Funktion aufruft, beendet es entweder das Programm oder die Fehler heraus.Aufruf Funktion innerhalb der Funktion löst Fehler
def guess():
global guess
guess = choice(list)
if guess in cache:
guess()
else:
pass
print (guess)
cache.append(guess)
def check(guess):
global check
check = input("Was " + str(guess) + " the number? (y, n) ").lower()
if check == "n":
global wrong
wrong = input("Lower or higher? ").lower
elif check == "y":
playAgain = input ("I guessed the number! Play again? (y, n)")
if playAgain == "y":
#Right here it will error out with a TypeError
main()
if playAgain == "n":
exit()
else:
print("Please answer in the format 'y' or 'n'"
def reguess():
if wrong == "lower":
reguess = choice(list < guess)
#Here it will end the program, no crash, just no error given
check(reguess)
elif wrong == "higher":
#The same happens here
check(reguess)
reguess = choice(list > guess)
Wenn ich entweder 'höher' oder 'niedriger' tippe, wird das Programm beendet.
Mache ich es falsch oder gibt es einen Fehler in meinem Code, den ich nicht sehe?
Bitte verwenden Sie nicht PasteBin. Fügen Sie Ihren Code der Frage als [mcve] hinzu –
Fügen Sie auch das traceback hinzu ... Ich sehe, dass Sie die 'list' Funktion überschrieben haben und nicht wirklich wissen, wie' global' funktioniert –
Python ist nicht Pascal, in dem Sie müssen Weisen Sie dem Funktionsnamen einen Wert zu, um ihn von der Funktion zurückzugeben. – furas