为什么此垃圾邮件代码运行无限时间



两天后就在Python上进行了考试,这是相当基本的东西。这是练习中给出的代码

spam = 0
while spam < 5:
    print('Hello, world.')
spam = spam + 1

我本来可以期望它运行直到达到5(因此最后一行中给出的 1次2次(,但答案是"无限的时间"。

有人知道为什么吗?:) ir是因为此示例中没有elif条件?

让我们按行分解代码。

首先你有

spam = 0

这将变量spam等于值0。它将始终保持该值,直到代码明确更改。

然后我们有一段时间循环

while spam < 5:
    print('Hello, world.')

这实际上意味着虽然spam的值小于5继续调用print('Hello World')。但是,垃圾邮件等于0,因此它小于5是正确的,并且将永远是正确的。该循环也不会更改值,因此循环将无限期地运行。

最后,我们有

spam = spam + 1

这种势将 spam升至1,但问题是该语句永远不会达到!IE。它是在无限期运行的循环之后放置的!

在python中,压痕很重要。尝试以下操作:

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1

如果您不识别该行spam = spam + 1 Python会将其解释为从while块中解释,则它不执行并且它停留在无尽的循环中。

最新更新