第1ç« ç»ªè®º 1 1.1 Python概述 1 1.1.1 Pythonçš„å‘展 1 1.1.2 Python的特点 2 1.1.3 Python的应用 3 1.2 Pythonå¼€å‘环境 4 1.2.1 Pythonå®˜æ–¹æ ‡å‡†ç‰ˆå¼€å‘环境 4 1.2.2第一个Pythonç¨‹åº 5 1.2.3 Python IDLE的使用 6 1.2.4 PyCharm集æˆå¼€å‘环境 7 1.2.5 Anaconda集æˆå¼€å‘环境 12 1.2.6 Web版在线开å‘环境 14 1.3 模å—ã€åŒ…与库 14 1.3.1模å—的安装 15 1.3.2模å—的导入与使用 15 1.4 turtle对象绘图库 18 1.4.1 turtle对象编程æ€ç»´ 18 1.4.2 turtle库概述 20 1.4.3 turtle绘图æ“作方法 23 实è®ä¸Žä¹ 题 28 第2ç« Python基础 30 2.1 åŸºç¡€è¯æ³• 30 2.1.1ä»£ç æ ¼å¼ 30 2.1.2æ ‡è¯†ç¬¦ä¸Žå…³é”®å— 32 2.1.3å˜é‡ä¸Žå¸¸é‡ 34 2.2 解释器命å空间 35 2.2.1 Python解释器 35 2.2.2命å空间 35 2.3 函数对象 38 2.3.1内置函数 38 2.3.2自定义函数 40 2.4 类与对象 41 2.4.1内置类型与对象 41 2.4.2自定义类 43 2.4.3自定义元类 44 2.5 模å—对象 45 2.6 文件对象 46 2.7 Python代ç é£Žæ ¼ 47 2.7.1代ç å¸ƒå±€é£Žæ ¼ 47 2.7.2实体命åé£Žæ ¼ 48 2.7.3ä»£ç æ³¨é‡Šé£Žæ ¼ 48 2.7.4 Python之禅 48 实è®ä¸Žä¹ 题 48 第3ç« æ•°æ®ç±»åž‹ 51 3.1 概述 51 3.2 基本数æ®ç±»åž‹ 51 3.2.1整数类型 51 3.2.2浮点类型 52 3.2.3夿•°ç±»åž‹ 53 3.2.4布尔类型 53 3.2.5åŸºæœ¬ç±»åž‹è½¬æ¢ 53 3.3 ç»„åˆæ•°æ®ç±»åž‹ 54 3.3.1å—符串 54 3.3.2å—节组 59 3.3.3列表 61 3.3.4元组 64 3.3.5é›†åˆ 66 3.3.6å—å…¸ 67 3.4 问题æè¿° 70 3.4.1 问题æè¿°æ¦‚è¿° 70 3.4.2人机大战猜拳游æˆé—®é¢˜æè¿° 70 实è®ä¸Žä¹ 题 71 第4ç« è¿ç®—符 73 4.1 算术è¿ç®—符 73 4.1.1 åŠ æ³•è¿ç®—符 74 4.1.2 乘法è¿ç®—符 74 4.2 赋值è¿ç®—符 75 4.2.1 基本赋值è¿ç®—符 76 4.2.2 扩展赋值è¿ç®—符 76 4.3 比较è¿ç®—符 76 4.4 逻辑è¿ç®—符 77 4.5 æˆå‘˜è¿ç®—符 79 4.6 身份è¿ç®—符 80 4.7 ä½è¿ç®—符 80 4.8 集åˆè¿ç®—符 81 4.9 三目è¿ç®—符 82 4.10è¿ç®—符优先级 83 4.11计算æ€ç»´ 84 4.11.1 计算æ€ç»´è¿‡ç¨‹ 84 4.11.2 人机大战猜拳游æˆè®¡ç®—æ€ç»´åˆ†æž 85 实è®ä¸Žä¹ 题 87 第5ç« æµç¨‹æŽ§åˆ¶ 89 5.1 ç¨‹åºæµç¨‹ 89 5.2 æ¡ä»¶è¯å¥ 90 5.2.1 ifè¯å¥ 90 5.2.2 if-elseè¯å¥ 91 5.2.3 if-elif-elseè¯å¥ 92 5.2.4 ifè¯å¥åµŒå¥— 92 5.3 循环è¯å¥ 93 5.3.1 while循环è¯å¥ 93 5.3.2 for循环è¯å¥ 94 5.3.3 循环嵌套è¯å¥ 96 5.4 多分支选择è¯å¥ 98 5.5 跳转è¯å¥ 99 5.5.1 breakè¯å¥ 99 5.5.2 continueè¯å¥ 99 5.6 人机大战猜拳游æˆç¨‹åºè®¾è®¡æ¡ˆä¾‹ 100 5.6.1 ç¨‹åºæµç¨‹å›¾ 100 5.6.2程åºè®¾è®¡ 100 实è®ä¸Žä¹ 题 101 第6ç« ç»„åˆæ•°æ®ç±»åž‹ 103 6.1 概述 103 6.1.1 åºåˆ—类型 103 6.1.2 集åˆç±»åž‹ 104 6.1.3 æ˜ å°„ç±»åž‹ 105 6.1.4 å¯è¿ä»£å¯¹è±¡ä¸Žè¿ä»£å™¨ 105 6.2 å—符串 107 6.2.1 å—符串概述 107 6.2.2 å—符串的æ“作方法 109 6.3 列表 114 6.3.1 åˆ—è¡¨æŽ¨å¯¼å¼ 115 6.3.2 列表的æ“作方法 116 6.4 元组 118 6.4.1 元组概述 118 6.4.2 å…ƒç»„æŽ¨å¯¼å¼ 119 6.5 é›†åˆ 119 6.5.1 é›†åˆæŽ¨å¯¼å¼ 120 6.5.2 集åˆçš„æ“ä½œæ–¹æ³• 121 6.5.3 frozenseté›†åˆ 124 6.6 å—å…¸ 125 6.6.1 å—å…¸æŽ¨å¯¼å¼ 126 6.6.2 å—典的æ“作方法 127 6.7 用列表实现人机大战猜拳游æˆç¨‹åºæ¡ˆä¾‹ 130 实è®ä¸Žä¹ 题 131 第7ç« å‡½æ•° 133 7.1 函数定义和调用 133 7.1.1 定义函数 133 7.1.2 调用函数 134 7.1.3 return返回è¯å¥ 135 7.2 å‡½æ•°å‚æ•°ä¼ 递 136 7.2.1 ä½ç½®ã€å…³é”®å—å’Œé»˜è®¤å‚æ•°çš„ä¼ é€’ 136 7.2.2 傿•°çš„æ‰“包与解包 137 7.2.3 æ··åˆä¼ 递 139 7.3 å˜é‡ä½œç”¨åŸŸ 140 7.3.1 全局å˜é‡ 140 7.3.2 局部å˜é‡ 141 7.4 特殊函数 143 7.4.1 递归函数 143 7.4.2 lambda表达å¼ä¸ŽåŒ¿å函数 144 7.5 é—包函数 145 7.6 生æˆå™¨ 146 7.6.1 生æˆå™¨è¡¨è¾¾å¼ 146 7.6.2 生æˆå™¨å‡½æ•° 147 7.7 装饰器 148 7.7.1 简å•装饰器 148 7.7.2 多个装饰器 149 7.7.3 æ’入日志 149 7.8 内置高阶函数 150 7.8.1 map()函数 150 7.8.2 zip()函数 151 7.9 é¢å‘过程编程案例 152 7.9.1 é¢å‘è¿‡ç¨‹ç¼–ç¨‹æ€æƒ³ 152 7.9.2人机大战猜拳游æˆé¢å‘过程编程 152 实è®ä¸Žä¹ 题 153 第8ç« ç±»ä¸Žå¯¹è±¡ 155 8.1 类的定义和对象创建 155 8.1.1 类的定义 155 8.1.2 对象创建与使用 156 8.2 属性 156 8.2.1 类属性与对象属性 156 8.2.2 å…¬æœ‰å±žæ€§ä¸Žç§æœ‰å±žæ€§ 159 8.2.3 特殊属性 159 8.3 方法 160 8.3.1 对象方法ã€ç±»æ–¹æ³•ã€é™æ€æ–¹æ³•与property方法 160 8.3.2 å…¬æœ‰æ–¹æ³•ä¸Žç§æœ‰æ–¹æ³• 163 8.3.3 特殊方法 164 8.4 Python的对象体系 166 8.4.1 object基类 167 8.4.2 type元类 170 8.5 抽象类 172 8.5.1 æŠ½è±¡ç±»çš„ä½¿ç”¨æ–¹å¼ 172 8.5.2 abc模å—定义抽象类 173 8.6 å°è£…ã€ç»§æ‰¿å’Œå¤šæ€ 173 8.6.1 å°è£… 173 8.6.2 继承 174 8.6.3 å¤šæ€ 177 8.7 é¢å‘对象编程案例 178 8.7.1 é¢å‘å¯¹è±¡ç¼–ç¨‹æ€æƒ³ 178 8.7.2 人机大战猜拳游æˆé¢å‘对象编程 178 8.7.3 利用对象继承关系的人机大战猜拳游æˆç¼–程 179 实è®ä¸Žä¹ 题 180 第9ç« å¼‚å¸¸ã€è°ƒè¯•与测试 182 9.1 异常 182 9.1.1 异常与错误 182 9.1.2 异常类型 183 9.1.3 异常æ•èŽ·ä¸Žå¤„ç† 184 9.1.4 raise与assert抛出异常 188 9.1.5 自定义异常类 190 9.1.6 å¼‚å¸¸çš„ä¼ é€’ 191 9.2 调试 192 9.2.1 程åºè°ƒè¯•ç–ç•¥ 192 9.2.2 Python调试方法 192 9.3 测试 196 9.3.1 软件测试分类 196 9.3.2 Python测试技术 198 实è®ä¸Žä¹ 题 200 第10ç« æ–‡ä»¶ä¸Žæ•°æ®æ ¼å¼åŒ– 202 10.1 文件 202 10.1.1 文件概述 202 10.1.2 æ–‡ä»¶æ‰“å¼€ä¸Žå…³é— 204 10.1.3 文件读写 208 10.2 æ•°æ®æ ¼å¼ 212 10.2.1 æ•°æ®ç»´åº¦ 212 10.2.2 æ•°æ®çš„å˜å‚¨æ ¼å¼ 213 10.2.3 æ•°æ®çš„读写 214 实è®ä¸Žä¹ 题 215 第11ç« æ ‡å‡†åº“åº”ç”¨ç¼–ç¨‹ 218 11.1概述 218 11.2 osæ“ä½œç³»ç»Ÿæ¨¡å— 219 11.3 sysè§£é‡Šå™¨ç³»ç»Ÿæ¨¡å— 220 11.4æ—¶é—´ä¸Žæ—¥æœŸæ¨¡å— 222 11.4.1 timeæ¨¡å— 222 11.4.2 datatimeæ¨¡å— 225 11.4.3 calendaræ¨¡å— 229 11.5 mathå’Œrandom库 231 11.5.1 math库 231 11.5.2 random库 233 11.6 Pythonå¹¶å‘编程 234 11.6.1 并呿¦‚è¿° 234 11.6.2 多进程编程 235 11.6.3 多线程编程 237 11.6.4 多å程编程 239 11.7网络编程 240 11.7.1 TCP/IP概述 240 11.7.2 UDP通信编程 242 11.7.3 TCP通信编程 243 实è®ä¸Žä¹ 题 244 第12ç« ç¬¬ä¸‰æ–¹åº“åº”ç”¨ç¼–ç¨‹ 246 12.1概述 246 12.2æ•°æ®åˆ†æžä¸Žå¯è§†åŒ– 253 12.2.1 NumPyç§‘å¦è®¡ç®—库 253 12.2.2 Pandasæ•°æ®åˆ†æžåº“ 256 12.2.3 Matplotlibæ•°æ®å¯è§†åŒ–库 259 12.2.4 花å›è¶…市水果销售统计图绘制过程 265 12.2.5 å¦ç”Ÿæˆç»©ç»Ÿè®¡åˆ†æžæ¡ˆä¾‹ 267 12.3文本分æžä¸Žå¯è§†åŒ– 269 12.3.1 jieba库 269 12.3.2 wordcloud库 271 实è®ä¸Žä¹ 题 273 第13ç« è™šæ‹ŸçŽ¯å¢ƒä¸Žç¨‹åºæ‰“包å‘布 275 13.1 Python虚拟环境 275 13.1.1 虚拟环境的创建 275 13.1.2 虚拟环境的使用 276 13.1.3 虚拟环境的结构 278 13.2ç¨‹åºæ‰“包与å‘布 278 13.2.1 模å—的构建与使用 279 13.2.2 包的构建与使用 280 13.2.3 库的构建 281 13.2.4 库的å‘布 282 13.3 PyInstaller库打包Python文件为 exe文件 283 13.3.1 ç¨‹åºæ‰“包为 exe文件 283 13.3.2 PyInstaller工具打包Python文件为exe文件 284 实è®ä¸Žä¹ 题 285 第14ç« é¡¹ç›®å¼€å‘å®žæˆ˜â€”â€”èŒ¶å¶æ•°æ®çˆ¬è™«å¼€å‘ 287 14.1软件工程 287 14.1.1 å¦ä¹ 软件工程的æ„义 287 14.1.2 软件工程概述 288 14.1.3 è½¯ä»¶é¡¹ç›®å¼€å‘æµç¨‹ 289 14.2 Pythonç½‘ç»œçˆ¬è™«å¼€å‘ 290 14.2.1 éœ€æ±‚åˆ†æž 291 14.2.2 方案规划 291 14.2.3 设计æè¿° 292 14.2.4 编程实现 293 14.2.5 测试è¿è¡Œ 298 实è®ä¸Žä¹ 题 299 å‚考文献 302