【发布时间】:2017-05-05 03:55:05
【问题描述】:
我尝试编写一个随机数猜谜游戏,主要是因为我想知道 if/else 是否可以像 goto 在我的卡西欧 CFX-9850G 上那样运行。
我还没有清理输入并生成错误消息(例如,将max 设置得太低,输入字母而不是数字,猜测超过最大值等)。我最初的问题是,虽然我的代码没有产生错误,但我似乎无法猜出这个数字,即使我将 max 设置为 3 并尝试 0、1、2、3、4、5。好像我已经创建了一个循环,我不知道在哪里。
这是我的代码:
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
现在我希望代码循环直到正确猜测,但我预计正确的猜测会触发if 代码。
【问题讨论】:
-
将你的函数定义移动到代码的顶部或定义一个主函数。不要混淆顶级代码和函数。
-
@VaibhavAggarwal 我不明白。你的意思是把我的
def make_guess移到`print "GUESS MY NUMBER" 上面吗?我试过了,但没有解决我的问题。