下载链接
封面
内容提要
本书采用“问题驱动”、“基础先行”和“实例和实践相结合”的方式,讲述如何使用Python语言进行程序设计。本书首先介绍Python程序设计的基本概念,接着介绍面向对象程序设计方法,最后介绍算法与数据结构方面的内容。为了帮助学生更好地掌握相关知识,本书每章都包括以下模块:学习目标,引言,关键点,检查点,问题,本章总结,测试题,编程题,注意、提示和警告。
本书可以作为高等院校计算机及相关专业Python程序设计课程的教材,也可以作为Python程序设计的自学参考书。
目录
目录
- 封面
- 书名
- 版权
- 前言
- 目录
- 第一部分 程序设计基础
- 第1章 计算机、程序和Python概述
- 1.1 引言
- 1.2 什么是计算机
- 1.2.1 中央处理器
- 1.2.2 比特和字节
- 1.2.3 内存
- 1.2.4 存储设备
- 1.2.5 输入和输出设备
- 1.2.6 通信设备
- 1.3 程序设计语言
- 1.3.1 机器语言
- 1.3.2 汇编语言
- 1.3.3 高级语言
- 1.4 操作系统
- 1.4.1 控制和管理系统行为
- 1.4.2 调度和分配系统资源
- 1.4.3 调度操作
- 1.5 Python的历史
- 1.6 开始学习Python 1.6 开始学习 Python
- 1.6.1 启动Python 1.6.1 启动 Python
- 1.6.2 创建Python源代码文件
- 1.6.3 使用Python完成算术运算
- 1.7 程序设计风格和文档
- 1.7.1 恰当的注释和注释风格
- 1.7.2 恰当的空格
- 1.8 程序设计错误
- 1.8.1 语法错误
- 1.8.2 运行时错误
- 1.8.3 逻辑错误
- 1.9 开始学习图形化程序设计
- 1.9.1 绘制图形并给图形添加颜色
- 1.9.2 将笔移到任何位置
- 1.9.3 绘制奥林匹克环标志
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第2章 基本程序设计
- 2.1 引言
- 2.2 编写一个简单的程序
- 2.3 从控制台读取输入
- 2.4 标识符
- 2.5 变量、赋值语句和赋值表达式
- 2.6 同时赋值
- 2.7 定名常量
- 2.8 数值数据类型和运算符
- 2.8.1 运算符、∥和
- 2.8.2 运算符%
- 2.8.3 科学记数法
- 2.9 计算表达式和运算符优先级
- 2.10 增强型赋值运算符
- 2.11 类型转换和四舍五入
- 2.12 实例研究:显示当前时间
- 2.13 软件开发流程
- 2.14 实例研究:计算距离
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第3章 数学函数、字符串和对象
- 3.1 引言
- 3.2 常见的Python函数
- 3.3 字符串和字符
- 3.3.1 ASCII码 3.3.1 ASCII 码
- 3.3.2 统一码
- 3.3.3 函数ord和chr 3.3.3 函数 ord 和 chr
- 3.3.4 转义序列
- 3.3.5 不换行打印
- 3.3.6 函数str
- 3.3.7 字符串连接操作
- 3.3.8 从控制台读取字符串
- 3.4 实例研究:最小数量的硬币
- 3.5 对象和方法简介
- 3.6 格式化数字和字符串
- 3.6.1 格式化浮点数
- 3.6.2 用科学记数法格式化
- 3.6.3 格式化成百分数
- 3.6.4 调整格式
- 3.6.5 格式化整数
- 3.6.6 格式化字符串
- 3.7 绘制各种图形
- 3.8 绘制带颜色和字体的图形
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第4章 选择
- 4.1 引言
- 4.2 布尔类型、数值和表达式
- 4.3 产生随机数字
- 4.4 if语句
- 4.5 实例研究:猜生日
- 4.6 双向if-else语句
- 4.7 嵌套if和多向if-elif-else语句
- 4.8 选择语句中的常见错误
- 4.9 实例研究:计算身体质量指数
- 4.10 实例研究:计算税款
- 4.11 逻辑运算符
- 4.12 实例研究:判定闰年
- 4.13 实例研究:彩票
- 4.14 条件表达式
- 4.15 运算符的优先级和结合方向
- 4.16 检测一个对象的位置
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第5章 循环
- 5.1 引言
- 5.2 while循环
- 5.2.1 实例研究:猜数字
- 5.2.2 循环设计策略
- 5.2.3 实例研究:多道减法题测验
- 5.2.4 根据用户确认控制循环
- 5.2.5 使用哨兵值控制循环
- 5.2.6 输入输出重定向
- 5.3 for循环
- 5.4 嵌套循环
- 5.5 最小化数值错误
- 5.6 实例研究
- 5.6.1 问题:找出最大公约数
- 5.6.2 问题:预测未来学费
- 5.6.3 问题:蒙特卡罗模拟
- 5.7 关键字break和continue 5.7 关键字 break 和 continue
- 5.8 实例研究:显示素数
- 5.9 实例研究:随意行走
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第6章 函数
- 6.1 引言
- 6.2 定义一个函数
- 6.3 调用一个函数
- 6.4 带返回值或不带返回值的函数
- 6.5 位置参数和关键字参数
- 6.6 通过传引用来传递参数
- 6.7 模块化代码
- 6.8 实例研究:将十进制数转换为十六进制数
- 6.9 变量的作用域
- 6.10 默认参数
- 6.11 返回多个值
- 6.12 实例研究:生成随机ASCII码字符
- 6.13 函数抽象和逐步求精
- 6.13.1 自顶向下设计
- 6.13.2 自顶向下和自底向上的实现
- 6.13.3 实现细节
- 6.13.4 逐步求精的优势
- 6.14 实例研究:可重用图形函数
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第二部分 面向对象程序设计
- 第7章 对象和类
- 7.1 引言
- 7.2 为对象定义类
- 7.2.1 定义类
- 7.2.2 构造对象
- 7.2.3 访问对象成员
- 7.2.4 self参数
- 7.2.5 举例:使用类
- 7.3 UML类图 7.3 UML 类图
- 7.4 不变对象和可变对象
- 7.5 隐藏数据域
- 7.6 类的抽象与封装
- 7.7 面向对象的思考
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第8章 更多字符串和特殊方法
- 8.1 引言
- 8.2 str类 8.2 字符串类
- 8.2.1 创建字符串
- 8.2.2 处理字符串的函数
- 8.2.3 下标运算符
- 8.2.4 截取运算符[start: end]
- 8.2.5 连接运算符+和复制运算符
- 8.2.6 in和not in运算符 8.2.6 in 和 not in 运算符
- 8.2.7 比较字符串
- 8.2.8 迭代字符串
- 8.2.9 测试字符串
- 8.2.10 搜索子串
- 8.2.11 转换字符串
- 8.2.12 删除字符串中的空格
- 8.2.13 格式化字符串
- 8.3 实例研究:校验回文串
- 8.4 实例研究:将十六进制数转换为十进制数
- 8.5 运算符重载和特殊方法
- 8.6 实例研究:Rational类
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第9章 使用Tkinter进行GUI程序设计 第 9 章 使用 Tkinter 进行图形用户界面程序设计
- 9.1 引言
- 9.2 开始使用Tkinter
- 9.3 处理事件
- 9.4 小构件类
- 9.5 画布
- 9.6 几何管理器 9.6 几何管理器
- 9.6.1 网格管理器
- 9.6.2 包管理器
- 9.6.3 位置管理器
- 9.7 实例研究:贷款计算器
- 9.8 显示图像
- 9.9 菜单
- 9.10 弹出菜单
- 9.11 鼠标、按键事件和绑定
- 9.12 动画
- 9.13 滚动条
- 9.14 标准对话框
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第10章 列表
- 10.1 引言
- 10.2 列表基础
- 10.2.1 创建列表
- 10.2.2 列表是一种序列类型
- 10.2.3 列表使用的函数
- 10.2.4 下标运算符
- 10.2.5 列表截取[start:end]
- 10.2.6 +、*和innot in运算符
- 10.2.7 使用for循环遍历元素
- 10.2.8 比较列表
- 10.2.9 列表解析
- 10.2.10 列表方法
- 10.2.11 将字符串分成列表
- 10.2.12 输入列表
- 10.2.13 对列表移位
- 10.2.14 简化代码
- 10.3 实例研究:乐透数
- 10.4 实例研究:一副扑克牌
- 10.5 扑克牌图形用户界面
- 10.6 复制列表
- 10.7 将列表传递给函数
- 10.8 从函数返回一个列表
- 10.9 实例研究:统计每个字母的出现次数
- 10.10 查找列表
- 10.10.1 线性查找法
- 10.10.2 二分查找法
- 10.11 排序列表
- 10.11.1 选择排序
- 10.11.2 插入排序
- 10.12 实例学习:弹球
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第11章 多维列表
- 11.1 引言
- 11.2 处理二维列表
- 11.2.1 使用输入值初始化列表
- 11.2.2 使用随机数初始化列表
- 11.2.3 打印列表
- 11.2.4 对所有元素求和
- 11.2.5 按列求和
- 11.2.6 找出和最大的行
- 11.2.7 随意打乱
- 11.2.8 排序
- 11.3 将二维列表传递给函数
- 11.4 问题:给多选题评分
- 11.5 问题:找出距离最近的点对
- 11.6 图形用户界面:找出距离最近的点对
- 11.7 问题:数独
- 11.8 实例研究:数独图形用户界面
- 11.9 多维列表
- 11.9.1 问题:每日温度和湿度
- 11.9.2 问题:猜生日
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第12章 继承和多态
- 12.1 引言
- 12.2 父类和子类
- 12.3 覆盖方法
- 12.4 object类 12.4 object 类
- 12.5 多态和动态绑定
- 12.6 isinstance函数 12.6 isinstance 函数
- 12.7 实例研究:可重用时钟
- 12.8 类之间的关系
- 12.8.1 关联
- 12.8.2 聚合和组合
- 12.9 实例研究:设计Course类
- 12.10 为栈设计类
- 12.11 实例研究:FigureCanvas类
- 12.11 实例研究: FigureCanvas 类
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第13章 文件和异常处理
- 13.1 引言
- 13.2 文本输入和输出
- 13.2.1 打开一个文件
- 13.2.2 写入数据
- 13.2.3 测试文件的存在性
- 13.2.4 读数据
- 13.2.5 从文件读取所有数据
- 13.2.6 追加数据
- 13.2.7 读写数值数据
- 13.3 文件对话框
- 13.4 实例研究:统计文件中的字符个数
- 13.5 从网站上获取数据
- 13.6 异常处理
- 13.7 抛出异常
- 13.8 使用对象处理异常
- 13.9 定义自定制异常类
- 13.10 使用Pickling进行二进制IO
- 13.10.1 卸载和加载对象
- 13.10.2 检测文件末尾
- 13.11 实例研究:地址簿
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第三部分 数据结构和算法
- 第14章 元组、集合和字典
- 14.1 引言
- 14.2 元组
- 14.3 集合
- 14.3.1 创建集合 14.3.1 创建集合
- 14.3.2 操作和访问集合
- 14.3.3 子集和超集
- 14.3.4 相等性测试
- 14.3.5 集合运算
- 14.4 比较集合和列表的性能
- 14.5 实例研究:统计关键字
- 14.6 字典 14.6 字典
- 14.6.1 创建一个字典
- 14.6.2 添加、修改和获取值
- 14.6.3 删除条目
- 14.6.4 循环条目
- 14.6.5 len函数
- 14.6.6 检测一个关键字是否在字典中
- 14.6.7 相等性检测
- 14.6.8 字典方法
- 14.7 实例研究:单词的出现次数
- 关键术语
- 本章总结
- 测试题
- 编程题
- 第15章 递归
- 15.1 引言
- 15.2 实例研究:计算阶乘
- 15.3 实例研究:计算斐波那契数
- 15.4 使用递归解决问题
- 15.5 递归辅助函数
- 15.5.1 选择排序
- 15.5.2 二分查找
- 15.6 实例研究:求出目录的大小
- 15.7 实例研究:汉诺塔
- 15.8 实例研究:分形
- 15.9 实例研究:八皇后
- 15.10 递归和迭代
- 15.11 尾递归
- 关键术语
- 本章总结
- 测试题
- 编程题
- 附录A Python关键字
- 附录B ASCII字符集
- 附录C 数制系统