
第一部分
第一章 Python 基础
- 数学操作符
|操作符|操作|例子|求值为|
|:—-:|:—-:|:—-:|:—-:|
|**
|指数|2**3|8|
|//
|商数取整|22//8|2| - python 中字符串以 单引号 包围 ‘strs’
- python 变量命名的规则
- 只能是一个词
- 只能包含数字字母和下划线
- 不能以数字开头
- 变量区分大小写
- 变量用小写字母开头是 Python 的惯例
- 数字的字符串值与整型值和浮点值完全不同,但整型值可以与浮点值相等
42 == '42' # false
42 == 42.0 # true
第二章 控制流
- 二元布尔操作符
and
和or
(&& ||) not
操作符 (!)- 计算优先级
算术和比较操作符 ->not
操作符 ->and
操作符 ->or
操作符 代码块
- 缩进增加时,代码块开始
- 代码块可以包含其他代码块
- 缩进减少为0,或减少为外面包围代码块的缩进,代码块就结束了
if 控制语句
1
2
3
4
5
6if name == 'Alice':
print('Hello ,Alice.')
elif name == 'Bob':
print('Get out,Bob')
else:
print('Hello ,stranger')- while 循环语句
1
2while True:
print('Hello world!') - 在 Python 中,在用于条件时,0 、0.0 、和 ‘’ 被认为是 False
- for 循环语句
1
2
3print('My name is')
for i in range(5):
print('Jimmy Five Times (' + str(i) +')') - 只能在
for
和while
语句内部使用continue
和break
range()
的开始、停止和步长参数range()
的第一个参数是循环变量开始的值,第二个参数是上限但不包含它
i in range(1,10) 相当于 1<=i<>10range()
的第三个参数是步长,就是每次循环结束后增加的值
- 导入模块
import random
导入random
模块 - 用
sys.exit()
提前结束程序
第三章 函数
None
表示没有值- 在被调用的函数内赋值的变元和变量,处于该函数的“局部作用域”。在所有函数之外赋值的变量,属于“全局作用域”。
- 如果需要在一个函数内修改全局变量,就使用
global
语句。 - 区分一个变量是处于局部作用域还是全局作用域
- 变量在全局作用域中使用就是全局变量
- 如果在一个函数中,有针对该变量的
global
语句,它就是全局变量 - 否则,如果该变量用于函数中的赋值语句,他就是全局变量
- 但是,如果该变量没有用在赋值语句中,它就是全局变量
第四章 列表
- Python 列表支持负数下标,例如 -2 表示倒数第二个下标
- 列表切片 spam[0:4] 代表列表中第1至第4个元素 即 spam[0]、spam[1]、spam[2]、spam[3]
- 使用
len()
取得列表的长度 - 使用 + 连接列表 使用 * 复制列表
- 使用
del
语句从列表中删除值 in
not in
检查元素指定元素是否在列表中,返回布尔值- 方法
- 方法和函数是一回事,只是它是调用在一个值上
- 列表的一些方法
index()
方法在列表中查找值append()
insert()
在列表中添加值remove()
方法从列表中删除值 知道要删除值的下标,用del
,知道要删除的值, 用remove
sort()
方法将列表中的值排序
- 类似列表的类型:字符串和元组
- 不能对字符串进行添加、删除或改变操作,改变一个字符串的正确方式是切片和连接
- 列表用
[]
开始结束 元组使用()
开始结束 ;列表内容可变,元组内容不可变 - Python 接受列表或元组中最后表项后面跟的逗号
- 如果需要一个永远不会改变的值的序列,就使用元组
- 使用
list()
和tuple()
函数来转换类型 - 将列表赋给一个变量时,实际上是将列表的引用赋给了该变量
- 当函数被调用时,参数的值被赋值给变元;对于列表,这意味着变元得到的是引用的拷贝,也就是说,传递列表给函数时,函数内的操作会改变列表的值
copy.copy()
复制列表或字典这样的可变值,而不只是复制引用- 如果要复制的列表中包含了列表,就要使用
copy.deepcopy()
第五章 字典和结构化数据
- 字典是许多值的集合,但不像列表的下标,字典的索引可以使用许多不同的数据类型,不只是整数;字典的索引被称为 键
- 字典输入时用
{}
开始和结束 - 字典中的表项不排序
- 字典不能切片
- keys() 返回键、 values() 返回值、 items() 返回键值对
- setdefault() 设置对应键的值
第六章 字符串操作
- 可以在字符串开始的引号之前加上 r 使它成为原始字符串,原始字符串完全忽略所有的转义字符,打印出字符串中的所有倒斜杠
upper()
lower()
isupper()
islower()
isalpha()
isalnum()
isdecimal()
isspace()
istitle()
startswith()
endswith()
join()
调用这个函数的字符串被插入到列表参数中每个字符串的中间split()
按照传入的参数将字符串分离rjust()
ljust()
center()
对齐文本strip()
rstrip()
lstrip()
删除空白字符pyperclip
模块拷贝粘贴字符串pyperclip
模块有copy()
paste()
函数,可以向计算机剪贴板发送文本,或者从它接收文本
第二部分 自动化任务
第七章 模式匹配与正则表达式
- 正则表达式 简称 regex (regular expression)
- 正则表达式记号
|符号|含义|
|:—-:|:—-:|
|\d
|一位数字字符|
|\D
|除 0 到 9 以外的任何字符|
|\s
|空格、制表符或换行符(空白字符)|
|\S
|除空白字符以外的任何字符|
|.
|通配符,匹配除换行之外的所有字符|
|[abd]
|匹配方括号内的任意字符|
|[^abd]
|匹配方括号以外的任意字符|
||
|或者,表示一个或另一个|
|()
|给正则表达式分组|
|?
|1.问号之前文本匹配零次或一次 2.启用非贪心匹配|
|*
|星号之前的文本匹配零次或多次|
|+
|加号之前的文本匹配一次或多次|
|{}
|匹配指定次数,{3}
匹配3次,{3,5}
匹配3到5次,{3,}
匹配3到无数次,{,5}
匹配0到5次|
|^
|'^hello'
要查找的文本必须以 hello 开始|
|$
|'hello$'
要查找的文本必须以 hello 结束| - Python 中所有的正则表达式的函数都在 re 模块中
- 使用正则表达式步骤
- 用
import re
导入正则模块 - 用
re.compile()
函数创建一个 regex 对象(使用原始字符串,即在字符串前添加 r ) - 向 regex 对象的
search()
传入想要查找的字符串,它返回一个 match 对象 ,一般命名为 mo (match object 猜测) - 调用 match 对象的
group()
方法,返回实际匹配到的字符串
- 用
- 添加括号将在正则表达式中创建 分组 ,例如
(\d\d\d)-(\d\d\d-\d\d\d\d)
将正则表达式分为两组,在使用group()
获得匹配结果时,就可以使用参数1
2
来返回指定分组的匹配结果,比如匹配结果是422-212-4512
,那么group(1)
返回422
,如果传入0
或者不传参数,返回匹配到的整个文本 - 字符
|
称为管道(pipe), 正则表达式r'Batman|Tina Fey
匹配Batman
或Tina Fey
- 字符
?
表明它前面的分组在这个模式中是可选的 - 贪心和非贪心匹配
在{}
后添加一个?
可以使用非贪心匹配,否则默认使用贪心匹配 findall()
方法匹配所有能匹配到的字符串,search()
匹配第一个能匹配到的字符串- 不区分大小写的匹配 :以
re.I
作为re.compile()
的第二个参数第八章 读写文件
os.path.join()
可以根据运行的系统(Windows,Linux,OS X…)将传给它的参数连接成当前操作系统风格的路径名os.getcwd()
获得当前工作路径的字符串;os.chdir()
改变当前工作目录- os读写文件模块的函数及其作用
|函数|作用|
|:—-:|:—-:|
|os.path.join()
|可以根据运行的系统(Windows,Linux,OS X…)将传给它的参数连接成当前操作系统风格的路径名|
|os.getcwd()
|获得当前工作路径的字符串|
|os.chdir()
|改变当前工作目录|
|os.makedirs()
|创建新的文件夹|
|os.path.abspath()
|返回参数的绝对路径的字符串|
|os.path.isabs()
|如果参数是绝对路径,返回 True ,否则返回 False |
|os.path.relpath(path,start)
|返回从 start 路径到 path 的相对路径的字符串,如果没有提供 start ,则以当前工作目录作为起点|
|os.path.dirname(path)
|返回一个字符串,包含 path 参数中最后一个斜杠之前的所有内容|
|os.path.basename(path)
|返回一个字符串,包含 path 参数中最后一个斜杠之后的所有内容|
|os.path.getsize(path)
|返回 path 参数中文件的字节数|
|os.listdir(path)
|返回文件名字字符串列表|
|os.path.exists(path)
|判断指定的文件或文件夹是否存在,返回 True 或 False |
|os.path.isfile(path)
|判断参数是否是一个文件,返回 True 或 False|
|os.path.isdir(path)
|判断参数是否是一个路径,返回 True 或 False| - 用 Python 读文件的步骤
- 调用
open()
返回一个 File 对象 - 调用 File 对象的
read()
或write()
方法 - 调用 File 对象的
close()
方法,关闭该文件
- 调用
- File 对象的
read()
方法可以传入r
w
a
参数,分别代表 只读 、 写 和 添加模式 - 用 shelve 模块可以读写二进制文件