我怎样才能使这个自定义范围函数与负步一起工作?
How can I make this custom range function work with negative steps?
这就是我目前所拥有的。它与其他 3 个参数一起正常工作,但是一旦我将步骤更改为负数,它就不会 return 预期的输出。我在最后添加了内置的范围功能作为参考。
def myRange(start, stop = None, step = None):
if(step == None and stop== None ):
stop = start
start = 0
step = 1
elif(step == None):
step = 1
res = []
if (step < 0):
while stop < start:
res.append(start)
start += step
else:
while start < stop:
res.append(start)
start += step
return res
def main():
print(myRange(5, 20))
print(myRange(5, 100, 5))
print(myRange(20, 10, -1))
print(list(range(20, 10, -1)))
print(myRange(100, 500, 50))
if __name__ == '__main__':
main()
你犯了一个小错误,你应该取消缩进 return res
。
像这样
else:
while start < stop:
res.append(start)
start += step
return res
这就是我目前所拥有的。它与其他 3 个参数一起正常工作,但是一旦我将步骤更改为负数,它就不会 return 预期的输出。我在最后添加了内置的范围功能作为参考。
def myRange(start, stop = None, step = None):
if(step == None and stop== None ):
stop = start
start = 0
step = 1
elif(step == None):
step = 1
res = []
if (step < 0):
while stop < start:
res.append(start)
start += step
else:
while start < stop:
res.append(start)
start += step
return res
def main():
print(myRange(5, 20))
print(myRange(5, 100, 5))
print(myRange(20, 10, -1))
print(list(range(20, 10, -1)))
print(myRange(100, 500, 50))
if __name__ == '__main__':
main()
你犯了一个小错误,你应该取消缩进 return res
。
像这样
else:
while start < stop:
res.append(start)
start += step
return res