在Python中使用索引向后循环?

我想从100循环到0.我如何在Python中做到这一点?

for i in range (100,0)不起作用。

11 Solutions collect form web for “在Python中使用索引向后循环?”

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

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

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

和一些稍长(和较慢)的解决scheme:

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

通常在Python中,可以使用负指标从后面开始:

 numbers = [10, 20, 30, 40, 50] for i in xrange(len(numbers)): print numbers[-i - 1] 

结果:

 50 40 30 20 10 

另一个scheme

 z = 10 for x in range (z): y = zx print y 

结果:

 10 9 8 7 6 5 4 3 2 1 

提示:如果您使用此方法计算列表中的索引,则需要从“y”值为-1,因为列表索引将从0开始。

简短而甜蜜。 这是我在做codeAcademy课程时的解决scheme。 按照rev的顺序打印一个string。

 def reverse(text): string = "" for i in range(len(text)-1,-1,-1): string += text[i] return string 

for var in range(10,-1,-1)作品

为什么你的代码不工作

你代码for i in range (100, 0)是好的, 除了

第三个参数( step )默认为+1 。 所以你必须指定range()的第三个参数为-1来退后一步。

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

注:这包括100&0在输出。

有多种方式。

更好的方法

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

这是Python3 pythonic示例从100打印到0(包括100&0)。

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

你总是可以增加范围,从你的情况100 - i减去一个variables100 - i i in range( 0, 101 )

 for i in range( 0, 101 ): print 100 - i 

我在codeacademy练习之一中尝试了这个(在string中反转字符而不使用反转也不是-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') 
 a = 10 for i in sorted(range(a), reverse=True): print i 
  • Django:'current_tags'不是一个有效的标签库
  • Python频率检测
  • 如何轻松打印ascii艺术的文字?
  • Python进程使用的内存总量?
  • TextField在django.forms中丢失
  • 如何修复python缩进
  • 如何离开/退出/停用python virtualenv?
  • 错误:无法创build'/usr/local/lib/python2.7/dist-packages/virtualenv_support':权限被拒绝
  • 为什么使用BeautifulSoup和IDLE获得recursion错误?
  • python:从列表(序列)中获取具有一定条件的项目数
  • Python打印string到文本文件