展开全部

主编推荐语

以数学为切入点,以Python编程语言为工具,介绍大量流行的编程题目的解题思路,并且提供了多种解题方案。

内容简介

本书涉及的编程题目领域广泛,包括数字类题目、图形类题目、字符串类题目、数据结构类题目以及游戏类题目等,由浅入深地训练读者的编程思维能力。

通过本书的学习,读者可以掌握使用编程工具解决问题的核心思路,并能够独立思考和解决各种场景下的编程问题。

对于从未接触过编程的人员来说,本书以问题驱动的教学方法,因为有趣且强调动手实践,非常适合初学者快速入门。

对于编程人员来说,本书介绍的解题思路和算法可以帮助编程人员提高代码质量。

本书也适合编程领域的求职者使用,书中提供的编程题目很多都是面试中常见的算法问题。

目录

  • 版权信息
  • 作者介绍
  • 内容简介
  • 前言
  • 第1章 走进Python世界
  • 1.1 认识Python
  • 1.1.1 Python的由来
  • 1.1.2 Python可以做什么
  • 1.2 开发环境准备
  • 1.2.1 安装Python语言包
  • 1.2.2 使用Sublime Text编程工具
  • 1.3 编程中的基础概念
  • 1.3.1 面向过程编程中的基础概念
  • 1.3.2 面向对象编程中的基础概念
  • 1.4 Python语法初步
  • 1.4.1 编程风格
  • 1.4.2 变量与数据类型
  • 1.4.3 运算符
  • 1.4.4 流程控制语句
  • 1.4.5 常用的数学函数
  • 1.4.6 字符串操作相关方法
  • 1.4.7 列表操作相关方法
  • 1.4.8 字典操作相关方法
  • 1.4.9 函数
  • 1.5 Python面向对象编程
  • 1.5.1 Python中的类
  • 1.5.2 类的继承
  • 1.5.3 模块和包的应用
  • 本章结语
  • 第2章 编程与数学
  • 2.1 二进制运算
  • 2.1.1 计算机的思考方式
  • 2.1.2 计算机中数据的存储方式
  • 2.2 灵活使用程序打印数据
  • 2.2.1 小试牛刀——打印乘法口诀表
  • 2.2.2 小试牛刀——打印简单图形
  • 2.3 小试牛刀
  • 2.3.1 接收用户输入
  • 2.3.2 在终端运行的简易计算器
  • 本章结语
  • 第3章 有趣的数字
  • 3.1 阿姆斯特朗数
  • 3.1.1 什么是阿姆斯特朗数
  • 3.1.2 算法与实现——判断一个数是否为阿姆斯特朗数
  • 3.2 自除数
  • 3.2.1 算法与实现——筛选自除数
  • 3.2.2 使用高级循环方法对代码进行优化
  • 3.3 完全平方数
  • 3.3.1 算法实现——四平方数和定理
  • 3.3.2 编程实现——解决完全平方数问题
  • 3.4 强整数
  • 3.4.1 编程实现——筛选强整数
  • 3.4.2 代码改进——强整数检索上限的寻找
  • 3.5 回文数
  • 3.5.1 编程实现——判断回文数
  • 3.5.2 代码改进——求回文素数
  • 3.6 丑数
  • 3.6.1 编程实现——如何判断丑数
  • 3.6.2 代码改进——尝试找到第n个丑数
  • 3.6.3 代码改进——解决丑数扩展问题
  • 3.6.4 算法改进——使用二分查找第n个丑数
  • 3.7 完美数
  • 3.7.1 完美数的故事
  • 3.7.2 编程实现——如何判断完美数
  • 3.8 快乐数
  • 编程实现——如何判断快乐数
  • 3.9 顺次数
  • 编程实现——查找顺次数
  • 3.10 步进数
  • 编程实现——查找步进数
  • 3.11 中心对称数
  • 3.11.1 编程实现——通过字典映射来判断中心对称数
  • 3.11.2 代码改进——查找指定位数的中心对称数
  • 3.11.3 代码改进——确定中心对称数的个数
  • 3.12 累加数
  • 编程实现——如何判断累加数
  • 3.13 易混淆数
  • 编程实现——如何判断易混淆数
  • 本章结语
  • 第4章 有趣的数字
  • 4.1 二进制相关运算
  • 4.1.1 编程实现——二进制求和
  • 4.1.2 编程实现——求十进制数的反码
  • 4.1.3 编程实现——计算汉明距离
  • 4.1.4 代码改进——求二进制数中1的最长间距
  • 4.1.5 代码改进——颠倒二进制数
  • 4.2 玩转四则运算
  • 4.2.1 编程实现——一个数的各位相加
  • 4.2.2 编程实现——不用加减乘除运算符做加法
  • 4.2.3 代码改进——求阶乘的尾数
  • 4.3 数字间的特殊运算
  • 4.3.1 编程实现——平方根函数
  • 4.3.2 编程实现——求平方数之和
  • 4.3.3 编程实现——判断一个数是否为某数的幂次方
  • 4.4 计算质数
  • 4.4.1 编程实现——统计质数个数
  • 4.4.2 编程实现——深度判断二进制数中特殊数的个数
  • 4.5 数字转换
  • 4.5.1 编程实现——整数转换
  • 4.5.2 编程实现——整数转换成十六进制数
  • 4.5.3 编程实现——将分数转换成小数
  • 4.5.4 编程实现——罗马数字转整数
  • 4.5.5 代码改进——整数转罗马数字
  • 本章结语
  • 第5章 图形世界的点线面
  • 5.1 有趣的点与线
  • 5.1.1 编程实现——连点成线
  • 5.1.2 编程实现——最短时间内访问所有的点
  • 5.1.3 编程实现——找到穿过最多点的直线
  • 5.2 图形的奥妙
  • 5.2.1 编程实现——输出杨辉三角
  • 5.2.2 代码改进——尝试输出杨辉三角的某一行
  • 5.2.3 编程实现——规划一个矩形合理的长和宽
  • 5.2.4 编程实现——判断矩形是否重叠
  • 5.2.5 代码改进——判断圆和矩形是否有重叠
  • 5.2.6 编程实现——统计有效三角形的个数
  • 5.3 周长与面积
  • 5.3.1 编程实现——求重叠矩形的面积
  • 5.3.2 编程实现——找到最小面积的矩形
  • 5.3.3 编程实现——求三角形的最大周长
  • 5.3.4 编程实现——求最大的三角形面积
  • 5.4 凸多边形
  • 5.4.1 什么是凸多边形
  • 5.4.2 向量叉乘
  • 5.4.3 编程实现——判断凸多边形
  • 5.5 三维图形
  • 5.5.1 编程实现——计算三维形体的表面积
  • 5.5.2 代码改进——求解三维形体的投影面积
  • 本章结语
  • 第6章 探索字符的世界
  • 6.1 字符串的排列
  • 6.1.1 编程实现——格式化字符串
  • 6.1.2 编程实现——格式化字符串进阶
  • 6.1.3 编程实现——字符串全排列
  • 6.1.4 编程实现——根据字符出现的频率进行排序
  • 6.1.5 编程实现——交换字符
  • 6.2 字符串的分割
  • 6.2.1 平衡字符串的分割
  • 6.2.2 编程实现——分割出回文字符串
  • 6.2.3 编程实现——分割字符串获取最大分数
  • 6.3 字符串的查找与统计
  • 6.3.1 编程实现——统计连续字符的长度
  • 6.3.2 编程实现——检查字符串中所有的字符是否唯一
  • 6.3.3 编程实现——查找第一次出现的唯一字符
  • 6.3.4 编程实现——求最长不含重复字符的子字符串长度
  • 6.3.5 编程实现——查找常用字符
  • 6.4 字符串的变换
  • 6.4.1 编程实现——字符串平移
  • 6.4.2 编程实现——字符串平移加密
  • 6.4.3 编程实现——压缩字符串
  • 6.4.4 编程实现——字符串解压
  • 6.4.5 编程实现——将数字翻译成字符串
  • 本章结语
  • 第7章 探索字符的世界
  • 7.1 单词提取
  • 7.1.1 编程实现——统计字符串中的单词个数
  • 7.1.2 编程实现——返回字符最后一个单词的长度
  • 7.1.3 编程实现——统计最常用的单词
  • 7.1.4 编程实现——拆分单词
  • 7.1.5 编程实现——计算单词的最短距离
  • 7.2 词句重组
  • 7.2.1 编程实现——从字符串中返回字母组成单词
  • 7.2.2 编程实现——语句逆序
  • 7.2.3 编程实现——语句重排
  • 7.2.4 编程实现——单词前缀替换
  • 7.3 单词缩写
  • 7.3.1 编程实现——判断是否有相同的缩写
  • 7.3.2 编程实现——列举单词所有缩写形式
  • 7.4 语句处理
  • 7.4.1 编程实现——比较语句的差异
  • 7.4.2 编程实现——分析词组
  • 7.5 回文字符串
  • 7.5.1 编程实现——验证回文字符串
  • 7.5.2 编程实现——构造回文字符串
  • 7.5.3 编程实现——找到最长的回文子字符串
  • 7.5.4 编程实现——拼接构成回文串
  • 7.6 字符串的复杂操作
  • 7.6.1 编程实现——字符串解码
  • 7.6.2 编程实现——构建IP地址
  • 7.6.3 编程实现——验证IP地址的有效性
  • 7.6.4 编程实现——实现模糊匹配
  • 本章结语
  • 第8章 玩转数据结构
  • 8.1 获取列表中的信息
  • 8.1.1 编程实现——寻找列表平衡点
  • 8.1.2 编程实现——找到列表中缺失的元素
  • 8.1.3 代码改进——寻找所有整数中两数之差绝对值的最大值
  • 8.1.4 代码改进—— 根据条件获取列表中的值
  • 8.1.5 代码改进——寻找列表中连续元素的和的最大值
  • 8.1.6 代码改进——寻找列表中最长的连续递增序列
  • 8.1.7 代码改进——寻找重复次数最多的元素
  • 8.1.8 代码改进——寻找列表的凸点
  • 8.2 列表操作
  • 8.2.1 编程实现——将列表中的0进行后置
  • 8.2.2 代码改进——递增列表的合并
  • 8.2.3 代码改进——向列表中插入元素
  • 8.2.4 代码改进——清除重复元素
  • 8.2.5 代码改进——列表分隔问题
  • 8.2.6 代码改进——对列表进行原地排序
  • 8.2.7 代码改进——判断列表是否有序
  • 8.2.8 编程实现——构建斐波那契数列
  • 8.3 列表中元素的和
  • 8.3.1 编程实现——找到列表中合适的两个元素
  • 8.3.2 代码改进——找出列表中所有满足条件的三元素组
  • 8.4 简单链表操作
  • 8.4.1 编程实现——遍历链表
  • 8.4.2 代码改进——删除链表中的节点
  • 8.4.3 代码改进——链表合并
  • 8.4.4 代码改进——链表转整数
  • 8.5 特殊性质的链表
  • 8.5.1 编程实现——判断回文链表
  • 8.5.2 代码改进——判断环形链表
  • 8.5.3 链表重构——奇偶排列的链表
  • 8.6 高级链表操作
  • 8.6.1 编程实现——链表大数求和
  • 8.6.2 代码改进——链表重排
  • 8.6.3 代码改进——对链表进行原地排序
  • 8.6.4 代码改进——旋转链表
  • 8.6.5 代码改进——交换链表相邻的节点
  • 8.6.6 编程实现——设计链表结构
  • 本章结语
  • 第9章 玩转数据结构
  • 9.1 简单栈数据结构
  • 9.1.1 编程实现——设计栈结构
  • 9.1.2 代码改进——利用栈清理无效的括号
  • 9.1.3 代码改进——处理平衡括号
  • 9.1.4 代码改进——进行括号内容逆序
  • 9.1.5 代码改进——删除最外层括号
  • 9.1.6 代码改进——补充缺失的括号
  • 9.1.7 代码改进——递归删除重复的相邻字符
  • 9.1.8 代码改进——实现条件运算符
  • 9.1.9 代码改进——简化文件路径
  • 9.2 堆的简单应用
  • 9.2.1 什么是堆
  • 9.2.2 编程实现——查找高频单词
  • 9.2.3 编程实现——寻找最接近原点的n个点
  • 9.3 队列的简单应用
  • 9.3.1 编程实现——设计队列
  • 9.3.2 代码改进——设计循环队列
  • 本章结语
  • 第10章 玩转数据结构
  • 10.1 二叉树的判定
  • 10.1.1 编程实现——解析二叉树的深度
  • 10.1.2 代码改进——平衡二叉树的判定
  • 10.1.3 代码改进——对称二叉树的判定
  • 10.1.4 代码改进——判断两棵二叉树是否相同
  • 10.1.5 代码改进——二叉树相加
  • 10.1.6 代码改进——单值二叉树的判定
  • 10.2 二叉树的遍历
  • 10.2.1 编程实现——二叉树的前序遍历
  • 10.2.2 代码改进——二叉树的中序遍历和后序遍历
  • 10.2.3 代码改进——根据层序遍历二叉树
  • 10.2.4 代码改进——垂直遍历二叉树
  • 10.2.5 代码改进——将二叉树的遍历方式推广到N叉树
  • 10.3 构造二叉树
  • 10.3.1 编程实现——从遍历结果构造二叉树
  • 10.3.2 代码改进——通过有序列表构造二叉搜索树
  • 10.3.3 代码改进——在二叉搜索树中插入元素
  • 10.4 删除二叉树中的节点
  • 10.4.1 编程实现——在二叉搜索树中删除节点
  • 10.4.2 代码改进——清除二叉树中的指定叶子节点
  • 10.5 获取二叉树中存储的信息
  • 10.5.1 编程实现——判断是否为堂兄弟节点
  • 10.5.2 代码改进——获取二叉树中指定节点值的和
  • 10.5.3 代码改进——计算二叉树路径的和
  • 10.5.4 代码改进——计算树及所有子树的平均值
  • 10.5.5 代码改进——完全二叉树的节点个数
  • 10.6 图结构的应用
  • 10.6.1 编程实现——网格中的最近距离
  • 10.6.2 代码改进——找到无环图中所有的路径
  • 本章结语
  • 第11章 烧脑游戏编程
  • 11.1 上楼梯
  • 11.2 猜数字游戏
  • 11.3 套餐组合问题
  • 11.4 种树问题
  • 11.5 算术机器人
  • 11.6 单行的键盘
  • 11.7 统计运动员的名次
  • 11.8 分金币
  • 11.9 传绣球游戏
  • 11.10 扑克游戏
  • 11.11 酒瓶子问题
  • 11.12 所有可能的木板长度
  • 11.13 电脑高手
  • 11.14 灯泡问题
  • 11.14.1 亮着的灯泡
  • 11.14.2 不同功能的按钮
  • 11.14.3 蓝色灯光的灯泡
  • 11.14.4 翻转灯泡的状态
  • 11.15 宝石鉴定
  • 11.16 翻转游戏
  • 11.17 井字棋的输赢判定
  • 11.18 分发糖果问题
  • 11.18.1 怎样分糖果可以尽可能多地使儿童满足
  • 11.18.2 给弟弟分糖果
  • 11.18.3 分发糖果
  • 11.19 排布硬币
  • 11.20 列表变换游戏
  • 11.21 国际象棋中的车
  • 11.22 计算员工的平均工资
  • 11.23 比赛计分
  • 11.24 股票买卖的最大盈利
  • 11.25 单词组合游戏
  • 本章结语
  • 第12章 烧脑游戏编程
  • 12.1 统计战舰个数
  • 12.2 田忌赛马
  • 12.3 炸弹人游戏
  • 12.4 消除数字
  • 12.5 为赛车加油
  • 12.6 马走日
  • 12.7 最大的岛屿面积
  • 12.8 跳跃游戏
  • 12.9 拿石子游戏
  • 12.10 分割绳子
  • 12.11 载人过河
  • 12.12 迅捷斥候
  • 12.13 水壶问题
  • 12.14 叠罗汉
  • 12.15 活字印刷术
  • 本章结语
  • 第13章 巧用编程工具
  • 13.1 更加强大的编辑器
  • 13.1.1 下载与配置VSCode
  • 13.1.2 进行Python代码的调试
  • 13.2 编写有趣的界面应用
  • 13.2.1 使用Python开发桌面应用
  • 13.2.2 进行用户交互
  • 13.3 看得见的游戏
  • 使用Pygame游戏开发框架
  • 13.4 各种有趣而强大的Python模块
  • 13.4.1 快速搭建网站
  • 13.4.2 智能爬虫
  • 本章结语
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

清华大学出版社

清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。