我正在 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
关于python - 我允许 3 次猜测还是 2 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19061119/