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

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


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


当前回答

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

其他回答

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

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

for i in reversed(range(101))

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

我在代码学院的一个练习中尝试了这一点(在字符串中反转字符而不使用反转或::-1)

def reverse(text):
    chars= []
    l = len(text)
    last = l-1
    for i in range (l):
        chars.append(text[last])
        last-=1

    result= ""   
    for c in chars:
        result += c
    return result
print reverse('hola')

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

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

这对我很管用

for i in range(5)[::-1]:
    print(i,end=' ')

输出:4 3 2 10 0

为什么你的代码不能工作

你在(100,0)范围内为i编码是可以的,除了

第三个参数(step)默认为+1。因此,您必须将range()的第三个参数指定为-1以后退。

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

注意:这包括输出中的100和0。

有多种方法。

更好的方法

对于python方式,请检查PEP 0322。

这是一个Python3的python示例,从100到0(包括100 & 0)打印。

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