我发现这是为了生成随机数。
def main():
randomNumber = randint(1,100)
found = False
while not found:
userGuess = input("")
if userGuess == randomNumber:
print "You win."
found = True
elif
.....
else
.....
所以我的问题是'虽然没有找到',但我发现这不是本能的。 更本能但不工作应该是这样的:
found = False
while found
- >找到错误时循环正在工作
有人可以解释一下吗?
答案 0 :(得分:1)
当给定表达式为while
时,将执行True
循环。在您的情况下,给定的表达式为not found
。由于found
以False
开头,not found
当然是True
,因此循环执行并将继续执行,直到found
设置为{{1} }},此时True
将是not found
。
我的建议是不要重写它 - 它实际上是非常易读的。你说而你有不 找到的东西,继续寻找。
答案 1 :(得分:1)
如果while not found
似乎不直观,你可能应该习惯它。它是一种常见的Python习语,经过一段时间后会显得非常直观(双关语)。
如果你想要更可读的代码,我会完全摆脱found
变量并使用break
来终止循环:
def main():
randomNumber = randint(1,100)
while True:
userGuess = input("")
if userGuess == randomNumber:
print "You win."
break
# Code here will run only if the break isn't executed.
# You don't need the elif any more.
这是个人偏好的问题:有些人喜欢使用flag变量来终止循环;我更喜欢像这样的代码中的显式中断的简单性。