第1章2输入输出 ......................................1
1.1 input()函数——输入 ......................................... 3
1.1.1 语法参考 .......................................................... 3
1.1.2 快用锦囊 .......................................................... 4
» 锦囊1 常用输入 ........................................................... 4
» 锦囊2 去除输入的非法字符 ....................................... 5
» 锦囊3 多数据输入 ....................................................... 5
» 锦囊4 强制转换输入 ................................................... 6
» 锦囊5 对输入数据进行验证 ....................................... 7
1.1.3 应用场景 ........................................................ 10
┋场景1 对输入的用户名和密码进行验证 ................ 10
┋场景2 通过输入三角形的三边长来判断是
怎样的三角形 ................................................. 10
┋场景3 通过键盘控制DOS下主程序菜单的选择..... 11
1.2 open()函数——打开文件并返回文件对象 ....12
1.2.1 语法参考 ........................................................ 12
1.2.2 文件操作的常用方法 .................................... 14
1.2.3 快用锦囊 ........................................................ 15
» 锦囊1 常用文件读取操作 ......................................... 15
» 锦囊2 使用with open语句打开文件 ......................... 17
» 锦囊3 在相对路径下创建或写入文件 ..................... 17
» 锦囊4 读取操作文件时去除空格、空行等 ............. 17
» 锦囊5 读取非UTF-8编码的文件 .............................. 18
» 锦囊6 在指定目录(绝对路径)下生成
TXT文件 ........................................................ 18
» 锦囊7 以二进制方式打开图片文件 ......................... 18
» 锦囊8 多个文件的读取操作 ..................................... 19
» 锦囊9 读取一个文件夹下所有文件 ......................... 19
» 锦囊10 将文件的写入和读取写入类 ....................... 20
1.2.4 应用场景 ........................................................ 21
┋场景1 逐行显示蚂蚁庄园的动态............................. 21
┋场景2 读取两层文件夹的文件内容......................... 21
1.3 print()函数——打印输出 ................................22
1.3.1 语法参考 ........................................................ 23
1.3.2 快用锦囊 ........................................................ 23
» 锦囊1 输出字符串 ..................................................... 23
» 锦囊2 输出数值 ......................................................... 25
» 锦囊3 输出变量 ......................................................... 26
» 锦囊4 特殊文字、符号、标志输出 ......................... 27
» 锦囊5 将多次输出内容在一行显示 ......................... 30
» 锦囊6 输出指定位数编号 ......................................... 30
» 锦囊7 进制输出 ......................................................... 31
» 锦囊8 输出彩色文字或背景 ..................................... 32
» 锦囊9 对齐输出数据 ................................................. 33
» 锦囊10 输出内容到文件 ........................................... 34
1.3.3 应用场景 ........................................................ 34
┋场景1 输出嵌套列表的数据..................................... 34
┋场景2 中英文多列对齐输出..................................... 35
┋场景3 实现程序主界面............................................. 36
┋场景4 分行输出K3国际列车的站名 ........................ 37
1.4 sys.stdin对象——实现标准输入 .....................38
1.4.1 语法参考 ........................................................ 38
1.4.2 快用锦囊 ........................................................ 39
» 锦囊1 常规输入相关内容 ......................................... 39
» 锦囊2 将输入作为整体进行处理 ............................. 39
» 锦囊3 根据两点坐标计算直线的斜率 ..................... 40
» 锦囊4 利用sys.stdin读取文件信息 ........................... 40
1.5 sys.stdout.write()方法——标准输出打印 .......41
1.5.1 语法参考 ........................................................ 41
1.5.2 快用锦囊 ........................................................ 42
» 锦囊1 常规输出内容到屏幕 ..................................... 42
» 锦囊2 在一行输出连续延时文字 ............................. 42
» 锦囊3 原位置动态输出文字或图标 ......................... 43
1.5.3 应用场景 ........................................................ 44
┋场景1 输出程序安装的进度条................................. 44
┋场景2 动态输出当前时间......................................... 45
┋场景3 输出内容到文本文件..................................... 45
目录1
CONTENTS
2
第2章格式化处理 ................................ 47
2.1 %运算符 ...........................................................49
2.1.1 语法介绍 ........................................................ 49
2.1.2 应用举例 ........................................................ 51
2.1.3 快用锦囊 ........................................................ 53
» 锦囊1 整数的格式化输出 ......................................... 53
» 锦囊2 浮点数的格式化输出 ..................................... 53
» 锦囊3 科学记数法的格式化输出 ............................. 54
» 锦囊4 字符串的格式化输出 ..................................... 54
» 锦囊5 字典的格式化输出 ......................................... 55
» 锦囊6 自动化处理数据 ............................................. 56
2.2 format()函数 .....................................................57
2.2.1 语法介绍 ........................................................ 57
2.2.2 快用锦囊 ........................................................ 59
» 锦囊1 格式转换 ......................................................... 59
» 锦囊2 生成数据编号 ................................................. 60
» 锦囊3 格式化十进制整数 ......................................... 62
» 锦囊4 格式化浮点数 ................................................. 63
» 锦囊5 格式化百分数 ................................................. 64
» 锦囊6 格式化科学记数法 ......................................... 65
» 锦囊7 格式化金额 ..................................................... 65
» 锦囊8 格式化字符 ..................................................... 66
» 锦囊9 进制转换 ......................................................... 67
» 锦囊10 格式化日期和时间 ....................................... 68
2.3 str.format()方法 ................................................71
2.3.1 语法参考 ........................................................ 71
2.3.2 索引序号与参数映射 .................................... 72
2.3.3 格式化模板标签 ............................................ 78
2.3.4 快用锦囊 ........................................................ 84
» 锦囊1 格式转换 ......................................................... 84
» 锦囊2 格式化十进制整数 ......................................... 86
» 锦囊3 格式化浮点数 ................................................. 87
» 锦囊4 格式化百分数 ................................................. 88
» 锦囊5 格式化科学记数法 ......................................... 89
» 锦囊6 格式化金额 ..................................................... 89
» 锦囊7 格式化字符 ..................................................... 90
» 锦囊8 指定转化 ......................................................... 91
» 锦囊9 格式化日期月份 ............................................. 91
» 锦囊10 数据对齐 ....................................................... 93
» 锦囊11 生成数据编号 ............................................... 95
» 锦囊12 format()的索引序号作为函数变量 ............. 97
» 锦囊13 {}内嵌{} ....................................................... 97
» 锦囊14 format变形 .................................................... 98
第3章基本语句 .................................... 99
3.1 assert语句——应用断言调试程序 ...............101
3.1.1 语法参考 ...................................................... 101
3.1.2 快用锦囊 ...................................................... 101
» 锦囊1 使用断言调试程序 ....................................... 101
» 锦囊2 在除法运算中使用断言调试程序 ............... 101
» 锦囊3 使用断言和异常处理语句处理异常 ........... 102
3.2 break语句——终止当前循环 ........................103
3.2.1 语法参考 ...................................................... 103
3.2.2 快用锦囊 ...................................................... 103
» 锦囊1 在for语句中使用break语句 ......................... 103
» 锦囊2 在while循环中使用break语句 ..................... 103
3.3 continue语句——终止本次循环进入
下一次循环.....................................................104
3.3.1 语法参考 ...................................................... 104
3.3.2 快用锦囊 ...................................................... 104
» 锦囊1 在for语句中使用continue语句 .................... 104
» 锦囊2 在while循环中使用continue语句 ................ 104
3.4 def语句——自定义函数 ...............................105
3.4.1 语法参考 ...................................................... 105
3.4.2 快用锦囊 ...................................................... 106
» 锦囊1 定义一个空函数 ........................................... 106
» 锦囊2 定义并调用一个函数 ................................... 106
» 锦囊3 定义并调用带默认值的函数 ....................... 107
» 锦囊4 定义并调用带可变参数*args的函数 .......... 108
» 锦囊5 定义并调用带可变参数**kw的函数 .......... 109
» 锦囊6 定义并调用带可变参数*args和普通参数
结合的函数 ................................................... 110
» 锦囊7 定义并调用带可变参数**kw和普通参数
结合的函数 ................................................... 110
» 锦囊8 定义并调用带返回值的函数 ........................111
3.4.3 应用场景 .......................................................111
┋场景 定义显示功能菜单的函数并调用 .................111
3.5 for语句——循环 ............................................ 112
3.5.1 语法参考 .......................................................112
3.5.2 快用锦囊 .......................................................113
» 锦囊1 进行数值循环 ............................................... 113
3
» 锦囊2 指定范围和步长的数值循环 ....................... 113
» 锦囊3 遍历字符串 ................................................... 113
» 锦囊4 遍历整个列表 ............................................... 114
» 锦囊5 通过for语句和enumerate()函数实现
带编号输出 ................................................... 114
» 锦囊6 切片遍历列表 ............................................... 115
» 锦囊7 遍历元组 ....................................................... 115
» 锦囊8 遍历集合 ....................................................... 115
» 锦囊9 遍历字典的key-value(键值对) ............... 116
» 锦囊10 for语句与for语句嵌套 ............................... 116
» 锦囊11 for语句与if语句嵌套 .................................. 116
» 锦囊12 for语句与while语句嵌套 ........................... 117
3.5.3 应用场景 .......................................................117
┋场景 遍历指定目录下的指定类型的文件 ............ 117
3.6 for…else语句——循环 .................................. 118
3.6.1 语法参考 .......................................................118
3.6.2 快用锦囊 .......................................................119
» 锦囊1 for…else语句的基本应用 ............................ 119
» 锦囊2 嵌套的for…else语句 .................................... 119
» 锦囊3 使用break语句中止循环时不执行else子句 ... 119
3.7 if语句——简单的条件判断 ..........................120
3.7.1 语法参考 ...................................................... 120
3.7.2 快用锦囊 ...................................................... 120
» 锦囊1 实现“如果…就”形式的判断 ................... 120
» 锦囊2 使用and连接条件的判断 ............................. 120
» 锦囊3 使用or连接条件的判断 ............................... 121
» 锦囊4 if语句和if…else语句嵌套 ............................ 121
» 锦囊5 if语句、if…else语句和while语句嵌套 ....... 121
» 锦囊6 if语句和for语句嵌套 .................................... 122
3.8 if…else语句——二分支条件判断 ................122
3.8.1 语法参考 ...................................................... 122
3.8.2 快用锦囊 ...................................................... 123
» 锦囊1 实现“如果…就…否则…”形式的判断 ... 123
» 锦囊2 嵌套的if…else语句 ...................................... 123
» 锦囊3 if…else语句与while语句嵌套 ..................... 124
» 锦囊4 if…else语句与for语句嵌套 ......................... 124
3.9 if…elif…else语句——多分支条件判断 .......125
3.9.1 语法参考 ...................................................... 125
3.9.2 快用锦囊 ...................................................... 126
» 锦囊1 实现“如果…否则如果…否则如果…”
形式的判断 ................................................... 126
» 锦囊2 while语句和if…elif…else语句嵌套 ............ 126
» 锦囊3 while、if和if…elif…else语句嵌套 ............. 127
3.10 lambda表达式——匿名函数 .......................129
3.10.1 语法参考 .................................................... 129
3.10.2 快用锦囊 .................................................... 129
» 锦囊1 实现带参数的匿名函数 ............................... 129
» 锦囊2 实现带默认值参数的匿名函数 ................... 130
» 锦囊3 在匿名函数后面直接传递参数 ................... 130
» 锦囊4 使用lambda表达式自定义排序规则 ........... 130
» 锦囊5 将lambda表达式与map()函数结合使用 ..... 131
» 锦囊6 将lambda表达式与fi lter()函数结合使用 ..... 131
» 锦囊7 指定tkinter模块中控件内联的
回调(callback)函数 ................................. 132
3.11 pass语句——空语句 ....................................132
3.11.1 语法参考 .................................................... 132
3.11.2 快用锦囊 .................................................... 132
» 锦囊1 在选择语句中使用pass语句 ........................ 132
» 锦囊2 在循环语句中使用pass语句 ........................ 133
» 锦囊3 在循环和选择语句中使用pass语句 ............ 133
» 锦囊4 在自定义函数中使用pass语句 .................... 133
» 锦囊5 在创建类时使用pass语句 ............................ 134
3.12 raise语句——抛出异常 ...............................134
3.12.1 语法参考 .................................................... 134
3.12.2 快用锦囊 .................................................... 134
» 锦囊1 使用raise语句抛出异常并处理 ................... 134
» 锦囊2 使用raise语句针对不同情况抛出不同异常 ...135
3.13 try…except语句——捕获异常 ....................135
3.13.1 语法参考 .................................................... 135
3.13.2 快用锦囊 .................................................... 136
» 锦囊1 一次捕获一种异常 ....................................... 136
» 锦囊2 一次捕获多种异常 ....................................... 136
» 锦囊3 使用多个except子句分别捕获多种异常 .... 137
» 锦囊4 一次捕获全部异常 ....................................... 138
3.14 try…except…else语句——捕获异常 .........138
3.14.1 语法参考 .................................................... 138
3.14.2 快用锦囊 .................................................... 139
» 锦囊 捕获异常并在没有抛出异常时给出提示 ..... 139
3.14.3 应用场景 .................................................... 139
┋场景 应用try...except语句捕获输入学生成绩时
产生的异常 ..................................................... 139
4
3.15 try…except…fi nally语句——捕获异常 .....140
3.15.1 语法参考 .................................................... 140
3.15.2 快用锦囊 .................................................... 141
» 锦囊1 在捕获异常时应用fi nally子句
输出指定的提示信息 .................................. 141
» 锦囊2 在连接数据库时应用try...except...fi nally
子句 ............................................................... 141
3.16 while语句——循环 ......................................142
3.16.1 语法参考 .................................................... 142
3.16.2 快用锦囊 .................................................... 143
» 锦囊1 使用while语句实现固定次数的循环 .......... 143
» 锦囊2 使用while语句实现不定次循环
(while语句与if语句嵌套) ......................... 143
» 锦囊3 使用while语句实现死循环 .......................... 144
» 锦囊4 使用while语句与while语句嵌套 ................. 145
» 锦囊5 使用while语句与for语句嵌套 ..................... 146
3.17 while…else语句——循环 ...........................146
3.17.1 语法参考 .................................................... 146
3.17.2 快用锦囊 .................................................... 146
» 锦囊 使用while语句实现不定次循环时输出
循环次数 ......................................................... 146
3.18 yield语句——生成器 ...................................148
3.18.1 语法参考 .................................................... 148
3.18.2 快用锦囊 .................................................... 148
» 锦囊 使用yield语句实现一个生成器并迭代它 ..... 148
3.18.3 应用场景 .................................................... 149
┋场景 使用yield语句实现一个输出古诗内容的
生成器 ............................................................. 149
3.19 条件表达式...................................................150
3.19.1 语法参考 .................................................... 150
3.19.2 快用锦囊 .................................................... 150
» 锦囊1 应用条件表达式比较大小 ........................... 150
» 锦囊2 应用条件表达式根据计算结果返回
不同的信息 ................................................... 151
» 锦囊3 应用条件表达式处理自定义函数的
可选参数 ....................................................... 151
» 锦囊4 使用多条件的条件表达式 ........................... 151
第4章字符串操作 ...............................153
4.1 capitalize()方法——字符串首字母转换为
大写格式.........................................................155
4.1.1 语法参考 ...................................................... 155
4.1.2 快用锦囊 ...................................................... 155
» 锦囊1 将字符串的首字母转换为大写格式 ........... 155
» 锦囊2 字符串全是大写字母时只保留
首字母大写 ................................................... 155
» 锦囊3 对指定位置字符串的首字母进行大写
形式的转换 ................................................... 156
4.2 casefold()方法——所有大写字符转换为
小写格式.........................................................156
4.2.1 语法参考 ...................................................... 156
4.2.2 快用锦囊 ...................................................... 156
» 锦囊1 将字符串中的大写字母转换为小写格式 ... 156
» 锦囊2 将非中英文的其他语言字符串中的
大写字符转换为小写格式 ........................... 157
» 锦囊3 判断英文短句是否为回文 ........................... 157
» 锦囊4 判断小写字母在所在字符串中出现的次数 ... 158
4.3 center()方法——字符串居中填充 ................158
4.3.1 语法参考 ...................................................... 158
4.3.2 快用锦囊 ...................................................... 159
» 锦囊1 填充指定的字符串 ....................................... 159
» 锦囊2 按照顺序显示文本并且居中对齐 ............... 159
4.4 count()方法——统计字符串中字符出现
次数.................................................................160
4.4.1 语法参考 ...................................................... 160
4.4.2 快用锦囊 ...................................................... 161
» 锦囊1 获取“的”在字符串中出现的次数 ........... 161
» 锦囊2 统计关键词在字符串中不同位置处
出现的次数 ................................................... 161
» 锦囊3 统计任意输入内容中每个字符出现的
次数 ............................................................... 161
» 锦囊4 统计字符串中的标点符号 ........................... 162
» 锦囊5 统计文本中数字出现的个数 ....................... 163
4.5 decode()方法——解码字符串 .......................163
4.5.1 语法参考 ...................................................... 163
4.5.2 快用锦囊 ...................................................... 164
» 锦囊1 对指定的字符串进行解码 ........................... 164
» 锦囊2 操作不同编码格式的文件 ........................... 164
4.5.3 应用场景 ...................................................... 165
┋场景 解码爬虫获取的字节形式代码 .................... 165
4.6 encode()方法——编码字符串 .......................166
4.6.1 语法参考 ...................................................... 166
5
4.6.2 快用锦囊 ...................................................... 166
» 锦囊1 将指定字符串转为不同的编码格式 ........... 166
» 锦囊2 Python中URL链接的编码处理 ................... 167
» 锦囊3 生成高考志愿填报时的姓名区位码 ........... 167
» 锦囊4 将字节类型的HTML代码写入文件 ........... 168
4.7 endswith()方法——是否以指定子字符串
结尾.................................................................169
4.7.1 语法参考 ...................................................... 169
4.7.2 快用锦囊 ...................................................... 169
» 锦囊1 检索网址是否以“.com”结尾 ................... 169
» 锦囊2 筛选目录下所有以“.txt”结尾的文件 ..... 169
4.8 expandtabs()方法——tab符号转换为空格 ...170
4.8.1 语法参考 ...................................................... 170
4.8.2 快用锦囊 ...................................................... 170
» 锦囊1 将Excel中复制文本中附带的tab符号
替换为空格 ................................................... 170
» 锦囊2 为文本定义不同大小的间距 ....................... 171
4.9 fi nd()方法——字符串首次出现的索引位置 ...171
4.9.1 语法参考 ...................................................... 171
4.9.2 快用锦囊 ...................................................... 172
» 锦囊1 检索邮箱地址中“@”首次出现的位置 ... 172
» 锦囊2 提取括号内的数据 ....................................... 172
» 锦囊3 从邮箱地址提取ID并将首字母大写 .......... 173
4.10 format()方法——格式化字符串 .................173
4.11 f-string——格式化字符串 ...........................174
4.11.1 语法参考 .................................................... 174
4.11.2 快用锦囊 .................................................... 174
» 锦囊1 连接指定的字符串 ....................................... 174
» 锦囊2 替换指定的内容 ........................................... 175
» 锦囊3 表达式求值与函数调用 ............................... 175
» 锦囊4 将数字格式化为二进制、八进制、
十进制和十六进制格式 ............................... 175
» 锦囊5 将字符串左对齐、右对齐和居中 ............... 176
» 锦囊6 为数字添加千位分隔符 ............................... 176
» 锦囊7 在f-string大括号内填入lambda表达式 ....... 177
» 锦囊8 将系统日期格式化为短日期 ....................... 177
» 锦囊9 将系统日期格式化为长日期 ....................... 178
» 锦囊10 根据系统日期返回星期几 ......................... 178
» 锦囊11 判断当前系统日期是今年的第几天和
第几周 ......................................................... 179
» 锦囊12 根据当前系统日期返回时间 ..................... 179
4.12 index()方法——字符串首次出现的
索引位置.......................................................180
4.12.1 语法参考 .................................................... 180
4.12.2 快用锦囊 .................................................... 180
» 锦囊1 使用index()方法检索指定字符串
出现的位置 ................................................... 180
» 锦囊2 查询字符串中指定字符的全部索引 ........... 181
4.13 isalnum()方法——判断字符串是否由
字母和数字组成...........................................181
4.13.1 语法参考 .................................................... 181
4.13.2 快用锦囊 .................................................... 182
» 锦囊1 判断用户输入的昵称是否正确 ................... 182
» 锦囊2 滤除空格后判断字符串是否由字母和
数字组成 ....................................................... 182
4.14 isalpha()方法——判断字符串是否只由
字母组成.......................................................183
4.14.1 语法参考 .................................................... 183
4.14.2 快用锦囊 .................................................... 183
» 锦囊 判断输入的用户名是否为全英文 ................. 183
4.15 isdecimal()方法——判断字符串是否
只包含十进制字符........................................184
4.15.1 语法参考 .................................................... 184
4.15.2 快用锦囊 .................................................... 184
» 锦囊 判断字符串是否只包含十进制 ..................... 184
4.16 isdigit()方法——判断字符串是否只由
数字组成.......................................................184
4.16.1 语法参考 .................................................... 184
4.16.2 快用锦囊 .................................................... 185
» 锦囊1 判断输入的邮编是否为全数字 ................... 185
» 锦囊2 在数字转换为整型前进行判断 ................... 185
4.17 isidentifi er()方法——判断字符串是否为
合法的标识符...............................................186
4.17.1 语法参考 .................................................... 186
4.17.2 快用锦囊 .................................................... 186
» 锦囊 判断字符串是否为Python标识符或者
变量名是否合法 ............................................. 186
4.18 islower()方法——判断字符串是否只由
小写字母组成................................................187
4.18.1 语法参考 .................................................... 187
4.18.2 快用锦囊 .................................................... 187
6
» 锦囊 判断字符串是否只由小写字母组成 ............. 187
4.19 isnumeric()方法——判断字符串是否
只由数字组成...............................................187
4.19.1 语法参考 .................................................... 187
4.19.2 快用锦囊 .................................................... 188
» 锦囊1 判断字符串只由数字组成 ........................... 188
» 锦囊2 简易滤除字符串列表中的数字 ................... 188
4.20 isprintable()方法——判断字符是否都为
可打印字符...................................................189
4.20.1 语法参考 .................................................... 189
4.20.2 快用锦囊 .................................................... 189
» 锦囊 判断字符串中的所有字符是否都为
可打印字符 ..................................................... 189
4.21 isspace()方法——判断字符串是否只由
空格组成.......................................................190
4.21.1 语法参考 .................................................... 190
4.21.2 快用锦囊 .................................................... 190
» 锦囊 判断字符串是否由空格组成 ......................... 190
4.22 istitle()方法——判断单词是否只有
首字母大写...................................................190
4.22.1 语法参考 .................................................... 190
4.22.2 快用锦囊 .................................................... 191
» 锦囊 判断字符串中所有的单词首字母
是否为大写 ..................................................... 191
4.23 isupper()方法——判断字符串是否只由
大写字母组成...............................................191
4.23.1 语法参考 .................................................... 191
4.23.2 快用锦囊 .................................................... 191
» 锦囊 判断字符串是否只由大写字母组成 ............. 191
4.24 join()方法——连接字符串、元组、列表
和字典...........................................................192
4.24.1 语法参考 .................................................... 192
4.24.2 快用锦囊 .................................................... 193
» 锦囊1 将NBA元组数据输出NBA
对阵数据(元组转文本) ........................... 193
» 锦囊2 以不同方式连接音乐列表(列表转文本) ... 193
» 锦囊3 连接字典(字典转文本) ........................... 194
4.24.3 应用场景 .................................................... 194
┋场景1 通过join()方法连接关键词
(列表转文本) ............................................. 194
┋场景2 创建由小写字母和数字组合的
18位随机码 ................................................... 195
4.25 len()函数——计算字符串长度或元素个数...195
4.26 ljust()方法——字符串左对齐填充 .............196
4.26.1 语法参考 .................................................... 196
4.26.2 快用锦囊 .................................................... 196
» 锦囊1 左对齐填充指定的字符串 ........................... 196
» 锦囊2 中英文混排对齐 ........................................... 196
4.27 lower()方法——将大写字母转换为
小写字母........................................................197
4.27.1 语法参考 .................................................... 197
4.27.2 快用锦囊 .................................................... 198
» 锦囊1 将字符串中的大写字母转换为
小写字母 ....................................................... 198
» 锦囊2 将大驼峰值改为小驼峰值 ........................... 198
4.28 lstrip()方法——截掉字符串左边的空格
或指定的字符...............................................198
4.28.1 语法参考 .................................................... 198
4.28.2 快用锦囊 .................................................... 199
» 锦囊 去除字符串左边无用的字符 ......................... 199
4.29 maketrans()方法——创建字符映射的
转换表...........................................................199
4.29.1 语法参考 .................................................... 199
4.29.2 快用锦囊 .................................................... 200
» 锦囊1 将指定的字符替换为数字 ........................... 200
» 锦囊2 同时删除多种不同字符 ............................... 200
» 锦囊3 删除垃圾邮件中的特殊符号 ....................... 200
» 锦囊4 删除垃圾信息中的特殊符号 ....................... 201
4.30 partition()方法——分割字符串为元组 ......201
4.30.1 语法参考 .................................................... 201
4.30.2 快用锦囊 .................................................... 201
» 锦囊 以“.”为分隔符将网址分割为元组 ............ 201
4.31 replace()方法——替换字符串 ....................202
4.31.1 语法参考 .................................................... 202
4.31.2 快用锦囊 .................................................... 202
» 锦囊1 替换字符串中指定的字符 ........................... 202
» 锦囊2 去除大段文本中的标点字符 ....................... 202
» 锦囊3 去除大段文本中的数字 ............................... 203
» 锦囊4 身份证号中的重要数字用星号代替 ........... 203
» 锦囊5 仅显示字符串中的字母与数字 ................... 204
7
» 锦囊6 删除任意位置的相同字符 ........................... 204
» 锦囊7 通过多次使用replace()方法删除多种
特殊符号 ....................................................... 205
» 锦囊8 Python爬取文本用replace()方法替换
<p>标签 ........................................................ 205
4.32 rfi nd()方法——返回字符串最后一次
出现的位置...................................................206
4.32.1 语法参考 .................................................... 206
4.32.2 快用锦囊 .................................................... 206
» 锦囊1 查找指定字符串最后一次出现的位置 ....... 206
» 锦囊2 用rfi nd()方法截取网址中倒数第二个“/”
与最后一个“/”之间的内容 ...................... 206
4.33 rindex()方法——返回字符串最后一次
出现的位置....................................................207
4.33.1 语法参考 .................................................... 207
4.33.2 快用锦囊 .................................................... 208
» 锦囊 查找子字符串最后一次出现的位置 ............. 208
4.34 rjust()方法——字符串右对齐填充 .............208
4.34.1 语法参考 .................................................... 208
4.34.2 快用锦囊 .................................................... 208
» 锦囊 填充指定的字符串右对齐 ............................. 208
4.35 rpartition()方法——从右边分隔字符串为
元组................................................................209
4.35.1 语法参考 .................................................... 209
4.35.2 快用锦囊 .................................................... 209
» 锦囊 rpartition()方法与partition()方法的区别 ....... 209
4.36 split()方法——分割字符串 .........................210
4.36.1 语法参考 .................................................... 210
4.36.2 快用锦囊 .................................................... 210
» 锦囊1 根据不同的分隔符分割字符串 ................... 210
» 锦囊2 分解网址提取有价值的信息 ....................... 211
» 锦囊3 去掉英文文章空格后计算每行长度 ........... 211
» 锦囊4 从地址信息中拆分省、市、区 ................... 212
» 锦囊5 删除字符串中的多个连续空格而保留
一个空格 ....................................................... 212
4.37 splitlines()方法——返回是否包含
换行符的列表...............................................213
4.37.1 语法参考 .................................................... 213
4.37.2 快用锦囊 .................................................... 213
» 锦囊 返回包含换行符并自动换行的列表 ............. 213
4.38 startswith()方法——是否以指定的
子字符串开头...............................................214
4.38.1 语法参考 .................................................... 214
4.38.2 快用锦囊 .................................................... 214
» 锦囊1 判断手机号是否以“130”“131”
“186”等联通手机号段开头 ....................... 214
» 锦囊2 分类数据筛选之筛选列车车次 ................... 215
4.39 strip()方法——去除字符串头尾特殊字符 ...215
4.39.1 语法参考 .................................................... 215
4.39.2 快用锦囊 .................................................... 216
» 锦囊1 去除字符串中的空格 ................................... 216
» 锦囊2 同时去除空格、制表符“\t”、
回车符“\r”和换行符“\n” ..................... 216
» 锦囊3 删除两边的特殊符号和空格 ....................... 216
» 锦囊4 删除含有指定字符的所有字符 ................... 217
4.40 swapcase()方法——大小写字母互转 .........217
4.40.1 语法参考 .................................................... 217
4.40.2 快用锦囊 .................................................... 217
» 锦囊 实现英文字母大小写格式互转的功能 ......... 217
4.41 title()方法——将单词首字母转换为
大写格式.......................................................218
4.41.1 语法参考 .................................................... 218
4.41.2 快用锦囊 .................................................... 218
» 锦囊 将字符串中每个单词的首字母转换为
大写格式 ......................................................... 218
4.41.3 应用场景 .................................................... 219
┋场景1 对大段文本进行首字母转换为大写格式 .... 219
┋场景2 将对列表中单词的首字母转换为
大写格式 ...................................................... 219
4.42 translate()方法——按照转换表转换字符 ....220
4.42.1 语法参考 .................................................... 220
4.42.2 快用锦囊 .................................................... 220
» 锦囊 去掉文本中拼音的音调 ................................. 220
4.43 upper()方法——字符串小写字母转换为
大写字母.......................................................221
4.43.1 语法参考 .................................................... 221
4.43.2 快用锦囊 .................................................... 221
» 锦囊 将字符串中的小写字母转换为大写字母 ..... 221
4.44 zfi ll()方法——在字符串前面填充0 ............222
4.44.1 语法参考 .................................................... 222
8
4.44.2 快用锦囊 .................................................... 222
» 锦囊1 数字编号固定五位前面补零 ....................... 222
» 锦囊2 循环自动编号 ............................................... 222
» 锦囊3 实现复杂的数字编号 ................................... 223
4.45 切片方法——截取字符串...........................224
4.45.1 语法参考 .................................................... 224
4.45.2 快用锦囊 .................................................... 225
» 锦囊1 应用切片方法截取不同位置的字符 ........... 225
» 锦囊2 智能组合字符串 ........................................... 225
» 锦囊3 反转字符串 ................................................... 226
4.45.3 应用场景 .................................................... 226
┋场景1 从文件路径中提取文件名........................... 226
┋场景2 银行卡号分段显示....................................... 226
┋场景3 从身份证号提取出生日期........................... 227
4.46 使用百分号“%”格式化字符串 ...............228
4.46.1 语法参考 .................................................... 228
4.46.2 快用锦囊 .................................................... 228
» 锦囊1 根据指定格式输出公司信息 ....................... 228
» 锦囊2 对齐输出字符串 ........................................... 229
» 锦囊3 使用“%s”将日期型数据转换为字符串 ... 229
4.47 直接或通过“+”和“,”等操作符
操纵字符串...................................................230
4.47.1 语法参考 .................................................... 230
4.47.2 快用锦囊 .................................................... 230
» 锦囊1 直接连接字符串 ........................................... 230
» 锦囊2 使用加号“+”批量增加前缀 .................... 230
» 锦囊3 使用逗号“,”连接字符串返回元组 .......... 231
» 锦囊4 使用星号“*”实现字符串拷贝 ................. 231
» 锦囊5 使用百分号“%”格式化字符串 ............... 231
» 锦囊6 多行字符串连接 ........................................... 232
第5章列表 ...........................................233
5.1 []——直接创建列表 ......................................235
5.1.1 语法参考 ...................................................... 235
5.1.2 快用锦囊 ...................................................... 235
» 锦囊1 通过“[]”符号定义列表 ............................ 235
» 锦囊2 通过“[]”符号定义二维列表 .................... 235
» 锦囊3 通过列表推导式生成列表 ........................... 236
5.2 append()方法——添加列表元素 ..................237
5.2.1 语法参考 ...................................................... 237
5.2.2 快用锦囊 ...................................................... 237
» 锦囊1 向列表中添加指定元素 ............................... 237
» 锦囊2 向列表中添加类型不同的元素 ................... 237
» 锦囊3 将txt文件中的信息添加至列表中 .............. 238
» 锦囊4 根据列表字符元素首字母对字符元素
分类 ............................................................... 238
» 锦囊5 通过循环遍历筛选列表中的重复元素 ....... 239
» 锦囊6 通过列表推导式的方式筛选列表中的
重复元素 ....................................................... 239
5.2.3 应用场景 ...................................................... 240
┋场景 随机生成双色球的7个号码 .......................... 240
5.3 clear()方法——删除列表中的所有元素 ......240
5.3.1 语法参考 ...................................................... 240
5.3.2 快用锦囊 ...................................................... 240
» 锦囊1 清空列表中所有元素 ................................... 240
» 锦囊2 清空二维列表中所有元素 ........................... 241
» 锦囊3 清空二维列表中的子列表 ........................... 241
» 锦囊4 清空二维列表中与目标列表相同的
子列表 ........................................................... 241
5.4 copy()方法——复制列表中所有元素 ..........242
5.4.1 语法参考 ...................................................... 242
5.4.2 快用锦囊 ...................................................... 242
» 锦囊1 将原列表中的所有元素复制到新列表中 ... 242
» 锦囊2 将混合类型的列表元素复制到新的
列表当中 ....................................................... 242
5.5 count()方法——获取指定元素出现的次数 ...244
5.5.1 语法参考 ...................................................... 244
5.5.2 快用锦囊 ...................................................... 244
» 锦囊1 判断列表中指定元素出现的次数 ............... 244
» 锦囊2 判断混合类型列表中指定元素出现的
次数 ............................................................... 244
» 锦囊3 判断二维列表中指定元素出现的次数 ....... 245
» 锦囊4 获取列表中不同类型元素出现的次数 ....... 245
5.6 del保留字——删除列表 ................................245
5.6.1 语法参考 ...................................................... 245
5.6.2 快用锦囊 ...................................................... 246
» 锦囊1 删除指定名称的列表 ................................... 246
» 锦囊2 删除列表中指定索引元素 ........................... 246
» 锦囊3 删除用户输入的列表元素 ........................... 247
5.7 enumerate()函数——遍历列表 .....................247
9
5.8 extend()方法——将序列的全部元素
添加到另一列表中.........................................248
5.8.1 语法参考 ...................................................... 248
5.8.2 快用锦囊 ...................................................... 248
» 锦囊1 将序列中的全部元素添加至列表 ............... 248
» 锦囊2 向列表中添加混合类型的序列 ................... 249
» 锦囊3 将二维列表转换为一维列表 ....................... 249
» 锦囊4 将同时包含一维和二维的列表转换为
一维列表 ....................................................... 250
5.9 index()方法——获取指定元素首次出现的
索引.................................................................250
5.9.1 语法参考 ...................................................... 250
5.9.2 快用锦囊 ...................................................... 250
» 锦囊1 判断指定元素首次出现的位置 ................... 250
» 锦囊2 判断混合型列表中指定元素出现的位置 ... 251
» 锦囊3 使用del保留字删除指定索引的元素 .......... 251
5.10 insert()方法——向列表的指定位置
插入元素.......................................................252
5.10.1 语法参考 .................................................... 252
5.10.2 快用锦囊 .................................................... 252
» 锦囊1 向列表的指定位置添加元素 ....................... 252
» 锦囊2 向原列表中添加类型不同的元素 ............... 252
» 锦囊3 append()方法与insert()方法的区别 ............. 253
5.11 list()函数——创建列表 ...............................254
5.12 not in——查找列表元素是否不存在 .........254
5.12.1 语法参考 .................................................... 254
5.12.2 快用锦囊 .................................................... 255
» 锦囊1 查看列表中是否不包含指定数值 ............... 255
» 锦囊2 查看二维列表中是否不包含指定元素 ....... 255
5.13 pop()方法——删除列表中的元素 ..............255
5.13.1 语法参考 .................................................... 255
5.13.2 快用锦囊 .................................................... 256
» 锦囊1 删除列表中最后一个元素 ........................... 256
» 锦囊2 删除列表中指定元素 ................................... 256
» 锦囊3 以负数作为索引删除列表元素 ................... 256
» 锦囊4 通过列表保存随机删除的元素 ................... 257
5.14 print()函数——输出列表内容 ....................258
5.15 remove()方法——删除列表中的指定
元素................................................................258
5.15.1 语法参考 .................................................... 258
5.15.2 快用锦囊 .................................................... 259
» 锦囊1 删除列表中的指定元素 ............................... 259
» 锦囊2 删除数值列表中的指定数值 ....................... 259
» 锦囊3 通过for循环删除列表中指定类型的元素 .... 259
» 锦囊4 通过for循环删除列表中指定索引范围的
元素 ............................................................... 260
» 锦囊5 del保留字、pop()方法、remove()方法的
区别 ............................................................... 260
5.16 reverse()方法——反转列表中的所有元素 ....261
5.16.1 语法参考 .................................................... 261
5.16.2 快用锦囊 .................................................... 262
» 锦囊1 字符串列表中的所有元素反转 ................... 262
» 锦囊2 合类型的列表中所有元素反转 ................... 262
5.17 sort()方法——排序列表元素 ......................262
5.17.1 语法参考 .................................................... 262
5.17.2 快用锦囊 .................................................... 263
» 锦囊1 数值列表的排序 ........................................... 263
» 锦囊2 字符串列表的排序 ....................................... 263
» 锦囊3 将列表按自定义规则排序 ........................... 264
» 锦囊4 按拼音顺序对列表按中文排序 ................... 264
5.18 sorted()函数——排序列表元素 ..................265
5.19 sum()函数——统计数值列表的元素和 .....265
5.20 保留字in——查找列表元素是否存在 .......266
5.20.1 语法参考 .................................................... 266
5.20.2 快用锦囊 .................................................... 266
» 锦囊1 查看列表中是否含有指定字符 ................... 266
» 锦囊2 获取列表中是否存在输入的气体元素 ....... 266
第6章元组 ...........................................267
6.1 ()——直接创建元组 ......................................269
6.1.1 语法参考 ...................................................... 269
6.1.2 快用锦囊 ...................................................... 269
» 锦囊1 通过“()”符号定义元组 ............................ 269
» 锦囊2 不用括号定义元组 ....................................... 269
» 锦囊3 定义单个元素的元组 ................................... 270
» 锦囊4 通过元组推导式生成元组 ........................... 271
6.2 del——删除元组 ............................................271
6.3 in——查找元组元素是否存在 .....................272
10
6.4 len()函数——计算元组元素个数 .................272
6.5 max()函数——返回元组中元素最大值 .......273
6.6 min()函数——返回元组中元素最小值 ........273
6.7 not in——查找元组元素是否不存在 ...........274
6.8 print()函数——输出元组元素 ......................274
6.9 tuple()函数——将序列转换为元组 ..............275
第7章字典 ...........................................277
7.1 {}——直接创建字典 .....................................279
7.1.1 语法参考 ...................................................... 279
7.1.2 快用锦囊 ...................................................... 279
» 锦囊1 通过“{}”符号定义字典 ........................... 279
» 锦囊2 通过字典推导式生成字典 ........................... 280
7.2 clear()方法——删除字典中的全部元素 ......280
7.2.1 语法参考 ...................................................... 280
7.2.2 快用锦囊 ...................................................... 281
» 锦囊1 删除字典中的全部元素 ............................... 281
» 锦囊2 清空通过推导式所创建的字典 ................... 281
7.3 copy()方法——浅复制一个字典 ..................281
7.3.1 语法参考 ...................................................... 281
7.3.2 快用锦囊 ...................................................... 282
» 锦囊1 浅复制一个具有相同键值对的新字典 ....... 282
» 锦囊2 浅复制一个更新后的字典 ........................... 282
7.4 del保留字——删除字典或字典中指定的键 ...283
7.4.1 语法参考 ...................................................... 283
7.4.2 快用锦囊 ...................................................... 283
» 锦囊 先删除字典中指定的键再删除整个字典 ..... 283
7.5 dict()函数——创建字典 ................................284
7.6 fromkeys()方法——创建一个新字典 ...........285
7.6.1 语法参考 ...................................................... 285
7.6.2 快用锦囊 ...................................................... 285
» 锦囊1 创建字典中所有值为None的字典 .............. 285
» 锦囊2 创建一个所有值为相同值的字典 ............... 285
» 锦囊3 循环创建多个同值字典 ............................... 286
7.7 get()方法——获取字典中指定键的值 .........286
7.7.1 语法参考 ...................................................... 286
7.7.2 快用锦囊 ...................................................... 286
» 锦囊1 获取字典中键对应的值 ............................... 286
» 锦囊2 获取字典中不存在的键所对应的值 ........... 287
» 锦囊3 通过for循环获取列表中指定键对应的值 .... 287
» 锦囊4 获取字典中最小键所对应的值 ................... 287
» 锦囊5 通过for循环获取字典中指定类型键
所对应的值 ................................................... 288
» 锦囊6 根据字符型键第一个元素获取对应的值 ... 288
7.7.3 应用场景 ...................................................... 288
┋场景 根据星座测试性格特点 ................................. 288
7.8 items()方法——获取字典的所有
“键值对”.......................................................289
7.8.1 语法参考 ...................................................... 289
7.8.2 快用锦囊 ...................................................... 290
» 锦囊1 获取字典中所有“键值对” ........................ 290
» 锦囊2 循环遍历字典中的全部“键值对” ........... 290
» 锦囊3 通过for循环分别遍历字典中的键和值 ...... 290
» 锦囊4 根据给出的值获取对应的键 ....................... 291
7.9 key in dict方法——判断指定键是否
存在于字典中..................................................291
7.10 keys()方法——获取字典的所有键 .............292
7.10.1 语法参考 .................................................... 292
7.10.2 快用锦囊 .................................................... 292
» 锦囊1 获取字典中的所有键 ................................... 292
» 锦囊2 循环遍历字典中的键 ................................... 293
» 锦囊3 通过keys()方法获取字典中所有的值 ......... 293
» 锦囊4 获取txt文件内字典中所有键 ...................... 293
7.11 pop()方法——根据键删除键值对并返回
被删除的值...................................................294
7.11.1 语法参考 .................................................... 294
7.11.2 快用锦囊 .................................................... 294
» 锦囊1 删除字典中指定键所对应的键值对,
并返回被删除的值 ....................................... 294
» 锦囊2 删除字典中指定键所对应的键值对,
并设置default值 ............................................ 294
» 锦囊3 使用pop()方法删除字典中不存在的键 ...... 295
7.12 popitem()方法——返回并删除字典中的
键值对...........................................................295
7.12.1 语法参考 .................................................... 295
7.12.2 快用锦囊 .................................................... 296
» 锦囊1 返回并删除字典中的一个键值对 ............... 296
» 锦囊2 删除空字典中的键值对 ............................... 296
11
» 锦囊3 分别获取删除字典中的键与值 ................... 296
7.13 setdefault()方法——获取字典中指定
键的值...........................................................297
7.13.1 语法参考 .................................................... 297
7.13.2 快用锦囊 .................................................... 297
» 锦囊1 获取空字典的值 ........................................... 297
» 锦囊2 为空字典添加数据 ....................................... 298
7.14 update()方法——更新字典 .........................298
7.14.1 语法参考 .................................................... 298
7.14.2 快用锦囊 .................................................... 298
» 锦囊1 将一个字典的键值对更新到(添加到)
另一个字典中 ............................................... 298
» 锦囊2 以元组为参数更新字典 ............................... 299
» 锦囊3 更新字典中相同的键 ................................... 299
» 锦囊4 更新原字典中不存在的键值对 ................... 299
7.15 values()方法——获取字典的所有值 ..........300
7.15.1 语法参考 .................................................... 300
7.15.2 快用锦囊 .................................................... 300
» 锦囊1 获取字典中所有值 ....................................... 300
» 锦囊2 循环遍历获取字典中的值 ........................... 300
» 锦囊3 通过lambda表达式获取字典中指定
条件的值 ....................................................... 301
第8章集合 ...........................................303
8.1 & ——交集 ....................................................305
8.1.1 语法参考 ...................................................... 305
8.1.2 快用锦囊 ...................................................... 305
» 锦囊1 计算两个集合的交集 ................................... 305
» 锦囊2 计算多个集合的交集 ................................... 305
» 锦囊3 在集合中“&”不等于“and” .................. 306
8.2 ^ ——对称差集 ..............................................306
8.2.1 语法参考 ...................................................... 306
8.2.2 快用锦囊 ...................................................... 307
» 锦囊 计算集合的对称差集 ..................................... 307
8.3 {} ——直接创建集合 ....................................307
8.3.1 语法参考 ...................................................... 307
8.3.2 快用锦囊 ...................................................... 307
» 锦囊1 直接创建集合并输出 ................................... 307
» 锦囊2 循环遍历集合中的元素 ............................... 308
» 锦囊3 将列表、字典等可变对象作为集合元素 ..... 308
» 锦囊4 通过集合推导式生成集合 ........................... 309
8.4 | ——并集 .......................................................310
8.4.1 语法参考 ...................................................... 310
8.4.2 快用锦囊 ...................................................... 310
» 锦囊1 计算集合的并集 ........................................... 310
» 锦囊2 在集合中“|”不等于“or” ....................... 311
8.5 - ——差集 ...................................................... 311
8.5.1 语法参考 .......................................................311
8.5.2 快用锦囊 .......................................................311
» 锦囊 计算集合的差集 ............................................. 311
8.5.3 应用场景 ...................................................... 312
┋场景 对选课集合进行交集、并集和差集运算 ..... 312
8.6 <= ——判断当前集合是否为另一个
集合的子集......................................................312
8.6.1 语法参考 ...................................................... 312
8.6.2 快用锦囊 ...................................................... 313
» 锦囊1 判断一个集合是否为另一个集合的子集 ... 313
» 锦囊2 判断当前集合是否为另一个集合的
真子集 ........................................................... 313
8.7 == ——判断两个集合是否相等 ...................314
8.7.1 语法参考 ...................................................... 314
8.7.2 快用锦囊 ...................................................... 314
» 锦囊 判断两个集合是否相等 ................................. 314
8.8 >= ——判断当前集合是否为另一个
集合的超集......................................................315
8.8.1 语法参考 ...................................................... 315
8.8.2 快用锦囊 ...................................................... 315
» 锦囊1 判断一个集合是否为另一个集合的超集 ... 315
» 锦囊2 判断当前集合是否为另一个集合的
真超集 ........................................................... 316
8.9 add()方法——向集合中添加元素 ................317
8.9.1 语法参考 ...................................................... 317
8.9.2 快用锦囊 ...................................................... 317
» 锦囊1 将指定元素添加到集合当中 ....................... 317
» 锦囊2 向集合中添加已经存在的元素 ................... 317
» 锦囊3 通过集合提取txt文件中不重复的用户名 .... 318
8.10 clear()方法——删除集合中的全部元素 ....319
8.10.1 语法参考 .................................................... 319
8.10.2 快用锦囊 .................................................... 319
» 锦囊 删除集合中的全部元素 ................................. 319
12
8.11 copy()方法——复制一个集合 ....................319
8.11.1 语法参考 .................................................... 319
8.11.2 快用锦囊 .................................................... 320
» 锦囊1 复制一个集合 ............................................... 320
» 锦囊2 直接赋值和copy()方法的区别 .................... 320
8.12 difference()方法——返回集合的差集 ........321
8.12.1 语法参考 .................................................... 321
8.12.2 快用锦囊 .................................................... 321
» 锦囊1 返回集合的差集 ........................................... 321
» 锦囊2 通过集合间接获取列表的差集 ................... 322
8.13 difference_update()方法——更新为
集合的差集...................................................322
8.13.1 语法参考 .................................................... 322
8.13.2 快用锦囊 .................................................... 322
» 锦囊1 将原集合更新为两个或多个集合的差集 ... 322
» 锦囊2 difference()方法和difference_update()
方法辨析 ....................................................... 323
8.14 discard()方法——删除集合中的指定元素 ....324
8.14.1 语法参考 .................................................... 324
8.14.2 快用锦囊 .................................................... 324
» 锦囊1 删除集合中的指定元素 ............................... 324
» 锦囊2 discard()方法与remove()方法的区别 .......... 325
8.15 frozenset()函数——将可迭代对象转换为
不可变集合...................................................325
8.15.1 语法参考 .................................................... 325
8.15.2 快用锦囊 .................................................... 325
» 锦囊1 创建一个新的不可变集合 ........................... 325
» 锦囊2 对比两个不可变集合对象的创建顺序 ....... 326
8.16 intersection()方法——返回集合的交集 .....326
8.16.1 语法参考 .................................................... 326
8.16.2 快用锦囊 .................................................... 327
» 锦囊 返回两个或多个集合交集中都包含的
元素 ................................................................. 327
8.17 intersection_update()方法——更新为交集 ...327
8.17.1 语法参考 .................................................... 327
8.17.2 快用锦囊 .................................................... 327
» 锦囊1 将指定集合更新为两个或多个集合的
交集 ............................................................... 327
» 锦囊2 intersection()方法和intersection_update()
方法辨析 ....................................................... 328
8.18 isdisjoint()方法——判断两个集合是否
包含相同的元素...........................................329
8.18.1 语法参考 .................................................... 329
8.18.2 快用锦囊 .................................................... 329
» 锦囊 判断两个集合是否包含相同的元素 ............. 329
8.19 issubset()方法——判断集合是否为
另一个集合的子集.......................................330
8.19.1 语法参考 .................................................... 330
8.19.2 快用锦囊 .................................................... 330
» 锦囊 判断一个集合是否为另一个集合的子集 ..... 330
8.20 issuperset()方法——判断集合是否为
另一个集合的超集.......................................331
8.20.1 语法参考 .................................................... 331
8.20.2 快用锦囊 .................................................... 331
» 锦囊 判断一个集合是否为另一个集合的超集 ..... 331
8.21 pop()方法——随机删除集合的一个元素
并返回该元素...............................................332
8.21.1 语法参考 .................................................... 332
8.21.2 快用锦囊 .................................................... 332
» 锦囊 随机删除集合中的一个元素 ......................... 332
8.22 remove()方法——删除集合中的指定元素 ...333
8.22.1 语法参考 .................................................... 333
8.22.2 快用锦囊 .................................................... 333
» 锦囊1 从集合中删除指定元素 ............................... 333
» 锦囊2 通过for循环删除集合中不是中文的
字符元素 ....................................................... 334
8.23 set()函数——将可迭代对象转换为
可变集合.......................................................334
8.24 symmetric_difference()方法——返回
集合的对称差集...........................................335
8.24.1 语法参考 .................................................... 335
8.24.2 快用锦囊 .................................................... 335
» 锦囊 返回两个集合中不重复的元素集合 ............. 335
8.25 symmetric_difference_update()方法——更新
为对称差集 ....................................................335
8.25.1 语法参考 .................................................... 335
8.25.2 快用锦囊 .................................................... 336
» 锦囊1 将原集合更新为两个集合的对称差集 ....... 336
» 锦囊2 与symmetric_difference()方法的区别 ......... 336
13
8.26 union()方法——返回集合的并集 ...............337
8.26.1 语法参考 .................................................... 337
8.26.2 快用锦囊 .................................................... 338
» 锦囊 返回多个集合的并集元素 ............................. 338
8.27 update()方法——更新原集合为两个
集合的并集...................................................338
8.27.1 语法参考 .................................................... 338
8.27.2 快用锦囊 .................................................... 339
» 锦囊1 更新当前集合 ............................................... 339
» 锦囊2 将多个可迭代对象同时更新到集合中 ....... 339
» 锦囊3 update()方法与union()方法的区别 .............. 339
第9章数学运算与数字处理 ...............341
9.1 abs()函数——获取数字的绝对值 .................343
9.1.1 语法参考 ...................................................... 343
9.1.2 快用锦囊 ...................................................... 343
» 锦囊1 获取整数与浮点数的绝对值 ....................... 343
» 锦囊2 获取复数的模 ............................................... 343
» 锦囊3 获取可迭代对象中数字的绝对值 ............... 344
9.2 divmod()函数——获取两个数值的商和余数 ...344
9.2.1 语法参考 ...................................................... 344
9.2.2 快用锦囊 ...................................................... 344
» 锦囊1 获取商和余数的元组 .................................. 344
» 锦囊2 循环获取递减被除数的商和余数 ............... 345
9.2.3 应用场景 ...................................................... 345
┋场景 诗句分段计算 ................................................. 345
9.3 len()函数——获取对象的长度或项目个数 ...346
9.3.1 语法参考 ...................................................... 346
9.3.2 快用锦囊 ...................................................... 346
» 锦囊1 获取字符串长度 ........................................... 346
» 锦囊2 获取列表长度 ............................................... 347
» 锦囊3 获取元组长度 ............................................... 348
» 锦囊4 获取字典长度 ............................................... 349
» 锦囊5 读取txt文件并计算每行的长度 .................. 350
» 锦囊6 计算一个字符串中包含“aeiou”
这5个字符的数量 ........................................ 351
» 锦囊7 判断列表中的元素是否有重复的元素 ....... 351
» 锦囊8 计算字符串的字节长度 ............................... 352
9.3.3 应用场景 ...................................................... 352
┋场景1 判断文件内容是否为空............................... 352
┋场景2 根据指定字符长度添加符号或字符........... 353
┋场景3 统计手机每天的消费账单数....................... 354
9.4 max()函数——获取可迭代对象(或元素)的
最大值.............................................................354
9.4.1 语法参考 ...................................................... 354
9.4.2 快用锦囊 ...................................................... 355
» 锦囊1 在字符、数字、标点及汉字中取最大值 ... 355
» 锦囊2 在列表中使用max()函数 ............................. 357
» 锦囊3 在元组中使用max()函数 ............................. 359
» 锦囊4 在字典中使用max()函数 ............................. 360
9.4.3 应用场景 ...................................................... 361
┋场景1 歌咏比赛选手分数计算程序....................... 361
┋场景2 根据输入参数输出该参数最大值的
产品信息 ....................................................... 362
┋场景3 获得当前内存的使用最大值....................... 363
9.5 min()函数——获取可迭代对象(或元素)的
最小值.............................................................364
9.5.1 语法参考 ...................................................... 364
9.5.2 快用锦囊 ...................................................... 364
» 锦囊1 取字符、数值、标点及汉字中的最小值 ... 364
» 锦囊2 在列表中使用min()函数 .............................. 365
» 锦囊3 在元组中使用min()函数 .............................. 366
» 锦囊4 在字典中使用min()函数 .............................. 367
9.5.3. 应用场景 ..................................................... 368
┋场景1 获取最新上映的电影名称........................... 368
┋场景2 获取汽车碰撞测试中分数最低项............... 368
┋场景3 获取二手房指定户型且总价最低的信息 .... 369
9.6 pow()函数——获取两个数值的幂运算值 ...370
9.6.1 语法参考 ...................................................... 370
9.6.2 快用锦囊 ...................................................... 370
» 锦囊1 获取两个数值的幂运算值 ........................... 370
» 锦囊2 获取幂运算值与指定整数的模值 ............... 371
9.7 round()函数——对数值进行四舍五入求值 ....371
9.7.1 语法参考 ...................................................... 371
9.7.2 快用锦囊 ...................................................... 372
» 锦囊1 小数点右侧四舍五入求值 ........................... 372
» 锦囊2 小数点左侧四舍五入求值 ........................... 372
» 锦囊3 整数四舍五入求值 ....................................... 373
9.8 sum()函数——对可迭代对象进行求和计算 ...373
9.8.1 语法参考 ...................................................... 373
9.8.2 快用锦囊 ...................................................... 374
14
» 锦囊1 列表元素求和 ............................................... 374
» 锦囊2 元组的元素求和 ........................................... 374
» 锦囊3 range对象与空迭代对象的求和 .................. 375
» 锦囊4 集合元素求和 ............................................... 376
9.8.3 应用场景 ...................................................... 377
┋场景1 获取学生运动项目决赛积分最高的班级 .... 377
┋场景2 获取社区对居民统计的遗漏人员 .............. 377
┋场景3 商品销售额的查询系统 .............................. 378
第10章数据类型转换 ...........................381
10.1 ascii()函数——返回对象的字符串形式 .....383
10.1.1 语法参考 .................................................... 383
10.1.2 快用锦囊 .................................................... 383
» 锦囊 使用ascii()函数返回对象的字符串形式 ....... 383
10.2 bin()函数——将整数转换为二进制
字符串形式...................................................384
10.2.1 语法参考 .................................................... 384
10.2.2 快用锦囊 .................................................... 384
» 锦囊1 将整数转换为二进制字符串形式 ............... 384
» 锦囊2 十进制数转换为二进制数 ........................... 384
» 锦囊3 将十进制数转换为二进制字符串
并去掉前缀 ................................................... 385
10.3 bool()函数——转换为bool类型 ..................385
10.3.1 语法参考 .................................................... 385
10.3.2 快用锦囊 .................................................... 386
» 锦囊1 将数字转换为bool类型 ................................ 386
» 锦囊2 将字符串转换为bool类型 ............................ 386
» 锦囊3 将列表、字典和元组转换为bool类型 ........ 386
» 锦囊4 使用bool()函数验证数据 ............................. 387
10.4 bytearray()函数——创建可修改的
字节数组.......................................................388
10.4.1 语法参考 .................................................... 388
10.4.2 快用锦囊 .................................................... 388
» 锦囊1 根据传入的参数创建一个字节数组 ........... 388
» 锦囊2 根据指定的字符串创建相应的字节数据
并写入文本文件 ........................................... 389
» 锦囊3 验证bytearray()函数和bytes()函数
返回的字节数组是否可以修改 ................... 390
10.5 bytes()函数——创建不可修改的字节数组 ...390
10.5.1 语法参考 .................................................... 390
10.5.2 快用锦囊 .................................................... 391
» 锦囊 创建一个不可修改的字节数组 ..................... 391
10.6 chr()函数——将数值类型转换为
字符串类型...................................................391
10.6.1 语法参考 .................................................... 391
10.6.2 快用锦囊 .................................................... 392
» 锦囊1 使用chr()函数获取十进制数和
十六进制数对应的unicode字符 .................. 392
» 锦囊2 输出十进制数对应的unicode字符 .............. 392
» 锦囊3 使用chr()函数输出特殊符号 ....................... 392
» 锦囊4 输出小写英文字母列表 ............................... 393
» 锦囊5 自动生成单个随机字母(a~z) ................. 393
10.7 complex()函数——创建复数形式 ..............393
10.7.1 语法参考 .................................................... 393
10.7.2 快用锦囊 .................................................... 394
» 锦囊1 将指定的参数转换为复数形式 ................... 394
» 锦囊2 复数的数学运算 ........................................... 394
10.8 dict()函数——创建字典对象 ......................395
10.9 eval()函数——执行一个字符串表达式
并返回执行结果...........................................395
10.10 fl oat()函数——将整数和字符串转换为
浮点数.........................................................396
10.10.1 语法参考 .................................................. 396
10.10.2 快用锦囊 .................................................. 396
» 锦囊1 使用fl oat()函数将数字转换为浮点型 ......... 396
» 锦囊2 使用fl oat()函数将字符串转换为浮点型 ..... 397
10.11 hex()函数——将整数转换为十六进制
字符串形式..................................................397
10.11.1 语法参考 .................................................. 397
10.11.2 快用锦囊 .................................................. 397
» 锦囊1 将整数转换为十六进制字符串形式 ........... 397
» 锦囊2 bytes与hex字符串之间的相互转换 ............ 398
10.11.3 应用场景 .................................................. 398
┋场景 将RGB颜色值转换为十六进制颜色值 ........ 398
10.12 int()函数——将浮点数转换为整数 ..........399
10.12.1 语法参考 .................................................. 399
10.12.2 快用锦囊 .................................................. 399
» 锦囊1 将数字或字符串转换为整数 ....................... 399
» 锦囊2 将input()函数输入的数字转换为整数 ........ 400
15
» 锦囊3 解决使用input()函数输入小数转换为
整数出错的问题 ........................................... 400
10.13 list()函数——将序列转换成列表 .............401
10.14 oct()函数——将整数转换为八进制
字符串形式.................................................401
10.14.1 语法参考 .................................................. 401
10.14.2 快用锦囊 .................................................. 402
» 锦囊1 将整数转换为八进制字符串形式 ............... 402
» 锦囊2 输出十进制数字的八进制字符串形式 ....... 402
» 锦囊3 实现键盘字符八进制对照表 ....................... 402
10.15 ord()函数——将字符转换为对应的整数 ....403
10.15.1 语法参考 .................................................. 403
10.15.2 快用锦囊 .................................................. 403
» 锦囊1 将字符转换为相应的整数 ........................... 403
» 锦囊2 判断用户输入的字符是否为数字 ............... 404
» 锦囊3 大小写字母转换 ........................................... 405
10.16 repr()函数——将对象转换成解释器
读取的字符串形式.....................................405
10.17 set()函数——将可迭代对象转换为
可变集合.....................................................406
10.18 str()函数——将各种类型转换为
字符串类型.................................................406
10.18.1 语法参考 .................................................. 406
10.18.2 快用锦囊 .................................................. 407
» 锦囊1 将数值型数据转换为字符串形式 ............... 407
» 锦囊2 将列表转换为字符串形式 ........................... 408
» 锦囊3 将元组转换为字符串并去掉特殊符号 ....... 408
» 锦囊4 将字典转换为字符串形式 ........................... 408
» 锦囊5 将集合转换为字符串形式 ........................... 409
» 锦囊6 将字节类型(bytes对象)转换为
字符串形式 ................................................... 409
» 锦囊7 将字符串与数值型数据混合输出 ............... 409
10.19 tuple()函数——将序列转换成元组 ..........410
第11章迭代 ........................................... 411
11.1 all()函数——判断可迭代对象是否包括
假值...............................................................413
11.1.1 语法参考 .................................................... 413
11.1.2 快用锦囊 .................................................... 413
» 锦囊1 使用all()函数判断可迭代对象是否
包括空、0、False的元素............................. 413
» 锦囊2 判断列表中是否包括0 ................................. 414
11.2 any()函数——判断可迭代对象是否全为
假值................................................................414
11.2.1 语法参考 .................................................... 414
11.2.2 快用锦囊 .................................................... 415
» 锦囊 使用any()函数判断可迭代对象是否
全为假值 ......................................................... 415
11.3 fi lter()函数——通过指定条件过滤序列 ....415
11.3.1 语法参考 .................................................... 415
11.3.2 快用锦囊 .................................................... 416
» 锦囊1 fi lter()函数的基本应用 ............................... 416
» 锦囊2 筛选指定范围的数据 ................................... 416
» 锦囊3 筛选类型不是字符的元素 ........................... 417
» 锦囊4 取出字符串中的数字并转换为整型 ........... 417
» 锦囊5 从脏数据中取出有效信息 ........................... 417
11.4 iter()函数——用于生成迭代器 ...................418
11.4.1 语法参考 .................................................... 418
11.4.2 快用锦囊 .................................................... 418
» 锦囊1 将序列转换为迭代器对象 ........................... 418
» 锦囊2 实现累加计数 ............................................... 419
11.5 map()函数——通过函数实现对
可迭代对象的操作 .............................................420
11.5.1 语法参考 .................................................... 420
11.5.2 快用锦囊 .................................................... 420
» 锦囊1 将列表中的元素转换为unicode字符 .......... 420
» 锦囊2 规范英文的大小写格式 ............................... 420
» 锦囊3 对列表中的元素进行平方计算 ................... 421
» 锦囊4 传入多个可迭代对象 ................................... 421
11.6 next()函数——返回迭代器的下一个元素 ...422
11.6.1 语法参考 .................................................... 422
11.6.2 快用锦囊 .................................................... 422
» 锦囊1 使用next()函数返回迭代器中的
下一个元素 ................................................... 422
» 锦囊2 循环推进迭代器元素 ................................... 423
» 锦囊3 循环推进迭代器元素并设置默认值 ........... 423
11.7 range()函数——生成器函数 .......................424
11.7.1 语法参考 .................................................... 424
16
11.7.2 快用锦囊 .................................................... 424
» 锦囊1 根据提供的参数生成一个range类型 .......... 424
» 锦囊2 使用list()函数将range类型转换为列表 ...... 425
» 锦囊3 使用range()函数实现数字的累加 ............... 425
» 锦囊4 遍历字符串 ................................................... 425
» 锦囊5 生成指定步长的数值序列 ........................... 426
11.8 reversed()函数——反转序列对象 ..............426
11.8.1 语法参考 .................................................... 426
11.8.2 快用锦囊 .................................................... 426
» 锦囊1 反转迭代器对象转换为列表后输出 ........... 426
» 锦囊2 反转数字列表并排序 ................................... 427
» 锦囊3 反转英文句子 ............................................... 427
11.9 sorted()函数——对可迭代对象进行排序 ....428
11.9.1 语法参考 .................................................... 428
11.9.2 快用锦囊 .................................................... 428
» 锦囊1 对数字列表进行排序 ................................... 428
» 锦囊2 对字符列表进行排序 ................................... 428
» 锦囊3 按照列表中嵌套元组的指定元素
进行排序 ....................................................... 429
11.10 zip()函数——将可迭代对象打包成元组 ...430
11.10.1 语法参考 .................................................. 430
11.10.2 快用锦囊 .................................................. 430
» 锦囊1 用zip()函数将列表合在一起 ....................... 430
» 锦囊2 使用zip()函数建立字典 ............................... 430
» 锦囊3 zip()函数妙用1——矩阵的旋转 ................. 431
» 锦囊4 zip()函数妙用2——矩阵的行列转置 ......... 431
» 锦囊5 zip()函数妙用3——将4×3矩阵转置
成3×4矩阵 ................................................... 432
第12章序列操作 ...................................433
12.1 all()函数——判断可迭代对象中的
元素是否全为True .......................................435
12.2 dict()函数——根据传入的参数创建
一个字典对象...............................................436
12.2.1 语法参考 .................................................... 436
12.2.2 快用锦囊 .................................................... 436
» 锦囊1 通过给定的关键字参数创建字典 ............... 436
» 锦囊2 通过传入映射函数创建字典 ....................... 437
» 锦囊3 通过传入可迭代对象创建字典 ................... 437
» 锦囊4 通过关键字索引访问字典成员 ................... 437
» 锦囊5 通过关键字索引插入与修改字典中的
成员 ............................................................... 438
12.2.3 应用场景 .................................................... 438
┋场景 查询图书信息 ................................................. 438
12.3 enumerate()函数——根据可迭代对象
创建枚举对象................................................439
12.3.1 语法参考 .................................................... 439
12.3.2 快用锦囊 .................................................... 439
» 锦囊1 将enumerate对象转换为列表 ...................... 439
» 锦囊2 通过enumerate()函数合并列表索引 ........... 440
» 锦囊3 循环遍历序列中的元素及下标 ................... 440
12.4 len()函数——获取序列的长度或项目个数 ....441
12.5 list()函数——将序列转换为列表 ...............441
12.5.1 语法参考 .................................................... 441
12.5.2 快用锦囊 .................................................... 442
» 锦囊1 根据传入的参数创建一个新的列表 ........... 442
» 锦囊2 将字典转换为列表 ....................................... 442
12.5.3 应用场景 .................................................... 443
┋场景 利用list()函数实现元组内容的修改 ............. 443
12.6 max()函数——获取序列(或元素)的
最大值............................................................443
12.7 memoryview()函数——获取一个对象的
内存查看对象................................................444
12.7.1 语法参考 .................................................... 444
12.7.2 快用锦囊 .................................................... 444
» 锦囊1 memoryview()函数的使用 ........................... 444
» 锦囊2 获取bytearray数组在内存中的数据 ............ 445
12.8 min()函数——获取序列(或元素)的
最小值...........................................................445
12.9 set()函数——将可迭代对象转换为
可变集合.......................................................446
12.9.1 语法参考 .................................................... 446
12.9.2 快用锦囊 .................................................... 446
» 锦囊1 根据传入的参数创建一个新的集合 ........... 446
» 锦囊2 去掉随机数中的重复数字 ........................... 447
» 锦囊3 通过lambda过滤集合中不是指定类型的
元素 ............................................................... 447
12.9.3 应用场景 .................................................... 448
┋场景 比对列表内集合元素中的相同字符 ............. 448
17
12.10 sum()函数——对序列进行求和计算 .......448
12.11 tuple()函数——将序列转换为元组 ..........449
12.11.1 语法参考 .................................................. 449
12.11.2 快用锦囊 .................................................. 449
» 锦囊1 将序列转换为元组 ....................................... 449
» 锦囊2 将列表转换为元组 ....................................... 450
» 锦囊3 将字典转换为元组 ....................................... 450
» 锦囊4 将generator对象转换为元组 ........................ 450
12.12 序列切片.....................................................451
12.12.1 语法参考 .................................................. 451
12.12.2 快用锦囊 .................................................. 451
» 锦囊1 获取字符串指定范围内的元素 ................... 451
» 锦囊2 获取列表中指定范围内的元素 ................... 452
» 锦囊3 排序元组中指定范围的元素 ....................... 452
12.13 序列相乘.....................................................452
12.13.1 语法参考 .................................................. 452
12.13.2 快用锦囊 .................................................. 453
» 锦囊1 字符串相乘 ................................................... 453
» 锦囊2 列表相乘 ....................................................... 453
» 锦囊3 元组的相乘 ................................................... 454
» 锦囊4 初始化指定的长度列表 ............................... 454
» 锦囊5 序列中的空元素相乘 ................................... 454
12.14 序列相加.....................................................455
12.14.1 语法参考 .................................................. 455
12.14.2 快用锦囊 .................................................. 455
» 锦囊1 字符串连接 ................................................... 455
» 锦囊2 列表连接 ....................................................... 455
» 锦囊3 元组连接 ....................................................... 456
» 锦囊4 连接元素类型不同的序列 ........................... 456
第13章对象操作 ...................................457
13.1 dir()函数——获取名字或属性、方法的
列表...............................................................459
13.1.1 语法参考 .................................................... 459
13.1.2 快用锦囊 .................................................... 459
» 锦囊1 对比导入模块前后的dir()函数返回列表 .... 459
» 锦囊2 将模块作为参数传递给dir()函数 ................ 459
» 锦囊3 将对象作为参数传递给dir()函数 ................ 460
» 锦囊4 将自定义类对象作为参数传递给
dir()函数 ........................................................ 460
13.1.3 应用场景 .................................................... 461
┋场景1 过滤列表的属性........................................... 461
┋场景2 执行模块中指定的函数............................... 461
13.2 hash()函数——获取一个对象的哈希值 .....462
13.2.1 语法参考 .................................................... 462
13.2.2 快用锦囊 .................................................... 463
» 锦囊1 输出不同数据类型的哈希值 ....................... 463
» 锦囊2 使用hash()函数重写自定义类的
__hash__()方法 ............................................ 463
» 锦囊3 禁用哈希值随机化 ....................................... 464
13.2.3 应用场景 .................................................... 465
┋场景 创建可哈希的对象 ......................................... 465
13.3 help()函数——查看对象的帮助信息 .........465
13.3.1 语法参考 .................................................... 465
13.3.2 快用锦囊 .................................................... 466
» 锦囊1 查看input()函数的帮助信息 ........................ 466
» 锦囊2 查看Python中所有的保留字 ....................... 466
» 锦囊3 启动帮助系统 ............................................... 467
» 锦囊4 查看os模块的帮助信息 ............................... 467
» 锦囊5 查看模块中指定函数的帮助信息 ............... 468
» 锦囊6 查看数据类型的帮助信息 ........................... 468
» 锦囊7 查看保留字if的帮助信息 ............................ 468
» 锦囊8 查看错误异常的帮助信息 ........................... 469
» 锦囊9 查看字符类型中某个方法的帮助信息 ....... 469
» 锦囊10 查看Python中所有的模块 ......................... 470
» 锦囊11 查看Python中提供的帮助主题的列表 ...... 470
» 锦囊12 查看Python某一个主题的帮助文档的
内容 ............................................................ 471
13.4 id()函数——获取对象的内存地址 .............471
13.4.1 语法参考 .................................................... 471
13.4.2 快用锦囊 .................................................... 472
» 锦囊1 输出不同数据类型的内存地址 ................... 472
» 锦囊2 “==”运算符和 “is”运算符的区别 ........ 472
» 锦囊3 小整数对象池和大整数对象池 ................... 473
13.4.3 应用场景 .................................................... 474
┋场景1 显示实例对象的内存地址........................... 474
┋场景2 获取内存地址的哈希值............................... 474
┋场景3 根据特定属性获取内存地址....................... 475
13.5 type()函数——获取对象类型或获取
一个新的类型对象.......................................475
13.5.1 语法参考 .................................................... 475
18
13.5.2 快用锦囊 .................................................... 476
» 锦囊1 输出字符串、元组、列表、字典等
对象的数据类型 ........................................... 476
» 锦囊2 比较type()函数和isinstance()函数的区别 ... 476
» 锦囊3 分别使用class关键字和
type(name,bases,dict)函数创建类对象 ....... 477
13.5.3 应用场景 .................................................... 478
┋场景 结合__new__()方法创建元类 ....................... 478
第14章反射操作 ...................................481
14.1 callable()函数——检测对象是否可被
调用...............................................................483
14.1.1 语法参考 .................................................... 483
14.1.2 快用锦囊 .................................................... 483
» 锦囊1 判断常用数据类型和内置函数是否
可以被调用 .................................................. 483
» 锦囊2 判断函数、lambda 表达式和方法是否
可以被调用 .................................................. 483
» 锦囊3 判断类和实例是否可以被调用 ................... 484
» 锦囊4 设置__call__()方法使实例可以被调用 ...... 484
14.1.3 应用场景 .................................................... 485
┋场景 处理多种数据类型的参数 ............................. 485
14.2 delattr()函数——删除对象的属性 ..............486
14.2.1 语法参考 .................................................... 486
14.2.2 快用锦囊 .................................................... 486
» 锦囊1 删除类对象的属性 ....................................... 486
» 锦囊2 删除实例对象的属性 ................................... 487
14.3 getattr()函数——获取对象的属性值 ..........487
14.3.1 语法参考 .................................................... 487
14.3.2 快用锦囊 .................................................... 488
» 锦囊1 获取对象属性值 ........................................... 488
» 锦囊2 捕获属性异常值 ........................................... 488
14.3.3 应用场景 .................................................... 489
┋场景 使用多种方式打开文件 ................................. 489
14.4 hasattr()函数——检查对象是否含有属性 ...489
14.4.1 语法参考 .................................................... 489
14.4.2 快用锦囊 .................................................... 490
» 锦囊1 判断属性是否为原生类型属性 ................... 490
» 锦囊2 判断属性是否为类属性 ............................... 490
» 锦囊3 判断属性是否为实例属性 ........................... 490
» 锦囊4 判断属性是否继承父类属性 ....................... 491
14.4.3 应用场景 .................................................... 491
┋场景 获取表格每一列的宽度 ................................. 491
14.5 __import__()函数——动态加载类和函数 ...492
14.5.1 语法参考 .................................................... 492
14.5.2 快用锦囊 .................................................... 493
» 锦囊1 导入模块 ....................................................... 493
» 锦囊2 设置fromlist参数导入子模块 ...................... 493
» 锦囊3 使用package.module导入子模块 ................. 494
» 锦囊4 动态导入模块 ............................................... 495
14.5.3 应用场景 .................................................... 495
┋场景 获取模块或包的根目录的绝对路径 ............. 495
14.6 isinstance()函数——判断对象是否是类
或子类 ..................................................................496
14.6.1 语法参考 .................................................... 496
14.6.2 快用锦囊 .................................................... 497
» 锦囊1 判断实例是否属于某个类 ........................... 497
» 锦囊2 判断对象是否属于原生类型 ....................... 497
» 锦囊3 判断多个继承中实例和父类的关系 ........... 498
14.6.3 应用场景 .................................................... 498
┋场景 将不同的日期格式转换为
datetime.date格式 ........................................... 498
14.7 issubclass()函数——判断类是否是
其他类的子类................................................499
14.7.1 语法参考 .................................................... 499
14.7.2 快用锦囊 .................................................... 499
» 锦囊1 判断类的继承关系 ....................................... 499
» 锦囊2 判断布尔型和整型之间的关系 ................... 500
» 锦囊3 判断某子类是否属于多个父类 ................... 500
» 锦囊4 判断多个继承中父类和子类的关系 ........... 501
14.7.3 应用场景 .................................................... 501
┋场景 获取模块内所有子类的特定属性值 ............. 501
14.8 setattr()函数——设置对象的属性值 ..........502
14.8.1 语法参考 .................................................... 502
14.8.2 快用锦囊 .................................................... 503
» 锦囊1 替换已经存在的属性 ................................... 503
» 锦囊2 创建新属性 ................................................... 503
» 锦囊3 批量创建属性 ............................................... 503
14.8.3 应用场景 .................................................... 504
┋场景 根据HTTP响应状态码描述获取
状态码数值 ..................................................... 504
19
第15章编译执行 ...................................505
15.1 compile()函数——将字符串编译为
字节代码.......................................................507
15.1.1 语法参考 .................................................... 507
15.1.2 快用锦囊 .................................................... 507
» 锦囊1 简单表达式返回计算结果 ........................... 507
» 锦囊2 编译并执行一条Python语句 ....................... 508
» 锦囊3 编译并执行一组Python语句 ....................... 508
» 锦囊4 编译字节码时忽略断言 ............................... 508
15.2 eval()函数——执行一个字符串表达式
并返回执行结果............................................509
15.2.1 语法参考 .................................................... 509
15.2.2 快用锦囊 .................................................... 509
» 锦囊1 返回字符串表达式的计算结果 ................... 509
» 锦囊2 循环将表达式的值保存到序列对象中 ....... 510
» 锦囊3 实现数据类型之间的转换 ........................... 510
» 锦囊4 执行代码时指定命名空间 ........................... 511
» 锦囊5 在全局命名空间中执行代码 ....................... 511
» 锦囊6 在局部命名空间中执行代码 ....................... 511
15.2.3 应用场景 .................................................... 512
┋场景 读取以字典类型保存在文本文件中的信息 ..... 512
15.3 exec()函数——执行储存在字符串或
文件中的Python语句 ...................................514
15.3.1 语法参考 .................................................... 514
15.3.2 快用锦囊 .................................................... 514
» 锦囊1 执行定义在字符串中的代码 ....................... 514
» 锦囊2 执行代码时指定命名空间 ........................... 515
15.3.3 应用场景 .................................................... 515
┋场景 使用format()方法格式化字符串时动态
指定字符宽度 ................................................. 515
15.4 repr()函数——将对象转换为可打印的
字符串...........................................................517
15.4.1 语法参考 .................................................... 517
15.4.2 快用锦囊 .................................................... 517
» 锦囊1 查看repr()函数返回对象的内容 .................. 517
» 锦囊2 将数值、字符串、列表、字典转换为
供解释器读取的字符串 ............................... 518
» 锦囊3 repr()函数与str()函数的区别 ....................... 518
» 锦囊4 将repr()函数的值传递给eval()函数 ............ 519
15.4.3 应用场景 .................................................... 520
┋场景 指定打印类时输出特定的信息 ..................... 520
第16章装饰器 .......................................521
16.1 classmethod()函数——把一个方法封装成
类方法...........................................................523
16.1.1 语法参考 .................................................... 523
16.1.2 快用锦囊 .................................................... 523
» 锦囊1 使用classmethod()函数设置类方法 ............ 523
» 锦囊2 使用@classmethod装饰器设置类的方法 ... 524
» 锦囊3 继承父类的类方法 ....................................... 524
16.1.3 应用场景 .................................................... 524
┋场景1 在类方法中导入模块................................... 524
┋场景2 调用类方法为实例属性赋值....................... 525
16.2 property()函数——获取属性值 ..................526
16.2.1 语法参考 .................................................... 526
16.2.2 快用锦囊 .................................................... 526
» 锦囊1 获取实例对象的属性值 ............................... 526
» 锦囊2 使用@property获取装饰器 ......................... 527
» 锦囊3 创建用于计算的属性 ................................... 528
16.2.3 应用场景 .................................................... 528
┋场景1 获取数据的行数和列数............................... 528
┋场景2 使用property重构代码 ................................. 529
16.3 staticmethod()函数——标示方法为静态
方法的装饰器...............................................531
16.3.1 语法参考 .................................................... 531
16.3.2 快用锦囊 .................................................... 531
» 锦囊1 使用staticmethod()函数设置静态方法 ........ 531
» 锦囊2 使用staticmethod()装饰器设置静态方法 .... 532
» 锦囊3 继承父类的静态方法 ................................... 532
16.3.3 应用场景 .................................................... 533
┋场景1 输出不同等级的日志信息........................... 533
┋场景2 读取多个文件内容....................................... 533
附 录
附录A 运算符 .......................................................536
1. + ——两个对象相加 .......................................536
» 锦囊1 数字相加 ....................................................... 536
» 锦囊2 字符串相加 ................................................... 536
20
» 锦囊3 元组相加 ....................................................... 537
» 锦囊4 列表相加 ....................................................... 537
2. - ——得到负数或一个数减去另一个数 ........537
» 锦囊1 作为负号使用 ............................................... 538
» 锦囊2 作为减号使用 ............................................... 538
3. * ——两个数相乘或返回一个被重复
若干次的字符串...............................................538
» 锦囊1 作为乘号使用 ............................................... 538
» 锦囊2 对字符串使用*运算符 ................................. 539
» 锦囊3 对元组使用*运算符 ..................................... 539
» 锦囊4 对列表使用*运算符 ..................................... 539
4. / ——两个数相除 ............................................540
» 锦囊1 实现人民币和美元的转换 ........................... 540
» 锦囊2 实现摄氏度和华氏度的转换 ....................... 540
5. // ——返回商的整数部分(向下取整) ......541
» 锦囊1 将描述“秒”转换为“分 秒”的格式 ...... 541
» 锦囊2 统计程序运行所占用的内存 ....................... 541
6. % ——返回除法的余数 ..................................542
» 锦囊1 负数使用%求余数 ....................................... 542
» 锦囊2 将“秒”的格式转换为“时 分 秒”的
格式 ............................................................... 543
7. ** ——返回一个数的幂..................................543
» 锦囊 用两种方式求x的y次幂 ................................. 543
8. = —— 简单的赋值 ..........................................544
» 锦囊 不同类型数据的赋值 ..................................... 544
9. += —— 加法赋值运算符 ................................544
» 锦囊1 计算字典中各值的累加和 ........................... 545
» 锦囊2 将数字0~9自动转换为汉字 ......................... 545
10. -= —— 减法赋值运算符 ...............................546
» 锦囊 “逢7过”游戏 ............................................... 546
11. *= —— 乘法赋值运算符 ..............................546
» 锦囊1 多种类型使用乘法赋值 ............................... 546
» 锦囊2 计算摆满国际象棋的棋盘所需要的
麦子数 ........................................................... 547
12. /= —— 除法赋值 ...........................................548
» 锦囊 用两种方式批量将列表中的元素除以2 ....... 548
13. %= —— 取模赋值 .........................................548
» 锦囊 用两种方式批量对列表中的元素取模 ......... 548
14. **= —— 幂赋值 ............................................549
» 锦囊 用两种方式批量求列表中元素的平方 ......... 549
15. //= —— 取整除赋值 ......................................549
» 锦囊 用两种方式批量列表中元素的取整数赋值 .... 549
16. == —— 等于 ..................................................550
» 锦囊1 == 运算符与is 的区别.................................. 550
» 锦囊2 if 语句判断是否相等 ................................... 550
17. != —— 不等于 ...............................................551
» 锦囊 遍历列表输出不等于某值的信息 ................. 551
18. > —— 大于 ....................................................551
» 锦囊1 比较相同类型数据的大小 ........................... 551
» 锦囊2 判断电梯是否超载 ....................................... 552
19. < —— 小于 ....................................................552
» 锦囊1 将倒序索引转化为正序索引 ....................... 552
» 锦囊2 获取列表中最小的元素 ............................... 553
20. >= —— 大于或等于 ......................................553
» 锦囊 判断考试成绩是否及格 ................................. 553
21. <= —— 小于或等于 ......................................554
» 锦囊 用两种方式获取偶数 ..................................... 554
22. and —— 逻辑与 .............................................554
» 锦囊 判断电梯是否超载 ......................................... 554
23. or—— 逻辑或 ................................................555
» 锦囊 使用or运算符判断某个区间之外的数据 ..... 555
24. not—— 逻辑非 ..............................................555
» 锦囊 判断输入的值是否为整数 ............................. 555
25. & —— 按位与 ...............................................556
» 锦囊 输出按位与运算的结果 ................................. 556
26. | —— 按位或 ..................................................556
» 锦囊 输出按位或运算的结果 ................................. 556
27. ^ —— 按位异或 .............................................557
» 锦囊 输出按位异或运算的结果 ............................. 557
28. ~ —— 按位取反 ............................................557
» 锦囊 输出按位取反运算的结果 ............................. 557
29. << —— 左移位 ..............................................558
» 锦囊 输出左移位运算的结果 ................................. 558
21
30. >> —— 右移位 ..............................................558
» 锦囊 输出右移位运算的结果 ................................. 558
31. in —— 在指定的序列中查找 .......................559
» 锦囊1 判断字符是否在字符串中 ........................... 559
» 锦囊2 判断元素是否在元组中 ............................... 559
» 锦囊3 判断元素是否在列表中 ............................... 559
» 锦囊4 判断元素是否在字典中 ............................... 560
» 锦囊5 判断元素是否在集合中 ............................... 560
32. not in —— 在指定的序列中查找 .................560
» 锦囊1 判断字符串信息是否合法 ........................... 561
» 锦囊2 删除列表中的重复元素 ............................... 561
33. is —— 判断两个标识是否引自同一个对象 ...561
» 锦囊1 判断空字符串、空元组和空列表
是否为None .................................................. 561
» 锦囊2 判断程序执行错误是否为SSL错误 ............ 562
34. is not —— 判断两个标识是否引自
同一个对象.....................................................562
» 锦囊1 使用is not运算符判断是否开启调试模式 .... 563
» 锦囊2 使用is not 避免隐式判断错误 ..................... 563
附录B PyCharm常用快捷键 ................................564
附录C IDLE常用快捷键 ......................................566
附录D Python 中常见的内置异常及描述 ..........567
附录E 内置函数 ...................................................568