增量和循环

时间:2016-08-03 15:58:14

标签: python python-3.x

以下是我在Windows 10上用于Python 3.5.2的IDLE执行的代码:

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

我可以看到Hello World打印5次但是在IDLE中输入垃圾邮件时,我可以看到整数5。 难道这不是逻辑上的int 6,因为while循环将在垃圾邮件从5增加1并且垃圾邮件变量以递增的int传递后立即停止吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

spam < 5可以读取为垃圾邮件小于5,因此它只会从0增加到4.在第4次(最后一次)迭代中,spam = 4因此它会打印&#39 ;你好,世界&#39;然后是spam + 1 = 5。此时它将尝试另一次迭代,但spam < 5不再为真,因此将退出循环。

供参考:<表示小于,<=表示小于或等于。

你认为自己有什么特别的原因?

答案 1 :(得分:2)

你的while循环是&#34;而垃圾邮件小于 5&#34;而不是&#34;而垃圾邮件小于或等于到5&# 34 ;.当垃圾邮件为4时,最后一次迭代发生,然后最后一次递增到5。

如果垃圾邮件等于5,则小于5,因此while循环停止迭代。

答案 2 :(得分:0)

我添加了一份印刷声明来说明正在发生的事情:

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1
    print(spam, 'spam is < 5?', spam < 5, "\n")

输出结果为:

Hello, world.
1 spam is < 5? True 

Hello, world.
2 spam is < 5? True 

Hello, world.
3 spam is < 5? True 

Hello, world.
4 spam is < 5? True 

Hello, world.
5 spam is < 5? False