python手册.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《python手册.doc》由会员分享,可在线阅读,更多相关《python手册.doc(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流python手册【精品文档】第 68 页1.深入 Python 流程控制1.1 if语句1.2for语句1.3range() 函数1.4break 和 continue 语句, 以及循环中的 else 子句1.5 pass 语句1.6 定义函数1.7 深入 Python 函数定义1.8插曲:编码风格2.数据结构2.1 关于列表list更多的内容2.2 del 语句2.3 元组和序列2.4 集合2.5 字典2.6 循环技巧2.7 深入条件控制2.8 比较序列和其它类型3.模块3.1 深入模块3.2 标准模块3.3 dir() 函数3.4 包4.输入和输出4
2、.1 格式化输出4.2 文件读写5.错误和异常5.1 语法错误5.2 异常5.3 异常处理5.4 抛出异常5.5 用户自定义异常5.6 定义清理行为5.7 预定义清理行为6. 类6.1 术语相关6.2 Python 作用域和命名空间6.3 初识类6.4 一些说明6.5 继承6.6 私有变量6.7 补充6.8 异常也是类6.9 迭代器6.10 生成器6.11 生成器表达式7. Python 标准库概览7.1 操作系统接口7.2 文件通配符7.3 命令行参数7.4 错误输出重定向和程序终止7.5 字符串正则匹配7.6 数学7.7 互联网访问7.8 日期和时间7.9 数据压缩7.10 性能度量7.1
3、1 质量控制7.12 “瑞士军刀”8. 标准库浏览 Part II8.1. 输出格式8.2. 模板8.3. 使用二进制数据记录布局8.4. 多线程8.5. 日志8.6. 弱引用8.7. 列表工具8.8. 十进制浮点数算法9. 虚拟环境和包9.1. 简介9.2. 创建虚拟环境9.3. 使用 pip 管理包4. 深入 Python 流程控制除了前面介绍的while语句,Python 还从其它语言借鉴了一些流程控制功能,并有所改变。4.1.if语句也许最有名的是if语句。例如: x = int(input(Please enter an integer: )Please enter an integ
4、er: 42 if x # Measure some strings:. words = cat, window, defenestrate for w in words:. print(w, len(w)cat 3window 6defenestrate 12在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点: for w in words: # Loop over a slice copy of the entire list. if len(w) 6:.
5、 words.insert(0, w) wordsdefenestrate, cat, window, defenestrate4.3.range()函数如果你需要一个数值序列,内置函数range()会很方便,它生成一个等差级数链表: for i in range(5):. print(i)01234range(10)生成了一个包含 10 个值的链表,它用链表的索引值填充了这个长度为 10 的列表,所生成的链表中不包括范围中的结束值。也可以让range()操作从另一个数值开始,或者可以指定一个不同的步进值(甚至是负数,有时这也被称为 “步长”):range(5, 10) 5 through 9
6、range(0, 10, 3) 0, 3, 6, 9range(-10, -100, -30) -10, -40, -70需要迭代链表索引的话,如下所示结合使 用range()和len() a = Mary, had, a, little, lamb for i in range(len(a):. print(i, ai)0 Mary1 had2 a3 little4 lamb不过,这种场合可以方便的使用enumerate(),请参见循环技巧。如果你只是打印一个序列的话会发生奇怪的事情: print(range(10)range(0, 10)在不同方面range()函数返回的对象表现为它是一个
7、列表,但事实上它并不是。当你迭代它时,它是一个能够像期望的序列返回连续项的对象;但为了节省空间,它并不真正构造列表。我们称此类对象是可迭代的,即适合作为那些期望从某些东西中获得连续项直到结束的函数或结构的一个目标(参数)。我们已经见过的for语句就是这样一个迭代器。list()函数是另外一个(迭代器),它从可迭代(对象)中创建列表: list(range(5)0, 1, 2, 3, 4稍后我们会看到更多返回可迭代(对象)和以可迭代(对象)作为参数的函数。4.4.break和continue语句, 以及循环中的else子句break语句和 C 中的类似,用于跳出最近的一级for或while循环。
8、循环可以有一个else子句;它在循环迭代完整个列表(对于for)或执行条件为 false (对于while)时执行,但循环被break中止的情况下不会执行。以下搜索素数的示例程序演示了这个子句: for n in range(2, 10):. for x in range(2, n):. if n % x = 0:. print(n, equals, x, *, n/x). break. else:. # loop fell through without finding a factor. print(n, is a prime number)2 is a prime number3 is
9、a prime number4 equals 2 * 25 is a prime number6 equals 2 * 37 is a prime number8 equals 2 * 49 equals 3 * 3(Yes, 这是正确的代码。看仔细:else语句是属于for循环之中,不是if语句。)与循环一起使用时,else子句与try语句的else子句比与if语句的具有更多的共同点:try语句的else子句在未出现异常时运行,循环的else子句在未出现break时运行。更多关于try语句和异常的内容,请参见异常处理。continue语句是从 C 中借鉴来的,它表示循环继续执行下一次迭代:
10、for num in range(2, 10):. if num % 2 = 0:. print(Found an even number, num). continue. print(Found a number, num)Found an even number 2Found a number 3Found an even number 4Found a number 5Found an even number 6Found a number 7Found an even number 8Found a number 94.5.pass语句pass语句什么也不做。它用于那些语法上必须要有什
11、么语句,但程序什么也不做的场合,例如: while True:. pass # Busy-wait for keyboard interrupt (Ctrl+C)这通常用于创建最小结构的类: class MyEmptyClass:. pass另一方面,pass可以在创建新代码时用来做函数或控制体的占位符。可以让你在更抽象的级别上思考。pass可以默默的被忽视: def initlog(*args):. pass # Remember to implement this!4.6. 定义函数我们可以创建一个用来生成指定边界的斐波那契数列的函数: def fib(n): # write Fibona
12、cci series up to n. Print a Fibonacci series up to n. a, b = 0, 1. while a # Now call the function we just defined:. fib(2000)0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597关键字def引入了一个函数定义。在其后必须跟有函数名和包括形式参数的圆括号。函数体语句从下一行开始,必须是缩进的。函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为docstring。(更多关于 docstrin
13、gs 的信息请参考文档字符串) 有些工具通过 docstrings 自动生成在线的或可打印的文档,或者让用户通过代码交互浏览;在你的代码中包含 docstrings 是一个好的实践,让它成为习惯吧。函数调用会为函数局部变量生成一个新的符号表。确切的说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,全局变量不能在函数中直接赋值(除非用global语句命名),尽管他们可以被引用。函数引用的实际参数在函数调用时引入局部符号表,因此,实参总是传值调用(这里的值总是一个对象 引用 ,而不是该对象的值)。
14、1一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建。一个函数定义会在当前符号表内引入函数名。函数名指代的值(即函数体)有一个被 Python 解释器认定为用户自定义函数的类型。 这个值可以赋予其他的名字(即变量名),然后它也可以被当做函数使用。这可以作为通用的重命名机制: fib f = fib f(100)0 1 1 2 3 5 8 13 21 34 55 89如果你使用过其他语言,你可能会反对说:fib不是一个函数,而是一个方法,因为它并不返回任何值。事实上,没有return语句的函数确实会返回一个值,虽然是一个相当令人厌烦的值(指 None )。这个值被称为None(这是
15、一个内建名称)。如果None值是唯一被书写的值,那么在写的时候通常会被解释器忽略(即不输出任何内容)。如果你确实想看到这个值的输出内容,请使用print()函数: fib(0) print(fib(0)None定义一个返回斐波那契数列数字列表的函数,而不是打印它,是很简单的: def fib2(n): # return Fibonacci series up to n. Return a list containing the Fibonacci series up to n. result = . a, b = 0, 1. while a f100 = fib2(100) # call it
16、 f100 # write the result0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89和以前一样,这个例子演示了一些新的 Python 功能: return语句从函数中返回一个值,不带表达式的return返回None。过程结束后也会返回None。 语句result.append(b)称为链表对象result的一个方法。方法是一个“属于”某个对象的函数,它被命名为obj.methodename,这里的obj是某个对象(可能是一个表达式),methodename是某个在该对象类型定义中的方法的命名。不同的类型定义不同的方法。不同类型可能有同样名字的方法,但不
17、会混淆。(当你定义自己的对象类型和方法时,可能会出现这种情况,class的定义方法详见类)。示例中演示的append()方法由链表对象定义,它向链表中加入一个新元素。在示例中它等同于result=result+a,不过效率更高。4.7. 深入 Python 函数定义在 Python 中,你也可以定义包含若干参数的函数。这里有三种可用的形式,也可以混合使用。4.7.1. 默认参数值最常用的一种形式是为一个或多个参数指定默认值。这会创建一个可以使用比定义时允许的参数更少的参数调用的函数,例如:def ask_ok(prompt, retries=4, complaint=Yes or no, pl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 手册
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内