为什么以下范围不能用python打印出来?

为什么以下范围不能用python打印出来?,python,range,Python,Range,我有以下python代码: def main(): for i in range(-10, -100): print(i, end=' ') if __name__ == '__main__': main() 但它不打印任何内容,但如果我将主函数更改为: def main(): for i in range(-100, -10): print(i, end=' ') 它打印出预期的结果,第一个不起作用的原因是什么 另外,我在pytho

我有以下python代码:

def main():
    for i in range(-10, -100):
        print(i, end=' ')

if __name__ == '__main__':
    main()
但它不打印任何内容,但如果我将主函数更改为:

def main():
    for i in range(-100, -10):
        print(i, end=' ')
它打印出预期的结果,第一个不起作用的原因是什么

另外,我在python教程中发现了以下示例代码:

range(-10, -100, -30)
  -10, -40, -70

那么为什么这样做,仅仅因为它添加了一个步骤(-30)?

函数的默认
步骤
值是
1
。因此,要使范围有效,第一个参数(
start
)必须小于第二个参数(
end

如果第一个参数(
start
)大于第二个参数(
end
),则通过将
1
的步骤添加到
start
中,永远无法达到
end
值。在这种情况下,您可以给阶跃值
-1
,使其朝相反方向移动:

for i in range(-10, -100, -1):

现在
i
将取值
-10
-11
-12
,依此类推,直到
-99
函数的默认
步骤
值为
1
。因此,要使范围有效,第一个参数(
start
)必须小于第二个参数(
end

如果第一个参数(
start
)大于第二个参数(
end
),则通过将
1
的步骤添加到
start
中,永远无法达到
end
值。在这种情况下,您可以给阶跃值
-1
,使其朝相反方向移动:

for i in range(-10, -100, -1):

现在,
i
将取值
-10
-11
-12
,依此类推,直到
-99

对函数
范围([start,]stop[,range])
进行一个小的模拟,得到正范围(默认值为1)

def范围(启动、停止、范围):
lst=[]
启动<停止时:
lst+=[开始]
开始+=范围
返回lst
因此,如果
范围(-10,-100)
将失败
启动
,因此将不打印任何内容


但是,如果使用了
范围(-10,-100,-1)
,则范围为负值,因此将
开始<停止
替换为
开始>停止
,模拟将有所不同。它可以工作,但是将打印从-10到-99的数字。第二个函数的相反方向是一个小的模拟,模拟函数
范围([start,]stop[,range])
的正范围(默认值为1)

def范围(启动、停止、范围):
lst=[]
启动<停止时:
lst+=[开始]
开始+=范围
返回lst
因此,如果
范围(-10,-100)
将失败
启动
,因此将不打印任何内容

但是,如果使用了
范围(-10,-100,-1)
,则范围为负值,因此将
开始<停止
替换为
开始>停止
,模拟将有所不同。它将工作,但是将打印从-10到-99的数字,与第二个函数相反