我试图编写一个随机数猜测游戏,主要是因为我想知道我的卡西欧CFX-9850G上是否有{/ 1}}的功能。
我没有对输入进行消毒并生成错误消息(例如,设置goto
太低,输入字母而不是数字,猜测超过最大值等)。我最初的问题是,虽然我的代码没有产生错误,但我似乎无法猜测数字,即使我将max设置为3并尝试0,1,2,3,4,5。好像我已经创建了一个循环,我无法弄清楚在哪里。
这是我的代码:
max
并生成:
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
现在我希望代码循环直到正确的猜测,但我希望正确的猜测会触发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
代码。
答案 0 :(得分:3)
您忘记将输入转换为else子句中的整数。如果您在第一次尝试时猜测它实际上是有效的,因为您在其他地方之外进行转换。
更改else的第一行:
guess=raw_input("Guess again?")
到
guess=int(raw_input("Guess again?"))
你应该好好去。