递归简单模拟Python的range,递归pythonrange,类似于Python的ra


类似于Python的range,接受1-3个参数,但稍有不同(实际上相当于Mathematica的Range),step为负数的还未实现,写得通用的话比我原来想的麻烦些有兴趣的朋友可以改成等价于内建的range或者尾递归优化一下(范围大了会stack overflow)

[Python]代码

def Range(*a):    v="start,end,k="    exec {    1: v+"1,a[0],1",    2: v+"a[0],a[1],1",    3: v+"a[0],a[1],a[2]"    }[len(a)]    return [] if start>end else [start]+Range(start+k,end,k)print Range(5)print Range(0,5)print Range(2,10,2)print Range(3,10,2)print Range(1,5,0.5)# [1, 2, 3, 4, 5]# [0, 1, 2, 3, 4, 5]# [2, 4, 6, 8, 10]# [3, 5, 7, 9]# [1, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]

评论关闭