for循环中的循环次数无法更改,可用while实现
2018-01-30 18:54
781 查看
先看一个实例(以下代码在python环境下):
在假想for循环的循环次数会改变时,那上述代码将随着array的不断加长而变成一个死循环,但实际运行的结果是
结果说明,循环变量 i 的取值不随array的加长而改变,循环的次数的固定的,即使是在循环体内改变循环变量 i 的值,也不会影响循环的次数,看下例:
这个例子的输出结果和第一个例子是一样的,说明循环的次数的固定的
这个例子的输出结果为:
这个例子中,array并未改变,但循环变量 i 的取值在循环体里面是被改变了,却并不影响循环的次数。
因为,循环变量的取值在一开始就生成了,range(len(array))生成了一个生成器[0,1,2],循环变量就依次取值,循环体中可以临时改变循环变量的值,但不会改变生成器。
要想改变循环的次数,可以用while语句代替。
该例子的结果为
因此,for循环适合循环次数固定的情况,而while循环则都可以适用。
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循环则都可以适用。
相关文章推荐
- 十进制转二进制-使用do while 、while 、for循环实现-C描述
- 从键盘输入一组非0整数,以输入0为结束标志,求这组整数的平均值,并统计其中正数和负数的个数。(根据循环变量的初值、终值无法判断出循环次数时建议使用while或do while语句完成)。
- java基础--while循环实现A4纸折叠次数到珠穆朗玛峰高度
- 实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字(for、while、if、else、switch、case)。
- c语言中不用while,for,do-while实现循环
- 使用for、while 以及repeat-break实现循环语句
- js算法一则:不用if。。while。。for等循环和判断语句实现1+2+3+...+n的和
- 关于for循环和while循环中的次数问题
- Vue中控制v-for循环次数的实现方法
- 不使用for、while等循环实现strlen()函数
- Oracle三种循环(For、While、Loop)实现九九乘法表
- Day4-while,dowhile,部分快捷键,for,循环结束,输入字符的注意
- python while 循环-猜年龄-有次数限制
- 分支语句(if,switch case)、循环(for,while,do while)、continue、break、随机数
- keil中for循环变量递减,无法跳出循环的问题
- 使用Java中的for循环来实现九九乘法表
- php利用while单循环实现100行10列表格输出且每行颜色不一样
- Java 循环结构 - for, while 及 do...while
- Shell for&while中的循环
- GAS中流程控制的实现,for, while, if, switch