我试着从100循环到0。在Python中如何做到这一点?

I在(100,0)范围内不成立。


有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?


当前回答

在我看来,这是最有可读性的:

for i in reversed(xrange(101)):
    print i,

其他回答

你也可以在python中创建一个自定义的反向机制。哪可以使用任何地方循环一个可迭代向后

class Reverse:
    """Iterator for looping over a sequence backwards"""
    def __init__(self, seq):
        self.seq = seq
        self.index = len(seq)

    def __iter__(self):
        return self

    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index -= 1
        return self.seq[self.index]


>>> d = [1,2,3,4,5]
>>> for i in Reverse(d):
...   print(i)
... 
5
4
3
2
1

尝试range(100,-1,-1),第三个参数是要使用的增量(这里有文档)。

(“范围”选项,开始,停止,步骤在这里有记录)

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

还有一些稍长的(慢的)解决方案:

for i in reversed(range(101))

for i in range(101)[::-1]

对于var在范围(10,-1,-1)有效

a = 10
for i in sorted(range(a), reverse=True):
    print i