声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

在可能的情况下,最好使用Python中的简单的for循环,不要用while,并且不要在for循环中使用range调用,只将其视为最后的手段。更简单的办法总是更好的。

>>> for item in X: print(item)    # Simple iteration

...

但有些时候简单的for循环无法满足我们的需求。所以有时候我们需要range函数。例如,在遍历的过程中跳过一些元素。

>>> S = 'abcdefghijk'

>>> list(range(0,len(S),2))

[0,2,4,6,8,10]


>>> for i in range(0,len(S),2): print(S[i],end=' ')

...

a c e g i k

在上面,我们通过使用所产生的range列表,访问了字符串S中每隔一个的元素。要使用每隔两个的元素,可以把range的第三参数改为3,依此类推。实际上,通过这种方式使用range来跳过循环内的元素,依然保持了for循环的简单性。
然而,这可能不是最理想最现实的技术。如果你真的想跳过序列中的元素,分片表达式提供了实现相同目标的更简单的办法。例如,要使用S中每隔一个的字符,可以用步进值2来分片:

>>> S = 'abcdefghijk'

>>> for c in S[::2]: print(c,end=' ')

...

a c e g i k

结果是相同的,但对我们来说更容易编写,对其他人来说更容易阅读。在这里,使用range唯一的真正优点是——它没有复制字符串,并且不会在Python 3.0中创建一个列表,对于很大的字符串来说,这会节省内存。