您的位置:首页 > 其它

for循环中的循环次数无法更改,可用while实现

2018-01-30 18:54 781 查看
先看一个实例(以下代码在python环境下):

array=[3,4,5]
for i in range(len(array)):
array.append(i)
print(i)
print(array)


在假想for循环的循环次数会改变时,那上述代码将随着array的不断加长而变成一个死循环,但实际运行的结果是

0
1
2
[3, 4, 5, 0, 1, 2]


结果说明,循环变量 i 的取值不随array的加长而改变,循环的次数的固定的,即使是在循环体内改变循环变量 i 的值,也不会影响循环的次数,看下例:

array=[3,4,5]
for i in range(len(array)):
array.append(i)
print(i)
i=i+3
print(array)


这个例子的输出结果和第一个例子是一样的,说明循环的次数的固定的

array=[3,4,5]
for i in range(len(array)):
array.append(i)
i=i+3
print(i)
print(array)


这个例子的输出结果为:

3
4
5
[3, 4, 5, 0, 1, 2]


这个例子中,array并未改变,但循环变量 i 的取值在循环体里面是被改变了,却并不影响循环的次数。

因为,循环变量的取值在一开始就生成了,range(len(array))生成了一个生成器[0,1,2],循环变量就依次取值,循环体中可以临时改变循环变量的值,但不会改变生成器。

要想改变循环的次数,可以用while语句代替。

i=0
while len(array)<10:
array.append(i)
print(i)
i=i+1
print(array)


该例子的结果为

0
1
2
3
4
5
6
[3, 4, 5, 0, 1, 2, 3, 4, 5, 6]


因此,for循环适合循环次数固定的情况,而while循环则都可以适用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: