高等教育 > 计算机基础教育
Python程序设计与应用(第2版)
书号:9787113313784 套系名称:高等教育新工科信息技术课程系列教材
作者:吴其林 孙光灵 张步群 出版日期:2024-12-01
定价:56.00 页码 / 开本:0 /16
策划编辑:汪敏 刘梦珂 责任编辑:汪敏
适用专业:计算机基础教育 适用层次:高等教育
最新印刷时间:2024-12-01
资源下载
教学课件(暂无)
教学素材(暂无)
习题答案(暂无)
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
本书为高等教育新工科信息技术课程系列教材之一,围绕Python的计算生态环境,采用 理论与实际案例相结合的方式,系统讲解了Python语言学习的路径。本书分15章,包括环境搭 建,数据类型,列表、元组字典和集合,控制语句,函数,面向对象程序设计,模块与包的使 用,文件操作,异常处理,数据库编程,网络编程,tkinter GUI编程,多线程编程,Python计 算生态,Python应用案例等。 本书内容涵盖Python语言程序设计大部分知识点,叙述思路清晰,循序渐进,每章都以大 量实例为依托,提供了各知识点的全面详尽的讲解。 本书适合作为高等院校Python程序设计课程的教材,也可作为对Python感兴趣的编程爱好 者的自学用书。
随着计算机技术和信息产业的快速发展,社会对软件人才的需求量在逐年增加。 为了培养高层次复合型人才,高等院校在开设计算机基础课程时要呈现出多元化,不 能再局限于传统计算机基础知识的普及,要让不同的学生在自己感兴趣的领域不断学 习、不断进步、不断突破。毕业后,在计算机领域发挥出自己在高校学习的优势,为 国家计算机技术和信息产业的发展做出自己的贡献。 计算机程序设计和开发是软件人才学习的基础,只有打下扎实的基础,在学习其 他课程时才能更加得心应手。其实计算机程序设计并没有想象的那么难,使用它可以 实现很多想实现的功能。但是,学习计算机程序设计和开发必须要有持之以恒的耐心 和不断动手实践的决心。 本书在讲解理论知识的同时,还提供了大量的编程实例让读者可以上机操作,锻 炼自己的编程能力;所有语法和编程思想都阐述得通俗易懂,能够让读者轻松入门。 Python 语言已经发展了 30 多年,有很多优秀的软件工程师参与到 Python 语言的开发 工作中,使得 Python 语言有非常完善的参考文档供读者查阅,便于读者找到问题的解 决方法;具有非常丰富的第三方库,大多数需要的功能都可以直接调用其他工程师开 发的接口来实现。 本书较为全面地介绍了 Python 语言的核心知识,把 Python 语言的学习分成基础知 识(第 1~9 章)、高级编程(第 10~13 章) 和 Python 应用(第 14、15 章) 三部分。 各章内容简要介绍如下: 第 1 章对 Python 的发展历史和安装环境做了介绍。 第 2、3 章介绍了 Python 的基础数据类型和数据结构,包括字符串、运算符、列 表、元组和字典等。 第 4 章介绍了 Python 的控制语句,包括选择、循环、break 和 continue 语句。 第 5 章则重点介绍了 Python 的函数,由于函数涉及函数调用和参数传递,学习起 来会有点难度,只要多做一些编程类的练习很快就能掌握。 第 6 章介绍了面向对象编程的一些概念,多态、继承、封装等。 第 7~9 章是 Python 文件操作和异常处理的一些使用方法。 第 10~13 章是 Python 的一些高级使用方法,包括数据库编程、网络编程、图形界 面和多线程编程,这几章对初学者来说有点难度,感兴趣的读者可以深入学习。 II Python 程序设计与应用(第 2 版) 第 14、15 章是 Python 在现代科学研究过程中的一些应用案例。 为了更好地让初学者深入掌握 Python 语言,在每章的后面都设有习题,可以帮助 读者巩固所学知识。 本书由吴其林、孙光灵、张步群任主编,王小超、焦玉清、张倩敏、宋晓晓任副 主编,其中第 1~3 章由张倩敏编写,第 4、5 章由张步群编写,第 6、7 章由宋晓晓编 写,第 8、9 章由孙光灵编写,第 10、11 章由焦玉清编写,第 12、13 章由吴其林编写, 第 14、15 章由王小超编写。 由于编者水平和经验有限,书中难免存在不足和疏漏之处,恳请读者提出宝贵的 意见和建议。 编 者 2024 年 6 月
第 1 章 环境搭建 .................................. 1 1.1 认识 Python.......................................1 1.1.1 Python 简史 ...............................1 1.1.2 Python 语言的特点 ...................1 1.2 Python 的安装...................................2 1.3 Python 的开发环境...........................6 1.3.1 交互式解释器 ...........................6 1.3.2 IDLE ..........................................6 1.3.3 PyCharm 的安装与使用 ...........8 1.4 Python 程序开发过程.....................14 1.5 Python 注释的使用.........................15 小结 ..........................................................15 习题 ..........................................................16 第 2 章 数据类型 ................................ 17 2.1 变量和数据类型 .............................17 2.1.1 变量和赋值 .............................17 2.1.2 整型 .........................................18 2.1.3 浮点型 .....................................19 2.1.4 复数类型 .................................19 2.1.5 布尔类型 .................................19 2.1.6 类型判断 .................................20 2.2 关键字 .............................................21 2.3 字符串 .............................................21 2.3.1 字符串和转义字符 .................21 2.3.2 深入使用字符串 .....................22 2.4 运算符 .............................................25 2.4.1 算术运算符 .............................25 2.4.2 赋值运算符 .............................27 2.4.3 位运算符 .................................28 2.4.4 关系运算符 .............................28 2.4.5 逻辑运算符 .............................29 2.4.6 成员运算符 .............................30 2.4.7 身份运算符 .............................30 2.4.8 运算符的优先级 .....................30 小结 ..........................................................31 习题 ..........................................................31 第 3 章 列表、元组、字典和集合 ....... 33 3.1 列表 .................................................33 3.1.1 列表创建与删除 .....................33 3.1.2 访问列表元素 .........................34 3.1.3 增加列表元素 .........................35 3.1.4 查找列表中的元素 .................36 3.1.5 删除列表元素 .........................37 3.1.6 修改列表元素 .........................38 3.1.7 列表的运算 .............................38 3.1.8 常用方法 .................................38 3.2 元组 .................................................39 3.2.1 创建元组 .................................39 3.2.2 元组的基本操作 .....................40 3.3 字典 .................................................41 3.3.1 字典的创建和删除 .................41 3.3.2 字典元素的访问与修改 .........42 3.3.3 字典元素的运算符操作 .........43 3.3.4 删除字典元素 .........................43 3.3.5 字典的复制和更新 .................44 3.3.6 字典的遍历 .............................45 3.4 集合 .................................................46 3.4.1 集合的创建 .............................46 3.4.2 集合的访问与修改 .................46 3.4.3 集合的删除 .............................47 3.4.4 集合的运算符操作 .................48 小结 ..........................................................49 习题 ..........................................................49 第 4 章 控制语句 ................................ 51 4.1 条件语句 .........................................51 4.1.1 单分支结构:if 语句 ..............51 II Python 程序设计与应用(第 2 版) 4.1.2 双分支结构:if...else 语句.....52 4.1.3 多分支结构:if...elif...else 语句 .........................................54 4.2 循环语句 .........................................55 4.2.1 for 循环语句............................56 4.2.2 嵌套 for 循环语句...................56 4.2.3 while 循环语句........................57 4.3 break 和 continue 语句 ...................59 4.3.1 break 语句................................59 4.3.2 continue 语句...........................60 4.4 pass 语句 .........................................60 小结 ..........................................................60 习题 ..........................................................61 第 5 章 函数........................................ 64 5.1 函数的概念 .....................................64 5.2 函数的定义和调用 .........................65 5.3 函数的参数和参数传递 .................69 5.3.1 函数的形参和实参 .................69 5.3.2 位置参数 .................................70 5.3.3 关键字参数 .............................70 5.3.4 默认值参数 .............................71 5.3.5 参数传递 .................................72 5.4 变量的作用域 .................................73 5.4.1 局部变量 .................................73 5.4.2 全局变量 .................................74 5.5 迭代器和生成器 .............................75 5.5.1 迭代器和生成器 .....................75 5.5.2 排序与 lambda.........................78 5.5.3 高阶函数 .................................79 小结 ..........................................................80 习题 ..........................................................80 第 6 章 面向对象程序设计.................. 82 6.1 面向对象概述 .................................82 6.2 类和对象 .........................................83 6.2.1 类定义语法 .............................84 6.2.2 对象 .........................................84 6.2.3 self 参数...................................85 6.2.4 实例变量 .................................87 6.2.5 类变量 .....................................88 6.3 方法 .................................................89 6.3.1 类方法 .....................................90 6.3.2 实例方法 .................................91 6.3.3 静态方法 .................................91 6.4 封装、继承与多态 .........................92 6.4.1 封装 .........................................92 6.4.2 继承 .........................................95 6.4.3 多态 .........................................98 小结 ........................................................100 习题 ........................................................100 第 7 章 模块与包 .............................. 102 7.1 命名空间 .......................................102 7.1.1 命名空间的分类 ...................102 7.1.2 命名空间的规则 ...................103 7.2 模块 ...............................................105 7.2.1 导入模块 ...........................105 7.2.2 导入与执行语句 ...................106 7.2.3 import 和 from 的使用 ..........108 7.2.4 重新载入模块 ....................... 110 7.2.5 嵌套导入模块 ....................... 111 7.2.6 模块对象属性和命令行 参数 ....................................... 111 7.2.7 模块搜索路径 ....................... 113 7.3 包 ................................................... 114 小结 ........................................................ 116 习题 ........................................................ 117 第 8 章 文件操作 .............................. 119 8.1 文件概述 ....................................... 119 8.2 文件的路径 ...................................120 8.2.1 路径的概念 ...........................120 8.2.2 绝对路径与相对路径 ...........120 8.3 文本文件的读写 ...........................121 8.3.1 文件的打开与关闭 ...............121 8.3.2 文件的读写 ...........................122 8.3.3 文件的定位 ...........................125 8.3.4 文件读写异常处理 ...............126 8.4 文件操作函数 ...............................127 目 录 III 8.4.1 文件操作相关函数 ...............127 8.4.2 文件系统常用操作 ...............128 8.5 二进制文件操作 ...........................128 8.5.1 使用 pickle 模块....................129 8.5.2 使用 struct 模块.....................130 8.5.3 文件批量处理 .......................130 小结 ........................................................132 习题 ........................................................132 第 9 章 异常处理 .............................. 134 9.1 异常的概念 ...................................134 9.2 异常处理机制 ...............................137 9.2.1 try...except 结构 .....................137 9.2.2 try...except...else 结构............138 9.2.3 多异常捕获 ...........................139 9.2.4 try...except...finally 结构 .......142 9.3 异常高级用法 ...............................143 9.3.1 强制触发异常(raise) ........143 9.3.2 断言与上下文管理语句 .......144 小结 ........................................................145 习题 ........................................................146 第 10 章 数据库编程........................... 147 10.1 Python 数据库 API .....................147 10.1.1 全局变量 .............................147 10.1.2 数据库异常 .........................148 10.1.3 连接和游标 .........................149 10.1.4 类型 .....................................150 10.2 轻型数据库与 MySQL ...............151 10.2.1 SQLite 的使用 .....................151 10.2.2 MySQL 的使用 ...................154 10.2.3 数据库应用程序示例 .........156 小结 ........................................................158 习题 ........................................................159 第 11 章 网络编程 ............................... 160 11.1 网络模块 .....................................160 11.1.1 Socket 模块..........................160 11.1.2 urlib 和 urllib2 模块 ............163 11.1.3 其他模块..............................166 11.2 高级模块 SocketServer ...............167 11.2.1 创建 SocketServer TCP 服务器 .............................168 11.2.2 创建 SocketServer TCP 客户端 .............................169 11.2.3 执行 TCP 服务器 和客户端 .............................169 小结 ........................................................170 习题 ........................................................170 第 12 章 tkinter GUI 编程 ................... 171 12.1 tkinter 编程基础..........................171 12.1.1 第一个 tkinter GUI 程序 .....171 12.1.2 组件打包 .............................173 12.1.3 添加按钮和事件处理函数...175 12.1.4 使用布局 .............................177 12.1.5 使用框架 .............................180 12.2 tkinter 组件..................................181 12.2.1 组件通用属性设置 .............181 12.2.2 输入组件(Entry).............183 12.2.3 列表框组件(Listbox) .....186 12.2.4 复选框组件(Checkbutton)...187 12.2.5 标签框架(LabelFrame) ...189 12.2.6 文本框组件(Text) ..........190 12.2.7 顶层窗口组件(Toplevel) ...192 12.2.8 菜单组件(Menu) ............193 12.2.9 工具栏 .................................195 12.2.10 对话框 ...............................195 小结 ........................................................199 习题 ........................................................199 第 13 章 多线程编程........................... 200 13.1 线程概述 .....................................200 13.1.1 进程 .....................................200 13.1.2 线程 .....................................201 13.1.3 多线程与多进程 .................201 13.2 线程的创建与运行 .....................201 13.3 线程的管理 .................................203 13.3.1 阻塞线程 .............................203 13.3.2 后台线程 .............................204 13.4 线程安全 .....................................205 IV Python 程序设计与应用(第 2 版) 13.4.1 线程安全问题 .....................205 13.4.2 互斥锁 .................................205 13.4.3 死锁问题 .............................207 13.5 线程通信 .....................................209 13.5.1 Condition 同步线程 ............209 13.5.2 使用 Event 实现线程间 通信 ..................................... 211 小结 ........................................................212 习题 ........................................................212 第 14 章 Python 计算生态 .................. 214 14.1 常用第三方库 .............................214 14.2 Python 标准库.............................215 14.2.1 math 库 ................................215 14.2.2 random 库 ............................216 14.2.3 datetime/time 库 ..................216 14.2.4 turtle 库 ................................217 14.3 PyInstaller 库...............................218 14.4 jieba 库 ........................................218 14.4.1 分词 .....................................219 14.4.2 添加自定义词典 .................219 14.5 numpy 基础科学计算库 .............220 14.5.1 创建 numpy 数组 ................220 14.5.2 数组与数值的算术运算 .....221 14.5.3 数组与数组的算术运算 .....222 14.5.4 数组的关系运算 .................222 14.5.5 分段函数 .............................223 14.5.6 数组元素访问 .....................223 14.5.7 数组切片操作 .....................224 14.5.8 改变数组形状 .....................224 14.5.9 二维数组转置 .....................225 14.5.10 向量内积 ...........................225 14.5.11 数组的函数运算................226 14.5.12 对数组不同维度元素进行 计算....................................227 14.5.13 广播 ...................................227 14.5.14 计算数组中元素出现次数...228 14.5.15 矩阵运算 ...........................229 14.6 matplotlib 数值计算可视化库....229 14.6.1 绘制正弦曲线 .....................229 14.6.2 绘制散点图 .........................230 14.6.3 绘制饼图 .............................231 14.6.4 绘制带有中文标签 和图例的图 ..........................232 14.6.5 绘制带有公式的图 .............232 14.6.6 绘制三维参数曲线 .............233 14.6.7 绘制三维图形 .....................234 14.7 pandas 数据分析库 .....................235 14.7.1 安装 pandas .........................235 14.7.2 pandas 的数据结构 Series...235 14.7.3 pandas 的数据结构 DataFrame ............................237 小结 ........................................................240 习题 ........................................................241 第 15 章 Python 应用案例 .................. 243 15.1 泰坦尼克号乘客生存分析 .........243 15.1.1 数据来源 .............................243 15.1.2 导入数据 .............................243 15.1.3 查看数据 .............................244 15.1.4 数据清洗 .............................246 15.1.5 数据编码 .............................246 15.1.6 数据可视化 .........................249 15.2 Python 网络爬取.........................255 15.2.1 BeautifulSoup 库 .................255 15.2.2 爬取搜狐体育新闻 .............261 15.3 手写识别系统 .............................263 15.3.1 K 近邻算法原理..................264 15.3.2 KNN 算法实现....................265 15.3.3 KNN 算法优缺点................266 15.3.4 手写数字识别系统 .............266 小结 ........................................................271 习题 ........................................................271 参考文献 .............................................. 272
吴其林,男,安徽肥西县人。2011年12月合肥工业大学计算机应用技术专业博士毕业,获工学博士学位。现工作于巢湖学院信息工程学院,教授,副院长,安徽省教学名师。现为中国计算机学会会员,安徽省计算机学会理事,安徽省电子学会理事。孙光灵,男,安徽淮南市人,工学硕士学位,安徽建筑大学副教授。现为中国计算机学会会员,安徽省人工智能学会会员,中国计算机教育MOOC联盟安徽工委秘书长,信息技术新工科安徽工委秘书长,安徽省高等学校计算机教育研究会副秘书长。主要研究方向为人工智能、图像处理等。发表学术论文20余篇,已获授权实用新型专利、外观设计专利4项,编写教材3部,主讲计算机课程8门。张步群,安徽省合肥市巢湖学院信息工程学院-大学计算机基础教学教研室主任,教学经历:授课名称:C程序设计起止时间:1999年-现在,授课对象:大学本科生,授课学时:每学期72学时教学经历:1.Visual FoxPro程序设计,参编,电子科技大学出版社,2013年7月。 2.参与编写《 C语言程序设计教程》 ,重庆大学出版社,2010年8月。
本书在讲解理论知识的同时,还提供了大量的编程实例让读者可以上机操作,锻 炼自己的编程能力;所有语法和编程思想都阐述得通俗易懂,能够让读者轻松入门。 Python 语言已经发展了 30 多年,有很多优秀的软件工程师参与到 Python 语言的开发工作中,使得 Python 语言有非常完善的参考文档供读者查阅,便于读者找到问题的解 决方法;具有非常丰富的第三方库,大多数需要的功能都可以直接调用其他工程师开 发的接口来实现。