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

先看一个实例(以下代码在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循环则都可以适用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海晨威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值