Python范围()带负向步伐
问题描述:
有没有一种使用range()
函数和stride-1的方法?Python范围()带负向步伐
E.g.使用range(10, -10)
而不是下面的方括号中的值?
即以下行:
for y in range(10,-10)
而不是
for y in [10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]:
显然,一个能做到这一点与其他类型的循环更优雅,但range()
例如将工作太多了我想要的东西更好。
答
range(10,-11,-1)
在一般情况下,它不花费任何尝试 - 你可以输入到这个解释,并看看会发生什么。
作为参考,这也是所有documented,但主要是我想鼓励你不要害怕玩耍,看看会发生什么。正如你所看到的,你的直觉是现货。
答
是,通过定义一个步骤:
for i in range(10, -11, -1):
print(i)
答
是的,但是您需要通过将step参数设置为-1来指定您想要退后一步。
用途:
for y in range(10, -10, -1)
+1
这可惜不打印-10 ...它从10到-9。 – 2017-01-01 19:53:11
答
您可能会注意到,范围函数只能在没有第三个参数的情况下以升序方式工作。如果在范围块中没有使用第三个参数,则不起作用。
for i in range(10,-10)
上述循环不起作用。 要使上述循环正常工作,您必须使用第三个参数作为负数。
for i in range(10,-10,-1)
也许我错了 - 我知道这不会是第一次 - 我不认为有任何需要snarkiness。我同意这个问题隐藏了很少的研究工作;然而,这对于一个新手来说可能是一件困难的事情。 – bernie 2012-03-28 14:56:26
你可能是对的,这是一个弱点。也许正面的鼓励会更好...... – Useless 2012-03-28 14:57:35
没有伤害没有犯规。有一个upvote – bernie 2012-03-28 14:58:10