Decreasing for loops in Python impossible?

我可能是错的(只要让我知道,我会删除的问题) ,但似乎 Python 不会回应

for n in range(6,0):
print n

I tried using xrange and it didn't work either. How can I implement that?

182348 次浏览
for n in range(6,0,-1):
print n
# prints [6, 5, 4, 3, 2, 1]
for n in range(6,0,-1):
print n
>>> range(6, 0, -1)
[6, 5, 4, 3, 2, 1]

这已经很晚了,但我想补充的是,还有一种更优雅的方式: 使用 reversed

for i in reversed(range(10)):
print i

提供:

4
3
2
1
0
for n in range(6,0,-1)

This would give you 6,5,4,3,2,1

至于

for n in reversed(range(0,6))

会给你 5,4,3,2,1,0

0是条件值当这个条件为真时,循环将继续执行。10是初始值。1是可能是简单递减的修饰符。

for number in reversed(range(0,10,1)):
print number;

派对已经迟到了,但是对于任何一个负责创建自己的或者想要看看这是如何工作的人来说,这里有一个附加的功能,可以根据需要的增量重新排列开始-停止值:

def RANGE(start, stop=None, increment=1):
if stop is None:
stop = start
start = 1


value_list = sorted([start, stop])


if increment == 0:
print('Error! Please enter nonzero increment value!')
else:
value_list = sorted([start, stop])
if increment < 0:
start = value_list[1]
stop = value_list[0]
while start >= stop:
worker = start
start += increment
yield worker
else:
start = value_list[0]
stop = value_list[1]
while start < stop:
worker = start
start += increment
yield worker

负增量:

for i in RANGE(1, 10, -1):
print(i)

或者,启停反转:

for i in RANGE(10, 1, -1):
print(i)

产出:

10
9
8
7
6
5
4
3
2
1

定期加薪:

for i in RANGE(1, 10):
print(i)

产出:

1
2
3
4
5
6
7
8
9

零增量:

for i in RANGE(1, 10, 0):
print(i)

产出:

'Error! Please enter nonzero increment value!'

对于 python3,其中 -1表示在每个步骤中要递减的值 for n in range(6,0,-1): 打印(n)