python - 我允许 3 次猜测还是 2 次?

标签 python

我正在 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/

相关文章:

Python:每次出现其他项目时,都会在列表中插入一个项目

python - RSA,从列表中计算值(value)

python - 在 Pika/RabbitMQ 的 consumer_callback 中确认消息

python - 带有 "Abort trap: 6"错误的简单 Tkinter 程序

python - 我使用 colorbar 的 matplotlib 中的绘图图例问题

python - Keras Flatten Conv3D ValueError Flatten 的输入形状未完全定义

python - tensorflow:LSTM 单元中变量的初始化程序

python - 使用 WTForms 表单数据更新模型

python - 是否可以做一个没有边框的 wx.TextCtrl?

python - 按给定索引处的项目对列表进行排序