Skip to main content
 首页 » 编程设计

python之我允许 3 次猜测还是 2 次

2025年05月04日18telwanggs

我正在 Codecademy 上学习 Python,我应该在显示“你输了”之前给用户 3 次猜测。我认为我的代码允许 3 个条目,但网站显示“糟糕,再试一次!您是否允许用户进行 3 次猜测,或者您是否错误地检测到正确的猜测?”除非用户在 3 次试验中猜对。谁能告诉我哪里出了问题?

from random import randrange 
random_number = randrange(1, 10) 
count = 0 
# Start your game! 
guess= int(raw_input("Please type your number here:")) 
while count < 2: 
    if guess==random_number: 
        print "You win!" 
        break 
    else: 
        guess=int(raw_input("Please guess again:")) 
        count+=1 
 
else: 
    print "You lose!" 
print random_number 

请您参考如下方法:

您的循环确实会要求用户进行三种猜测。 (通过运行代码可以很容易地看到——忽略那些告诉您更改循环条件的其他答案,那是错误的解决方案。)

你的循环的问题是一个更微妙的问题:由于它的结构方式,第三次猜测从未被测试过!您可以通过将 random_number 设置为常量并猜错两次,然后在最后一次尝试正确来看到这一点;你还是输了。

最好的办法是使用更直接的循环结构,其中询问和检查发生在循环的同一迭代中。

for attempt in xrange(3): 
    guess = int(raw_input("Please enter a number: ")) 
    if guess == random_number: 
        print "You win!" 
        break 
    print "Wrong! Try again." 
else: 
    print "You lose! The number was", random_number 

如果你想在第二次和随后的猜测中有不同的提示,试试这个:

prompt = "Please enter a number" 
for attempt in xrange(3): 
    guess = int(raw_input(prompt + ": ")) 
    if guess == random_number: 
        print "You win!" 
        break 
    prompt = "Wrong! Try again" 
else: 
    print "You lose! The number was", random_number