Python知识分享网 - 专业的Python学习网站 学Python,上Python222
Python3.2.3官方文档(中文版) PDF 下载
发布于:2023-11-30 10:45:52
(假如点击没反应,多刷新两次就OK!)

Python3.2.3官方文档(中文版) PDF 下载  图1

 

 

 

 

 

资料内容:

 

 

2.2 for 语句
python 中的 for 语句可能有以前你在 C 或者 pascal 中所用的有点小差别。她既不像
Pascal 语言中常常遍历数组的算法过程,也不像在 C 语言中给用户自己定义遍历步骤或模糊
条件的能力,python 中的 for 语句可以按照元素在序列(列表或者字符串)中出现的顺序逐
步地遍历它们。例如:
>>> # Measure some strings:
... a = [cat, window, defenestrate]
>>> for x in a:
... print(x, len(x))
...
cat 3
window 6
defenestrate 12
在循环语句中修改正在遍历的序列是不安全的(这种情况仅仅发生在可变类型中,如列表)。
如果你需要修改你正在遍历的列表(例如,想复制选中项)你必须首先复制 list。然后利用
分片符号很方便实现它。
>>> for x in a[:]: # make a slice copy of the entire list
... if len(x) > 6: a.insert(0, x)
...
>>> a
[defenestrate, cat, window, defenestrate]
 
 
2.3 range()方法
如果你想迭代一个数字序列,内置方法 range()可以很方便实现它。它可以生成连续
的数字:
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
方法中给出的结点不是产生序列中的一部分。Range(10)就是产生为长度为 10 序列中每个元
素产生 10 个合法的索引值。该方法也可以让范围从其他数字开始,或者指定不同的增长数
(甚至是负数,有时称这为阶梯)。
range(5, 10)
5 through 9
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70
为了迭代序列的目录,你可以结合 range()len()结合起来,例如:
>>> a = [Mary, had, a, little, lamb]
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
但是,在许多情况下,运用 enumerate()方法会更加方法,具体参照 Looping Techniques.
如果你想打印一个范围,奇怪的现象将会出现。
>>> print(range(10))
range(0, 10)
在很多情况下利用 range()返回对象表现像列表,但实际上它不是列表。尽管当你迭代期望
序列时,它能够依次地返回元素,但是它没有真正生成列表,因此节省空间。
我们可以把对象成为是可迭代的,就是指它很适合作为预期得到有序元素事情的方法和结构
的对象。 我们已经知道 for 语句就是这种迭代器。方法 list()也算一个,它可以产生有序列
表。
>>> list(range(5))
[0, 1, 2, 3, 4]
稍后我们会看到更多能返回迭代对象和把迭代对象当做内容的方法。
2.4 break continue 语句和在循环中的 else 子句
与在 C 语言中一样,Break 语句将会跳出离它最近的 for 或者 while 循环。
Continue 语句也是从 C 中借鉴而来,继续开始循环的下一步。
循环语句中有时含有 else 的子句。当通过遍历结束导致循环终止(for)或者当循环条件变
false(如 while,它将会执行。但是当循环被 break 语句所终止,它不会被执行。下面通
过查询质数这个例子来学习: