目 录
第1章 Python程序设计入门 1
1.1 Python概述 2
1.1.1 什么是Python 2
1.1.2 为什么学Python 4
1.1.3 Python的发展 5
1.2 Python开发环境的搭建 6
1.2.1 Windows下Python开发环境的搭建 6
1.2.2 Linux下Python开发环境的搭建 8
1.2.3 使用IDLE来帮助学习Python 10
1.2.4 Python常用的开发工具 14
1.2.5 “Hello world!”——**个Python程序 16
本章小结 16<p>目 录</p> <p> </p> <p>第1章 Python程序设计入门 1</p> <p>1.1 Python概述 2</p> <p>1.1.1 什么是Python 2</p> <p>1.1.2 为什么学Python 4</p> <p>1.1.3 Python的发展 5</p> <p>1.2 Python开发环境的搭建 6</p> <p>1.2.1 Windows下Python开发环境的搭建 6</p> <p>1.2.2 Linux下Python开发环境的搭建 8</p> <p>1.2.3 使用IDLE来帮助学习Python 10</p> <p>1.2.4 Python常用的开发工具 14</p> <p>1.2.5 “Hello world!”——**个Python程序 16</p> <p>本章小结 16</p> <p>习题 17</p> <p>第2章 Python语言基础 19</p> <p>2.1 基础Python语法 20</p> <p>2.1.1 标识符 20</p> <p>2.1.2 Python语法和句法 21</p> <p>2.2 数值 22</p> <p>2.2.1 数据类型 22</p> <p>2.2.2 常量与变量 25</p> <p>2.2.3 运算符与优先级 26</p> <p>2.3 字符串 29</p> <p>2.4 列表与序列 38</p> <p>2.5 元组 42</p> <p>2.6 字典 45</p> <p>2.7 集合 49</p> <p>2.8 正则表达式 54</p> <p>2.8.1 基本元素 55</p> <p>2.8.2 正则表达式的操作举例 57</p> <p>2.8.3 正则表达式测试工具 59</p> <p>2.8.4 正则表达式的在线测试 63</p> <p>本章小结 64</p> <p>习题 64</p> <p>第3章 Python流程控制 67</p> <p>3.1 if语句 68</p> <p>3.1.1 if语句 68</p> <p>3.1.2 if-else语句 70</p> <p>3.1.3 if-elif-else语句 70</p> <p>3.1.4 三元运算符 71</p> <p>3.1.5 比较操作符 72</p> <p>3.1.6 if嵌套 73</p> <p>3.2 for循环 74</p> <p>3.2.1 for循环的基本结构 75</p> <p>3.2.2 for循环嵌套 77</p> <p>3.2.3 for循环中使用else分支 78</p> <p>3.2.4 列表解析 79</p> <p>3.3 range()函数 80</p> <p>3.4 while循环 83</p> <p>3.4.1 while循环基本结构 83</p> <p>3.4.2 while循环嵌套 85</p> <p>3.4.3 while循环中使用else分支 85</p> <p>3.4.4 break和continue语句在循环中的使用 86</p> <p>3.4.5 pass在循环中的使用 87</p> <p>3.4.6 end在循环中的使用 88</p> <p>3.5 案例实训:输出所有和为某个正整数的连续正数序列 88</p> <p>本章小结 90</p> <p>习题 90</p> <p>第4章 函数模块 93</p> <p>4.1 Python代码编写规范 94</p> <p>4.1.1 Python代码风格 95</p> <p>4.1.2 例子说明 96</p> <p>4.2 自建模块 97</p> <p>4.2.1 定义一个函数 98</p> <p>4.2.2 函数调用 99</p> <p>4.2.3 按引用传递参数 100</p> <p>4.2.4 参数类型 100</p> <p>4.2.5 return语句 102</p> <p>4.2.6 变量的作用域 103</p> <p>4.2.7 函数与递归 104</p> <p>4.2.8 迭代器与生成器 108</p> <p>4.2.9 自定义模块 110</p> <p>4.3 标准模块 112</p> <p>4.3.1 内建函数 112</p> <p>4.3.2 读取键盘输入 113</p> <p>4.3.3 输出到屏幕 113</p> <p>4.3.4 内建模块 115</p> <p>4.4 巧用lambda表达式 119</p> <p>4.5 Python工具箱 120</p> <p>4.6 案例实训:“哥德巴赫猜想”的验证 123</p> <p>4.7 本章小结 124</p> <p>习题 124</p> <p>第5章 文件与异常处理 127</p> <p>5.1 文件的基本操作 128</p> <p>5.1.1 打开文件 128</p> <p>5.1.2 关闭文件 130</p> <p>5.1.3 在文本文件中读取数据 130</p> <p>5.1.4 创建文本文件 131</p> <p>5.1.5 向文本文件中添加数据 131</p> <p>5.1.6 文件指针 131</p> <p>5.1.7 截断文件 132</p> <p>5.1.8 复制、删除、移动、重命名文件 133</p> <p>5.2 指定目录下的文件操作 134</p> <p>5.2.1 获取当前目录 134</p> <p>5.2.2 获取当前目录下的内容 135</p> <p>5.2.3 创建、删除目录 135</p> <p>5.3 CSV文件 136</p> <p>5.3.1 读CSV文件 136</p> <p>5.3.2 写CSV文件 137</p> <p>5.4 Excel文件 138</p> <p>5.4.1 使用xlrd读Excel文件 138</p> <p>5.4.2 使用xlwt写Excel文件 139</p> <p>5.4.3 使用xlutils修改Excel文件 141</p> <p>5.5 HTML文件 142</p> <p>5.5.1 Beautiful Soup安装 142</p> <p>5.5.2 创建Beautiful Soup对象 142</p> <p>5.5.3 解析HTML文件 144</p> <p>5.6 XML文件 146</p> <p>5.6.1 解析XML文件 146</p> <p>5.6.2 创建XML文件 148</p> <p>5.7 异常处理 149</p> <p>5.7.1 异常 149</p> <p>5.7.2 try、else、finally语句 151</p> <p>5.7.3 触发异常和自定义异常 152</p> <p>5.7.4 使用sys模块返回异常 153</p> <p>5.8 使用pdb模块调试程序 153</p> <p>5.8.1 常用的pdb函数 154</p> <p>5.8.2 pdb调试命令 156</p> <p>5.9 案例实训:文本文件的操作与异常处理 157</p> <p>本章小结 160</p> <p>习题 160</p> <p>第6章 面向对象编程 163</p> <p>6.1 类的定义与使用 165</p> <p>6.1.1 类的定义 165</p> <p>6.1.2 类属性与方法 166</p> <p>6.1.3 关于Python的作用域和命名空间 170</p> <p>6.2 Python类与对象 173</p> <p>6.2.1 类对象 173</p> <p>6.2.2 类的属性 174</p> <p>6.2.3 实例属性 176</p> <p>6.2.4 一些说明 177</p> <p>6.3 继承 178</p> <p>6.3.1 单继承 178</p> <p>6.3.2 多继承 179</p> <p>6.3.3 补充 181</p> <p>6.3.4 isinstance函数 184</p> <p>6.3.5 super()函数 185</p> <p>6.4 案例实训:Python面向对象编程案例演练 186</p> <p>本章小结 201</p> <p>习题 201</p> <p>第7章 数据库编程 205</p> <p>7.1 数据库技术基础 206</p> <p>7.1.1 数据库的基本概念 206</p> <p>7.1.2 数据库的类型 207</p> <p>7.2 SQLite数据库 208</p> <p>7.2.1 SQLite数据库的下载和安装 208</p> <p>7.2.2 SQLite数据类型 209</p> <p>7.2.3 创建SQLite数据库 210</p> <p>7.2.4 SQLite的基本操作 210</p> <p>7.2.5 使用Python操作SQLite数据库 214</p> <p>7.3 MySQL数据库 216</p> <p>7.3.1 MySQL数据库的下载和安装 216</p> <p>7.3.2 MySQL数据类型 220</p> <p>7.3.3 MySQL的基本操作 222</p> <p>7.3.4 使用Python操作MySQL数据库 230</p> <p>7.4 案例实训:管理信息系统的数据操作 232</p> <p>本章小结 235</p> <p>第8章 Web开发 237</p> <p>8.1 将程序放在Web上运行 238</p> <p>8.1.1 Web应用的工作方式 238</p> <p>8.1.2 为Web应用创建一个UI 239</p> <p>8.2 使用MVC设计Web应用 241</p> <p>8.3 使用CGI将程序运行在服务器上 242</p> <p>8.4 案例实训:Web页面获取表格内容并显示 248</p> <p>本章小结 251</p> <p>习题 251</p> <p>第9章 使用Python进行数据分析 253</p> <p>9.1 数据挖掘简介 254</p> <p>9.2 为什么选择Python进行数据挖掘 255</p> <p>9.3 Python的主要数据分析工具 255</p> <p>9.3.1 NumPy库 255</p> <p>9.3.2 SciPy库 258</p> <p>9.3.3 Matplotlib库 261</p> <p>9.3.4 Pandas库 263</p> <p>9.4 案例实训 268</p> <p>9.4.1 利用Python分析数据的基本情况——缺失值分析与数据离散度分析 268</p> <p>9.4.2 使用箱形图检测异常值——离群点挖掘 270</p> <p>本章小结 272</p> <p>习题 272</p> <p>第10章 GUI编程和用户界面 275</p> <p>10.1 Tkinter模块 276</p> <p>10.1.1 创建Windows窗体 277</p> <p>10.1.2 标签组件Label 279</p> <p>10.1.3 按钮组件Button 282</p> <p>10.1.4 消息框组件Messagebox 285</p> <p>10.1.5 只读文本框Entry 287</p> <p>10.1.6 单选按钮组件Radiobutton 289</p> <p>10.1.7 复选框组件Checkbutton 290</p> <p>10.1.8 文本框组件Text 292</p> <p>10.1.9 列表框组件Listbox 293</p> <p>10.1.10 菜单组件Menu 295</p> <p>10.1.11 滑动条组件Scale 297</p> <p>10.2 网格布局管理器 298</p> <p>10.2.1 网格 299</p> <p>10.2.2 sticky属性 301</p> <p>10.2.3 向列表框添加垂直滚动条 302</p> <p>10.2.4 设计窗体布局 303</p> <p>10.3 GUI编程 304</p> <p>10.3.1 将TUI程序转换成GUI程序 304</p> <p>10.3.2 面向对象编程 305</p> <p>10.4 案例实训:设计一个查看文件目录的程序 307</p> <p>本章小结 310</p> <p>习题 310</p> <p>第11章 多进程与多线程 313</p> <p>11.1 多进程与多线程 314</p> <p>11.1.1 为何需要多进程(或多线程)/为何需要并发 314</p> <p>11.1.2 多进程与多线程的区别 314</p> <p>11.2 多进程编程 316</p> <p>11.2.1 进程的概念 316</p> <p>11.2.2 进程的特征 316</p> <p>11.2.3 进程的状态 317</p> <p>11.3 Multiprocessing 318</p> <p>11.3.1 创建进程Process模块 318</p> <p>11.3.2 守护进程Daemon 320</p> <p>11.3.3 进程间通信技术Queue和Pipe 321</p> <p>11.3.4 使用进程池pool 324</p> <p>11.4 多线程编程 328</p> <p>11.4.1 Thread对象 328</p> <p>11.4.2 thread锁 330</p> <p>11.5 案例实训:捉迷藏游戏设计 331</p> <p>本章小结 332</p> <p>习题 333</p> <p>第12章 网络编程 335</p> <p>12.1 计算机网络基础知识 336</p> <p>12.2 socket通信技术 339</p> <p>12.2.1 什么是socket 339</p> <p>12.2.2 连接过程 339</p> <p>12.2.3 socket模块 339</p> <p>12.2.4 socket函数 340</p> <p>12.2.5 socket编程思路 342</p> <p>12.3 编写一个端口扫描器 344</p> <p>12.4 简单网络爬虫的实现 345</p> <p>12.4.1 什么是网络爬虫 346</p> <p>12.4.2 浏览网页的过程 346</p> <p>12.4.3 urllib库 347</p> <p>12.5 案例实训:设计获取网站热点要闻的网络爬虫程序 350</p> <p>本章小结 357</p> <p>习题 357</p> <p>附录A Python关键字 359</p> <p>附录B 其他常用功能 363</p> <p>参考文献 365</p>显示全部信息前 言前 言
根据TIOBE网站的*新排名,Python已超越C#,与Java、C、C 一起,成为全球前四大流行语言。IEEE发布的2017年编程语言排行榜则将Python排在榜首。
Python也是美国大学选用*多的语言,**的哈佛大学、麻省理工学院、加州大学伯克利分校、卡耐基·梅隆大学等,已将Python语言作为计算机专业和非计算机专业的入门语言。Python崇尚简、短、精、小,其应用几乎无限制,各方面地位超然。Python在软件质量控制、提升开发效率/可移植性、组件集成、丰富的库支持等方面,均处于先进地位。更重要的是,Python简单易学、免费开源、可移植、可扩展、可嵌入。此外,Python还支持面向对象,而且它的面向对象甚至比Java和C#.NET更彻底。
Python是高“性价比”的语言。它合理地结合了高性能与低成本(代码量小、维护成本低、编程效率高)的特色,致力于用*简洁、*简短的代码完成任务。
完成同样的业务逻辑时,在其他编程语言中可能需要编写大量的代码,而在Python中只需要调用内建函数或内建对象的方法即可实现,甚至可以直接调用第三方扩展库来完成。一般情况下,Python的代码量仅仅是Java的1/5,足见Python编程的**。<p>前 言</p> <p> 根据TIOBE网站的*新排名,Python已超越C#,与Java、C、C 一起,成为全球前四大流行语言。IEEE发布的2017年编程语言排行榜则将Python排在榜首。</p> <p> Python也是美国大学选用*多的语言,**的哈佛大学、麻省理工学院、加州大学伯克利分校、卡耐基·梅隆大学等,已将Python语言作为计算机专业和非计算机专业的入门语言。Python崇尚简、短、精、小,其应用几乎无限制,各方面地位超然。Python在软件质量控制、提升开发效率/可移植性、组件集成、丰富的库支持等方面,均处于先进地位。更重要的是,Python简单易学、免费开源、可移植、可扩展、可嵌入。此外,Python还支持面向对象,而且它的面向对象甚至比Java和C#.NET更彻底。</p> <p> Python是高“性价比”的语言。它合理地结合了高性能与低成本(代码量小、维护成本低、编程效率高)的特色,致力于用*简洁、*简短的代码完成任务。</p> <p> 完成同样的业务逻辑时,在其他编程语言中可能需要编写大量的代码,而在Python中只需要调用内建函数或内建对象的方法即可实现,甚至可以直接调用第三方扩展库来完成。一般情况下,Python的代码量仅仅是Java的1/5,足见Python编程的**。</p> <p> Python是应用“无限制”的语言。它被广泛应用于后端开发、游戏开发、网站开发、科学计算、大数据分析、云计算、图形开发等领域。美国**情报局CIA网站、世界上*大的视频网站YouTube、国内*大的问答社区“知乎”等,都是用Python开发的,搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等**的IT公司都在使用Python完成各种各样的任务。</p> <p> Python是一种代表“简单主义”思想的语言。它的设计哲学是优雅、明确、简单。阅读一个良好的Python程序,感觉就像是在阅读英语,尽管这个英语的要求非常严格!Python的这种伪代码本质,是它*大的优点之一。</p> <p> Python是“高层次”的语言。它内建优异的数据结构,很容易表达各种常见的数据结构,不再需要定义指针、分配内存,编程也简单了许多,也无须考虑程序对内存的使用等底层细节,把许多机器层面上的细节隐藏起来,凸显出逻辑层面的编程思考。</p> <p> Python是免费、开源、跨平台的**动态编程语言。它支持命令式编程、函数式编程,全面支持面向对象编程;它语法简洁、清晰,拥有功能丰富而强大的标准库和大量的第三方扩展库;它使用户能够专注于解决问题,而不是去搞明白语言本身,这是它开发效率高的根本原因。</p> <p> 由此可见,用“出类拔萃”来形容Python并不为过。Python以如此众多的优势,吸引着无数程序员投身于其中。网上的一句流行语颇耐人寻味:“人生苦短,我用Python”。</p> <p> 在国外,“Python热”正在逐步升温,涉及方方面面的领域;在国内,越来越多的大学已将Python列入本科生的必修课程或选修课程,越来越多的IT企业将开发语言瞄向了Python。可以预见的是,国内的“Python热”即将掀起,本书的出版迎合了这一趋势。</p> <p> 本书的内容组织说明如下。</p> <p> 为了拓展应用范围,充分利用现有资源,对于Python程序员而言,熟练运用第三方扩展库是非常重要的。使用成熟的扩展库,可以帮助我们快速地实现业务逻辑,达到事半功倍的效果。但是,第三方扩展库的理解和运用,无疑要建立在对Python基础知识和基本数据结构熟练掌握的基础上。因此,本书兼顾“基础”与“应用”两个方面,前6章把**放在基础上,通过大量的经典例题,讲解Python语言的核心内容;后6章则把**放在应用上,通过大量的案例,介绍Python在实际开发中的应用。关于不同应用领域的第三方扩展库,读者可以参考附录B,并结合自己的专业领域查阅相关文档。</p> <p> 本书共分12章,主要内容组织如下。</p> <p> 第1章:Python程序设计入门。介绍什么是Python,学习Python的原因,Python的发展历史,多种平台下Python环境的搭建,使用集成开发环境IDLE来帮助学习Python,Python常用的开发工具,*后给出本书的**个Python程序。</p> <p> 第2章:Python语言基础。讲解Python的语法和句法,Python的数据类型,Python的常量与变量,Python的运算符与优先级,Python的数值类型,Python的字符串类型,Python的**数据类型(列表、元组、字典、集合),*后介绍正则表达式及其应用。</p> <p> 第3章:Python流程控制。讲解if语句和for语句的基本格式、执行规则、嵌套用法,range()函数���循环中的使用方法,while语句的基本格式、执行规则、嵌套用法,*后介绍break、continue、pass等关键字在循环中的使用方法。</p> <p> 第4章:函数模块。讲解Python代码编写规范和风格,函数的定义与调用,函数参数的传递,Python变量作用域,函数与递归,迭代器与生成器,Python自定义模块,输入输出语句的基本格式及执行规则,匿名函数的定义与使用。</p> <p> 第5章:文件与异常处理。介绍文件和文件对象,讲解基于os模块的文件操作方法,基于shutil模块的文件操作方法,文本文件、CSV文件、Excel文件的基本操作,HTML、XML文档的基本操作,*后介绍Python的异常处理机制及Python程序的调试方法。</p> <p> 第6章:面向对象编程。介绍面向对象技术,讲解类与对象的定义和使用,类的属性与方法,类的作用域与命名空间,类的单继承和多继承,*后以数个典型实例讲解面向对象程序设计的应用。</p> <p> 第7章:数据库编程。讲解数据库技术基础,SQLite和MySQL数据库的数据类型、基本操作,使用Python操作SQLite和MySQL数据库的方法。</p> <p> 第8章:Web开发。讲解Web应用的工作方式,MVC设计模式,CGI通用网关接口,使用模板快速生成Web页面。</p> <p> 第9章:使用Python进行数据分析。讲解使用Python进行数据挖掘的原因,介绍NumPy库、SciPy库、Matplotlib库和Pandas库,*后通过数理统计中的数据离散度分析和数据挖掘中的离群点分析等典型案例,介绍Python在数据可视化方面的应用。</p> <p> 第10章:GUI编程和用户界面。讲解GUI界面的概念,Tkinter模块及其各种组件,网格布局管理器,*后介绍GUI编程。</p> <p> 第11章:多进程与多线程。介绍多进程与多线程的概念,讲解多进程与多线程的区别,进程间通信技术,进程池,*后介绍thread锁。</p> <p> 第12章:网络编程。讲解计算机网络基础知识,Socket通信技术,urllib库及其使用,端口扫描器,*后以一个简单的网络爬虫为例,对前几章的知识进行综合应用。</p> <p> 本书*大的特点是内容紧凑、案例丰富、学以致用;程序输出原滋原味,既有正确输出的结果,又有错误输出的提示,让读者既能从“正”的方面学到经验,又能从“负”的方面吸取教训,使经验与教训兼而得之。全书总体内容按照先基础、后应用的顺序安排。前6章为基础篇,其内容循序渐进;后6章为应用篇,其内容自成体系;每个知识点按照先讲解知识、后给出案例的顺序编写;每个软件都配有安装过程截图,每道例题都配有运行结果截图,一目了然。</p> <p> 本书作者具有近30年的程序设计教学经验,讲授过多门编程语言课程,并编写过大量的应用程序,青年时期曾参加过市级讲课大赛并取得优异成绩,特别是在美国访学期间,用Python语言开发过较大规模的软件。在内容的组织和安排上,本书结合了作者多年教学与科研中积累的经验,并巧妙地将其糅合到相应的章节中。</p> <p> 本书以目前流行的Python 3为基础,适当兼顾Python 2.x,既讲解Python的基础知识,又适当介绍Python在各个方面的应用,因而,可以满足不同层次读者的需要。</p> <p> 本书可以作为高等院校计算机或非计算机专业程序设计语言公共课或选修课教材,基础教学建议选取前6章内容,**36学时;“基础 应用”教学建议按“6 n”方式选取教学内容,后面6章可根据专业需要择其一二,或全部选用,**42~64学时。建议采用边讲边练的教学模式。本书可以作为具有一定Python基础的读者进一步学习的资料,可供参加各类计算机考试的人员学习和参考,也可以作为从事数据分析、网络运维、数据库开发、Web开发、界面设计、软件开发等工作的工程师的参考资料。对于打算利用业余时间快乐地学习一门编程语言并编写一些小程序来自我娱乐的读者,本书是**的学习资料。本书亦适合对编程有着浓厚兴趣的中小学生作为课外阅读资料。</p> <p> 本书由天津工业大学杨连贺、董禹龙、房超主编,该校毕璐琪、梁润宇及天津市电子计算机研究所杨阳、湖南应用技术学院彭进香为副主编。限于作者的经验和水平,书中的错误与不足之处在所难免,希望得到专家和读者的批评指正。</p> <p> 本书编写过程中,天津工业大学计算机科学与软件学院硕士研究生张海潮和焦翠姣在程序调试方面做了很多工作,在此一并向她们表示衷心的感谢。</p> <p> </p> <p> </p> <p> </p> <p> 作 者 </p> <p> 2018年5月于天津工业大学</p>显示全部信息免费在线读第2章 Python语言基础
本章要点
(1) Python的语法和句法。
(2) Python的数据类型。
(3) Python的常量与变量。
(4) Python的运算符与优先级。
(5) Python的数值类型。
(6) Python的字符串类型。
(7) Python的**数据类型(列表、元组、字典、集合)。
(8) 正则表达式。
学习目标
(1) 了解Python的语法和句法。
(2) 理解Python的数据类型。
(3) 掌握Python的常量与变量。
(4) 掌握Python的数值、字符串、列表、元组、字典、集合。
(5) 掌握正则表达式的概念及其应用。
本章将以较大的篇幅介绍Python语言*基础的内容,包括Python语法、基本数据类型、常量变量、运算符与优先级、**数据类型,*后介绍正则表达式的概念及其应用。
2.1 基础Python语法