range()函数
range用来生产数列
函数原型:range(start, end, scan):
参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
常用的range()函数用法:
>>> range(1,5) #代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) #代表从1到5,间隔2(不包含5) [1, 3] >>> range(5) #代表从0到5(不包含5) [0, 1, 2, 3, 4]
有趣的现象:
这里说一个使用range()时的有趣的现象,更准确的说是一个初学者会犯的错误,请看以下代码:
for i in range(5): print (i) i += 2 print (i) print ('一轮结束')
一个很常用的range()函数使用方法,for循环中使用range()函数来计数,很多新手会认为运行结果为:
结果1:
0 2 一轮结束 2 4 一轮结束 4 6 一轮结束
实际运行结果为:
结果2
0 2 一轮结束 1 3 一轮结束 2 4 一轮结束 3 5 一轮结束 4 6 一轮结束
实际上想得出第一种运行结果应使用的代码为:
i = 0 while i < 5: print (i) i += 2 print (i) print('一轮结束')
需要使用while循环
这是因为for循环每循环每开始一次便会将i重新赋值一次,如下:
#for循环开始range(5)内容为[0,1,2,3,4],i=0 0 #输出i 2 #输出i+2 一轮结束 #for循环开始range(5)内容为[0,1,2,3,4],i=1 1 #输出i 3 #输出i+2 一轮结束 #for循环开始range(5)内容为[0,1,2,3,4],i=2 2 #输出i 4 #输出i+2 一轮结束 #for循环开始range(5)内容为[0,1,2,3,4],i=3 3 #输出i 5 #输出i+2 一轮结束 #for循环开始range(5)内容为[0,1,2,3,4],i=4 4 #输出i 6 #输出i+2 一轮结束
而while循环并不会在每次循环开始的时候将i重新赋值,所以产生第一种结果。
浙公网安备 33010602011771号