def mxrange(start,end=0,step=1):
    (start,end) = start>end and (end,start) or (start,end)
    while start < end:
        yield start
        start+=step      

print [i for i in xrange(5)],[i for i in mxrange(5)]
print [i for i in xrange(1,5)],[i for i in mxrange(1,5)]
print [i for i in xrange(4,5,2)],[i for i in mxrange(4,5,2)]
'''
[0, 1, 2, 3, 4] [0, 1, 2, 3, 4]
[1, 2, 3, 4] [1, 2, 3, 4]
[4] [4]
'''

range([start, ] end [, step])函数有三个参数,start, end
,step,分别代表起始,结束以及步长,其中,start,step,可以省略,默认值分别为0,1。该函数会返回一个序列。如下所示:

>>> range(1,5,2)
[1, 3]
>>> range(5,2)
[]
>>> range(2,5)
[2, 3, 4]
>>> 

可以看出,省略参数时,只能从后向前省略

xrange([start,]365bet开户 , end [, step]
)函数也有三个参数,用法与range()相同,只不过前者返回的是一个生成器,而非序列。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注