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重新赋值,所以产生第一种结果。

 

posted @ 2018-01-17 20:46  wangx23tl  阅读(10291)  评论(0)    收藏  举报