Table of Contents
Python干货整理之基础篇(未完成)
作者:
参考资料:
1. 《深入Python3》
2. 《Python核心编程》
1 对象
在Python里面,所有的东西都是对象。字符串是对象,列表是对象,函数是对象,类是对象,类的实例是对象,甚至模块也是对象。
2 异常
异常在Python中无处不在,事实上在标准的Python库里面的每一个模块都是用它们,而且在很多不同情形下,Python自身也会抛出异常。如果你知道某行代码可能抛出一个异常,你应该使用try...except块来处理异常。
Python使用try...except块来处理异常,使用raise语句来抛出异常。Java和C++使用try...catch来处理异常,使用throw来抛出异常。
3 Python内置数据类型
Python有多种内置数据类型,以下是比较重要的一些:
- 布尔型:True/False
- 数值型:整数、浮点数、分数等
- 字符串型:Unicode字符序列
- 字节和字节数组
- 列表:列表是值的有序序列
- 元组:元素 是不可变的列表。一旦创建之后,用任何方法都不可以修改元素
- 集和:集和是装满无序值的包裹
- 字典:字典是键值对的无序包裹
可以使用type()函数来检测任何值或变量的类型,还可以使用isinstance()函数来判断某个值或变量是否为给定某个类型。
3.1 数值型与布尔型
3.1.1 分数
python中分数的使用:为启用 fractions 模块,必先引入 fractions 模块
>>> import fractions
>>> x = fractions.Fraction(1,3)
>>> x
Fraction(1,3)
>>> x*2
Fraction(2,3)
3.1.2 三角函数
可以在Python中进行基本的三角函数运算,需要引入 math 模块:
>>> import math
>>> math.pi
3.1415926535897931
>>> math.sin(math.pi / 2)
1.0
3.1.3 布尔上下文环境中的值
零值是False,其他非零值是True
3.2 列表
3.2.1 创建列表
>>> a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
列表创建非常轻松:使用中括号包裹一系列以逗号分割的值即可。
1. 首先,创建一个包含 5 个元素的列表。要注意的是它们保持了最初的顺序。这并不是偶然的,列表是元素的有序集合。
2. 列表可当做以零为基点的数组使用。非空列表的首个元素始 终是 a_list[0] 。
3. 该 5 元素列表的最后一个元素是 a_list[4],因为列表(索 引)总是以零为基点的。
4. 使用负索引值可从列表的尾部向前计数访问元素。任何非空列表的最后一个元素总是 a_list[‐1] 。
5. 如果负数令你混淆,可将其视为如下方式: a_list[‐n] == a_list[len(a_list) ‐ n] 。因此在此列表中, a_list[‐3] == a_list[5 ‐ 3] == a_list[2]。
3.2.2 列表切片
定义列表后,可以从其中获取任何部分作为新列表,该技术称为对列表进行切片,具体见示例:
>>> a_list
['a', 'b', 'mpilgrim', 'z', 'example']
>>> a_list[1:3]
['b', 'mpilgrim']
>>> a_list[1:‐1]
['b', 'mpilgrim', 'z']
>>> a_list[0:3]
['a', 'b', 'mpilgrim']
>>> a_list[:3]
['a', 'b', 'mpilgrim']
>>> a_list[3:]
['z', 'example']
>>> a_list[:]
['a', 'b', 'mpilgrim', 'z', 'example']
只有一点需要说明一下,切片的区间是前闭后开的。
3.2.3 向列表中新增项
共有四张方法:
>>> a_list = ['a']
>>> a_list = a_list + [2.0, 3]
>>> a_list
['a', 2.0, 3]
>>> a_list.append(True)
>>> a_list
['a', 2.0, 3, True]
>>> a_list.extend(['four', 'Ω'])
>>> a_list
['a', 2.0, 3, True, 'four', 'Ω']
>>> a_list.insert(0, 'Ω')
>>> a_list
['Ω', 'a', 2.0, 3, True, 'four', 'Ω']
说明:
1. + 运算符连接列表以创建一个新列表。列表可包含任何数量的元素;没有大小限制(除了可用内存的限制)。然而,如果 内存是个问题,那就必须知道在进行连接操作时,将在内存中 创建第二个列表。在该情况下,新列表将会立即被赋值给已有 变量 a_list 。因此,实际上该行代码包含两个步骤 — 连接然后 赋值 — 当处理大型列表时,该操作可能(暂时)消耗大量内 存。
2. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。上面的列表中包含一个字符串、一个浮点数和一 个整数。
3. append() 方法向列表的尾部添加一个新的元素。
4. extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。
5. insert() 方法将单个元素插入到列表中。第一个参数是列表中将被顶离原位的第一个元素的位置索引。列表中的元素并不一定要是唯一的;比如说:上面的最后一个例子中两个各自独立的元素,其值均 为 'Ω':,第一个元素 a_list[0] 以及最后一个元素 a_list[6] 。