Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 增量和while循环_Python_Python 3.x - Fatal编程技术网

Python 增量和while循环

Python 增量和while循环,python,python-3.x,Python,Python 3.x,以下是我在Windows 10上以IDLE for Python 3.5.2执行的代码: spam = 0 while spam < 5: print('Hello, world.') spam = spam + 1 spam=0 当垃圾邮件

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

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1
spam=0
当垃圾邮件<5时:
打印(“你好,世界。”)
垃圾邮件=垃圾邮件+1
我可以看到Hello World打印了5次,但是在空闲状态下输入垃圾邮件时,我可以看到整数5。 这在逻辑上不应该是int 6吗?因为只要垃圾邮件从5增加1,并且垃圾邮件变量以增加的int传递,while循环就会停止

谢谢大家!

您的while循环是“whilespam小于5”,而不是“whilespam小于或等于5”。最后一次迭代发生在垃圾邮件为4时,然后它最后一次递增到5

如果spam等于5,则它不小于5,因此while循环停止迭代。

您的while循环是“whilespam小于5”,而不是“whilespam小于或等于5”。最后一次迭代发生在垃圾邮件为4时,然后它最后一次递增到5


如果spam等于5,则它不小于5,因此while循环停止迭代。

spam<5
可以读取为spam小于5,因此它只会从0增加到4。在第四次(最后一次)迭代中,
spam=4
因此它会打印“Hello,world”,然后打印
spam+1=5
。此时,它将尝试另一次迭代,但
spam<5
不再为真,因此将退出循环


作为参考:
垃圾邮件<5
可以被读取,因为垃圾邮件小于5,所以它只能从0增加到4。在第四次(最后一次)迭代中,
spam=4
因此它会打印“Hello,world”,然后打印
spam+1=5
。此时,它将尝试另一次迭代,但
spam<5
不再为真,因此将退出循环


参考:
我添加了一个print语句来说明发生了什么:

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1
    print(spam, 'spam is < 5?', spam < 5, "\n")
spam=0
当垃圾邮件<5时:
打印(“你好,世界。”)
垃圾邮件=垃圾邮件+1
打印(垃圾邮件,'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 
你好,世界。 1垃圾邮件小于5?真的 你好,世界。 2垃圾邮件是否小于5?真的 你好,世界。 3垃圾邮件小于5?真的 你好,世界。 4垃圾邮件是否小于5?真的 你好,世界。 5垃圾邮件是否小于5?假的
我添加了一个打印语句来说明正在发生的事情:

spam = 0
while spam < 5:
    print('Hello, world.')
    spam = spam + 1
    print(spam, 'spam is < 5?', spam < 5, "\n")
spam=0
当垃圾邮件<5时:
打印(“你好,世界。”)
垃圾邮件=垃圾邮件+1
打印(垃圾邮件,'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 
你好,世界。 1垃圾邮件小于5?真的 你好,世界。 2垃圾邮件是否小于5?真的 你好,世界。 3垃圾邮件小于5?真的 你好,世界。 4垃圾邮件是否小于5?真的 你好,世界。 5垃圾邮件是否小于5?假的
检查最后一行的缩进。我相信它应该是while循环代码的一部分。正如所写的,只要
spam
为5,while循环就会停止,为什么您认为它会打印6?检查最后一行的缩进。我相信这应该是你的while循环代码的一部分,你的while循环会在
spam
为5时停止,为什么你认为它会打印6?