我怎样才能使这个自定义范围函数与负步一起工作?

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