我给了以下程序,并且我被要求写下它打印的内容:
num = 10
for num in range(5):
print(num)
print(num)
我的回答是:
10
我的理由是num
已被定义为10
,因此它不能在(0,5)
范围内,因此我们可以跳过此循环。然后,我们简单地写下num
是什么:10。
答案非常不同:
0
1
2
3
4
4
这是怎么回事?当num
在开始时被定义为10
时,最后一行怎么可能打印4?
答案 0 :(得分:5)
当你这样做时:
for num in range(5):
print(num)
您通过num
分配给num = 10
的值被for
循环覆盖。在循环中,您的num从0变为4.当for
循环结束时,它将值保存为4
。当你执行print num
时,它会在循环外打印4
,因为它在for
内保留了最后指定的值。
答案 1 :(得分:4)
您正在将$(function() {
// your code here...
});
(布尔运算符)与in
(in
语法的一部分)混合。
以下程序可能就是您的想法:
for
在测试程序中,n遍历>>> n = 10
>>> if n in range(5):
... print(n)
...
>>> print(n)
10
中的值,打印这些值。然后它将再次打印最后指定的值,因此重复4。
答案 2 :(得分:1)
for循环会将num的值从0更改为4,你所想的是像if num in range(5)
那样会询问num是否介于(0,5)之间
答案 3 :(得分:0)
只要for in range循环开始,它就会覆盖num的值。因此,num以值10开始,进入for循环,然后将其值设置为0,打印0,num设置为1,打印1,依此类推。
在for循环之后,再次打印num,其新值(循环的最后一个值)4。