我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
当前回答
为什么你的代码不能工作
你在(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)
其他回答
通常在Python中,你可以使用负号从后面开始:
numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
print numbers[-i - 1]
结果:
50
40
30
20
10
又短又甜。这是我在做codeAcademy课程时的解决方案。按rev顺序打印字符串。
def reverse(text):
string = ""
for i in range(len(text)-1,-1,-1):
string += text[i]
return string
在我看来,这是最有可读性的:
for i in reversed(xrange(101)):
print i,
你可能想在python中使用反转函数。 在我们进入代码之前,我们必须记住范围 function总是返回一个列表(或者一个我不知道的元组),因此range(5)将返回[0,1,2,3,4]。反转函数反转列表或元组,因此reversed(range(5))将为[4,3,2,1,0],因此您的解决方案可能是:
for i in reversed(range(100)):
print(i)
哦,好吧,你的问题看错了,我猜是关于在数组中反向移动?如果是这样,我有这个:
array = ["ty", "rogers", "smith", "davis", "tony", "jack", "john", "jill", "harry", "tom", "jane", "hilary", "jackson", "andrew", "george", "rachel"]
counter = 0
for loop in range(len(array)):
if loop <= len(array):
counter = -1
reverseEngineering = loop + counter
print(array[reverseEngineering])