内容简介
本书以零基础讲解为宗旨,用实例引导读者深入学习,采取“基础知识→核心技术→高级应用→项目开发实战”的讲解模式,深入浅出地讲解Python的各项技术及实战技能。
本书第1篇基础知识主要讲解揭开Python 神秘面纱、基础语法、列表、元组、字典、字符串操作、流程控制和函数等;第2篇核心技术主要讲解对象与类、程序调试和异常处理、模块与类库、迭代器、操作文件的方法、图形用户界面和流行的Python开发工具等;第3篇高级应用主要讲解Python的高级技术、数据库的应用技术、网络编程的应用、脚本程序设计和网页资料的处理方法等;第4篇项目开发实战主要讲解开发学生信息管理系统、开发网络聊天室系统和开发网络数据分析系统。本书赠送了9大超值的王牌资源,包括本书实例源代码、教学幻灯片、本书精品教学视频、16大经典Python项目源码、Python错误代码表速查手册、Python 2.X和Python 3.x版本的区别速查手册、Python 标准库速查手册、Python开发常见问题解决方案、Python工程师面试常见面试题等。
本书适合任何想学习Python编程语言的人员,无论您是否从事计算机相关行业,是否接触过Python语言,通过学习均可快速掌握Python在项目开发中的知识和技巧。
前 言
“软件开发案例课堂”系列图书是专门为软件开发和数据库初学者量身定做的一套学习用书,整套书涵盖软件开发、数据库设计等方面,且具有以下特点。
前沿科技
无论是软件开发还是数据库设计,我们都精选较为前沿或者用户群最大的领域推进,帮助大家认识和了解最新动态。
作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体相结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度,提升学习效率。
为什么要写这样一本书
Python具有丰富和强大的库。它常被称为“胶水语言”,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。从网络社区的火热讨论来看,Python已成为最受欢迎的编程语言之一。对不同规模的企业来说,Python程序员的薪资呈企业规模越大薪资越高的趋势。目前学习和关注Python的人越来越多,而很多Python的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,大学生可以很快地上手流行的工具,提高职业化能力,从而帮助解决公司与学生的双重需求问题。
本书特色
* 零基础、入门级的讲解。
无论你是否从事计算机相关行业,是否接触过Python编程语言,都能从本书中找到最佳起点。
* 超多、实用、专业的范例和项目。
本书在编排上紧密结合深入学习Python编程技术的先后顺序,从Python的基本语法开始,带领大家逐步深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
* 随时检测自己的学习成果。
每章首页中,均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节最后的“跟我练练手”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
* 细致入微、贴心提示。
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
* 专业创作团队和技术支持。
本书由千谷高新教育中心编著并提供技术支持。
你在学习过程中遇到任何问题,都可加入QQ群(案例课堂VIP)——451102631进行提问,专家人员会在线答疑。
超值赠送资源
* 全程同步教学录像。
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点,能更轻松地掌握书中所有的Python编程语言知识,而且扩展的讲解部分使你得到比书中更多的收获。
* 超多容量王牌资源大放送。
赠送大量王牌资源,包括本书实例源代码、教学幻灯片、本书精品教学视频、16大经典Python项目源码、Python错误代码表速查手册、Python 2.x和Python 3.x版本的区别速查手册、Python 标准库速查手册、Python开发常见问题解决方案、Python工程师面试常见面试题等。除了可以通过QQ群(案例课堂VIP)——451102631获取赠送资源,读者还可以进入http://www.apecoding.com/下载赠送资源。
读者对象
* 没有任何Python编程基础的初学者。
* 有一定的Python编程基础,想精通Python开发的人员。
* 有一定的Python基础,没有项目经验的人员。
* 正在进行毕业设计的学生。
* 大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂和展娜娜编著,参加编写的人员还有蒲娟、刘玉萍、李琪、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们竭尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若你在学习中遇到困难或疑问,或有何建议,可写信至信箱357975357@qq.com。
编 者
目 录
第1篇 基 础 知 识第1章 揭开Python神秘面纱 31.1 什么是Python 41.2 Python的优点和特性 41.2.1 Python的优点 41.2.2 Python的特点 51.3 搭建Python 3的编程环境 61.4 运行Python的3种方式 81.5 享受安装成果——编写第一个Python程序 91.6 Python是怎样运行的 111.7 大神解惑 121.8 跟我练练手 12第2章 初识庐山真面目——基础语法 132.1 标识符和保留字 142.2 变量 142.3 程序结构 152.4 数据类型 172.4.1 Number(数字) 172.4.2 String(字符串) 192.4.3 Sets(集合) 202.4.4 List(列表) 202.4.5 Tuple(元组) 212.4.6 Dictionary(字典) 222.5 运算符和优先级 222.5.1 算术运算符 222.5.2 比较运算符 232.5.3 赋值运算符 252.5.4 逻辑运算符 262.5.5 位运算符 272.5.6 身份运算符 282.5.7 成员运算符 292.5.8 运算符的优先级 292.6 大神解惑 312.7 跟我练练手 33第3章 不可不知的数据结构——列表、元组和字典 353.1 列表的基本操作 363.1.1 列表对象的特性 363.1.2 列表包容 373.1.3 列表的操作符 383.1.4 列表的函数和方法 383.2 元组的基本操作 413.2.1 元组对象的特性 413.2.2 元组的内置函数 423.3 字典的基本操作 433.3.1 字典对象的特性 433.3.2 字典的内置函数和方法 453.4 大神解惑 473.5 跟我练练手 47第4章 一连串的字符——字符串操作 494.1 访问字符串中的值 504.2 字符串的更新 504.3 转义字符 514.4 字符串运算符 524.5 字符串格式化 534.6 字符串使用的方法 544.7 大神解惑 584.8 跟我练练手 59第5章 程序的执行方向——流程控制和函数 615.1 基本处理流程 625.2 赋值语句 635.3 条件判断语句 635.3.1 if语句 635.3.2 if嵌套 645.4 循环控制语句 655.4.1 while语句 655.4.2 for语句 675.4.3 continue语句和break语句 685.4.4 pass语句 695.4.5 妙用range()函数和len()函数 705.5 内置函数 715.6 用户自定义函数 735.6.1 定义函数 745.6.2 函数的参数传递 755.6.3 return语句 775.6.4 变量作用域 785.6.5 函数的内置属性和命名空间 795.7 输入和输出函数 805.8 大神解惑 815.9 跟我练练手 82第II篇 核 心 技 术第6章 主流软件开发方法——对象与类 856.1 理解面向对象程序设计 866.1.1 什么是对象 866.1.2 面向对象的特征 876.1.3 什么是类 876.2 类的定义 886.3 类的构造方法和内置属性 886.4 类实例 906.4.1 创建类实例 906.4.2 类实例的内置属性 926.5 类的内置方法 936.6 重载运算符 996.7 类的继承 1006.8 类的多态 1036.9 类的封装 1046.10 元类 1066.11 垃圾回收 1076.12 大神解惑 1086.13 跟我练练手 109第7章 错误终结者——程序调试和异常处理 1117.1 新手常见错误和异常 1127.2 异常是什么 1147.3 内置异常 1157.4 使用try…except语句处理异常 1217.5 异常类的实例和清除异常 1247.5.1 异常类的实例 1247.5.2 清除异常 1257.6 内置异常的协助模块 1267.6.1 sys模块 1267.6.2 traceback对象 1267.7 抛出异常 1267.7.1 raise语句 1277.7.2 结束解释器的运行 1277.7.3 离开嵌套循环 1287.8 用户定义异常类 1297.9 程序调试 1307.9.1 使用assert语句 1307.9.2 使用__debug__内置变量 1317.10 错误代码 1327.11 大神解惑 1337.12 跟我练练手 134第8章 Python内部的秘密——模块与类库 1358.1 认识模块和类库 1368.1.1 模块是什么 1368.1.2 类库是什么 1378.2 模块和类库的基本操作 1388.3 自定义模块 1418.4 运行期服务模块 1428.5 字符串处理模块 1528.6 附属服务 1538.7 一般操作系统服务 1578.8 其他模块组 1658.9 大神解惑 1678.10 跟我练练手 168第9章 Python的强大功能——迭代器和操作文件 1699.1 迭代器 1709.2 生成器 1709.3 打开文件 1719.4 读取文件 1729.4.1 读取文件read()方法 1729.4.2 逐行读取readline()方法 1739.4.3 返回文件各行内容的列表readlines()方法 1739.4.4 返回文件的当前位置tell()方法 1749.4.5 截断文件truncate()方法 1749.4.6 设置文件当前位置seek()方法 1759.5 写入文件 1769.5.1 将字符串写入文件 1769.5.2 写入多行writelines() 1779.5.3 修改文件内容 1779.5.4 附加到文件 1789.6 关闭和刷新文件 1789.6.1 关闭文件 1789.6.2 刷新文件 1799.7 大神解惑 1799.8 跟我练练手 180第10章 图形用户界面 18110.1 常用的Python GUI 18210.2 使用tkinter创建GUI程序 18210.3 认识tkinter的控件 18410.4 几何位置的设置 18910.4.1 pack()方法 18910.4.2 grid()方法 19210.4.3 place()方法 19310.5 tkinter的事件 19410.5.1 事件的属性 19510.5.2 事件绑定方法 19510.5.3 鼠标事件 19610.5.4 键盘事件 19810.5.5 系统协议 19910.6 Button控件 20010.7 Canvas控件 20210.8 Checkbutton控件 20610.9 Entry控件 20710.10 Label控件 20910.11 Listbox控件 21110.12 Menu控件 21210.13 Message控件 21710.14 Radiobutton控件 21710.15 Scale控件 21910.16 Scrollbar控件 22110.17 Text控件 22210.18 Toplevel控件 22410.19 对话框 22510.19.1 messagebox模块 22510.19.2 filedialog模块 22710.19.3 colorchooser模块 22810.20 大神解惑 23010.21 跟我练练手 231第11章 流行的Python 开发工具 23311.1 程序代码编辑工具 23411.2 IDLE的调试器 24011.3 编译Python文件 24311.4 Python的调试器——pdb模块 24411.5 反编译二进制码 24711.6 Python性能分析器 24711.6.1 加载profile模块 24711.6.2 pstats模块 24911.6.3 校正性能分析 24911.7 传输Python应用程序 25011.8 大神解惑 25011.9 跟我练练手 251第III篇 高 级 应 用第12章 Python的高级技术 25512.1 图像的处理 25612.1.1 下载与安装pillow 25612.1.2 加载图像文件 25712.1.3 图像文件的属性 25912.1.4 复制与粘贴图像 26112.1.5 图像的几何转换 26212.1.6 存储图像文件 26412.2 语音的处理 26412.2.1 winsound模块 26412.2.2 sndhdr模块 26612.2.3 wave模块 26712.2.4 aifc模块 27012.3 科学计算——numpy模块 27012.3.1 下载和安装numpy模块 27012.3.2 array对象 27112.3.3 ufunc对象 27312.4 正则表达式 27312.5 线程 27712.6 大神解惑 28012.7 跟我练练手 281第13章 数据库的应用 28313.1 平面数据库 28413.2 内置数据库——SQLite 28513.3 操作MySQL数据库 28713.3.1 安装PyMySQL 28713.3.2 连接MySQL数据库 28813.3.3 创建数据表 28913.3.4 插入数据 28913.3.5 查询数据 29013.3.6 更新数据 29113.3.7 删除数据 29113.4 大神解惑 29213.5 跟我练练手 293第14章 网络编程的应用 29514.1 网络概要 29614.2 socket模块 29814.2.1 认识socket模块 29814.2.2 创建socket连接 29914.3 HTTP库 30014.3.1 socketserver模块 30114.3.2 server模块 30214.3.3 client模块 30414.4 urllib库 30514.4.1 request模块 30514.4.2 parse模块 30714.5 ftplib模块 30814.6 电子邮件服务协议 31014.6.1 smtplib模块 31014.6.2 poplib模块 31214.6.3 imaplib模块 31314.7 新闻群组 31414.8 远程连接计算机 31514.9 大神解惑 31614.10 跟我练练手 317第15章 CGI程序设计 31915.1 CGI简介 32015.2 cgi模块 32015.2.1 输入和输出 32015.2.2 cgi模块的函数 32215.3 创建和执行脚本 32215.3.1 传输信息给Python脚本 32315.3.2 表单域的处理 32315.3.3 Session 33215.3.4 创建输出到浏览器 33215.4 使用cookie对象 33215.4.1 了解cookie 33215.4.2 读取cookie信息 33315.5 使用模板 33415.6 上传和下载文件 33715.7 脚本的调试 33915.8 大神解惑 34115.9 跟我练练手 342第16章 处理网页数据 34316.1 XML编程基础 34416.1.1 XPath简介 34416.1.2 XSLT简介 34416.2 XML语法基础 34516.2.1 XML的基本应用 34516.2.2 XML文档组成和声明 34716.2.3 XML元素介绍 34816.3 Python解析XML 35016.3.1 使用SAX解析XML 35116.3.2 使用DOM解析XML 35316.4 XDR数据交换格式 35416.5 JSON数据解析 35816.6 Python解析HTML 35916.7 大神解惑 36516.8 跟我练练手 365第IV篇 项目开发实战第17章 开发学生信息管理系统 36917.1 准备工作 37017.1.1 配置Python开发环境 37017.1.2 选择合适的开发工具 37017.2 需求分析 37017.3 结构设计 37117.4 具体功能实现 37317.4.1 主界面程序main.py 37317.4.2 student.py模块 37417.4.3 utils.py模块 37517.4.4 addstudent.py模块 37617.4.5 deletestudent.py模块 37717.4.6 changestudent.py模块 37817.4.7 rankstudent.py模块 37917.5 项目测试 37917.5.1 添加学生信息 37917.5.2 对学生成绩进行排序 38117.5.3 修改学生成绩 38117.5.4 删除学生信息 38217.5.5 退出系统 38317.6 项目总结与扩展 384第18章 开发虚拟聊天室系统 38518.1 必备知识点 38618.2 需求分析 38818.3 结构设计 38918.4 配置Python环境 39018.5 具体功能实现 39018.5.1 服务器端chatserver.py 39118.5.2 客户端chatclient.py 39318.6 项目测试过程 39418.6.1 测试客户端和服务器端间的通信 39418.6.2 测试双人聊天 39718.6.3 测试多人聊天 39918.7 项目总结 401第19章 开发网络数据分析系统 40319.1 必备知识点 40419.2 需求分析 40519.3 结构设计 40619.4 配置开发环境 40719.4.1 配置Python环境 40719.4.2 安装第三方库 40719.4.3 加载GML数据集 41119.5 具体功能实现 41119.5.1 graphgenerator.py模块 41119.5.2 communitydetection.py模块 41219.5.3 graphmeasures.py模块 41319.5.4 plotdegree.py模块 41519.6 项目测试 41619.6.1 社区发现 41719.6.2 分析节点的重要性 41919.6.3 综合统计分析 424