Python 3.6v range() 函数不会执行

Python 3.6v range() function won't execute

def fn():
  theList = []
  for rev in range(5, 0, -1):
    theList.append(rev)
    print(theList)

fn()

我不明白,为什么这个不执行? 我的目标是打印这样的东西

[5,4,3,2,1,0]
[4,3,2,1,0]
[3,2,1,0]
[2,1,0]
[1,0]
[0]

编辑 1. 好的,我添加了逗号 (,) 但结果是这样

[5]
[5, 4]
[5, 4, 3]
[5, 4, 3, 2]
[5, 4, 3, 2, 1]

这不是我要找的

1)你的函数有错别字:

for rev in range(5, 0, -1):

2) 您需要使用您的 rev:

for rev in range(5, -1, -1):
    print(range(rev,-1,-1))

你可以得到这样的输出:

def fn():
    theList = list(range(5, -1, -1))
    for idx in range(len(theList)):
        print(theList[idx:])
fn()

输出:

[5, 4, 3, 2, 1, 0]
[4, 3, 2, 1, 0]
[3, 2, 1, 0]
[2, 1, 0]
[1, 0]
[0]

您的代码使用了错误的方法。基本上,您的输出显示该列表最初已满,并且在每次迭代时继续从左侧弹出一个元素。您的方法从一个空列表开始,并在每次迭代时添加一个元素。

此外,range(5, 0, -1) 不是您认为的列表。这是因为范围函数忽略了此处为 0 的结束值。

如果你这样做 list(range(5, 0, -1)),你会得到 [5, 4, 3, 2, 1],这显然不包含 0。因此,要获得你想要的列表,你必须做 list(range(5, -1, -1)) 就像上面的代码一样。