繁体   English   中英

有关python中while循环的问题

[英]Questions about the while loop in python

关于Coursera的测验我无法理解

i = 1
while i % 3: 
    print(i, end = ' ')
    if i >= 10:
        break
    i += 1

我希望输出为1,2,3,4,5,6,7,8,9,但实际输出为12。我不明白什么是“ while i%3”,有人可以解释一下吗?

python中的%(模)运算符从第一个数字除以第二个数字计算出余数。

EG: 5 % 3 == 2

i在程序中增加到3时, 3 % 3的结果为0

在Python中, 0 == False ,所以当i增加到3 ,它将不再满足while循环条件。

您可以通过以下方法自己尝试:

while 0:
    print("Hello world!")

这个stackoverflow答案很好地总结了一下: https : //stackoverflow.com/a/961351/9822083

python中的%符号表示Modulus运算符-可能更容易理解为“余数”。 我相信您想说的是“我<3”

%代表模量算子。

返回商的小数部分(余数)。

https://python-reference.readthedocs.io/en/latest/docs/operators/modulus.html

while i % 3返回i % 3的值不为0while i % 3一直执行,这是i = 3

>>> 1 % 3
1
>>> 2 % 3
2
>>> 3 % 3
0

任何整数都会在while循环中被视为“ True”,而在命中“ False”时,while循环将停止。 因此,“ if”语句在此代码中实际上是无用的或多余的。

>>>1 % 3
1 - which means true
>>>3 % 3
0 - which means false so the while loop stops and doesn't even run

然后,当您增加i时,结束循环。 在if语句之前,所有这些甚至可以运行10次。 因此响应为1,2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM