Ich habe versucht, ein Zufallszahlen-Ratespiel zu programmieren, hauptsächlich weil ich mich gefragt habe, ob if/else wie goto
auf meinem Casio CFX-9850G funktioniert. Ich habe die Eingänge nicht bereinigt und Fehlermeldungen erzeugt (zB um max
zu niedrig zu setzen, Buchstaben anstelle von Zahlen einzugeben, mehr als maximal zu raten usw.). Mein anfängliches Problem ist, dass, während mein Code keinen Fehler erzeugt, ich die Zahl nicht erraten kann, selbst wenn ich Max auf 3 setze und 0,1,2,3,4,5 versuche. Es scheint, als hätte ich eine Schleife erstellt, und ich kann nicht herausfinden, wo. hier ist mein Code:Warum scheine ich in einer Schleife stecken zu bleiben?
import random
print "GUESS MY NUMBER"
max=int(raw_input("Guess number between 1 and what?"))
randomnumber = random.randint(1,max)
def make_guess(guess):
if guess == randomnumber:
print "Congratulations, you guessed my number!"
else:
guess=raw_input("Guess again?")
make_guess(guess)
guess=int(raw_input("What is your best guess?"))
make_guess(guess)
print "My number was" ,randomnumber
und erzeugt:
GUESS MY NUMBER Guess number between 1 and what? 3 What is your best guess? 0 Guess again? 1 Guess again? 2 Guess again? 3 Guess again? 4
Nun wollte ich den Code, bis eine richtige Vermutung zu Schleife, aber ich erwartete eine richtige Vermutung der if
Code auslösen würde.
Verschieben Sie Ihre Funktionsdefinition an den Anfang des Codes oder definieren Sie eine Hauptfunktion. Verwechseln Sie nicht Code und Funktionen auf höchster Ebene. –
@VaibhavAggarwal Ich verstehe nicht. Meinst du meinen 'def make_guess' über' print "GUESS MY NUMBER"? Ich habe das versucht und es hat mein Problem nicht gelöst. – toonarmycaptain