全新正版书籍,24小时发货,可开发票。
¥ 47.6 5.3折 ¥ 89 全新
库存6件
作者张益珲
出版社清华大学出版社
ISBN9787302589761
出版时间2021-10
装帧平装
开本16开
定价89元
货号29308256
上书时间2024-12-20
首先感谢读者愿意花时间阅读本书。选择本书说明你了解编程,或者至少对编程有兴趣。本书定义为一本计算机科学的编程书其实并不确切,因为书中并不会介绍晦涩难懂的编程语言语法,也不会介绍实际应用中的项目开发方法,本书只是提供了一系列的问题,然后介绍如何使用编程这种工具来解决它。但是将本书定义为数学学科的图书也不正确,虽然书中很多问题与数学有关,有时甚至需要我们了解底层的数学原理才能解决,但是同样,对于本书来说,数学也是解决问题的工具。那么,我们姑且称此书为“问题之书”吧。
阅读任何一本书的过程实际上都是一种学习的过程,你现在关心的应该是如何学习本书,以及本书能够带给你什么。首先,阅读本书需要有一定的编程基础,至少了解和学习过一门编程语言,当然如果掌握了Python编程语言就好不过了。在本书中,每一节的开头都会提出一个问题,当你看到问题时,可以先思考如何解决,尝试自己动手编程来解决此问题,无论你是否能够成功解答,思考的过程都能使你受益,自主尝试解答后,再继续阅读书中提供的解题思路与方法,终与自己的思考结果相结合,从而不断进步。
在章节安排上,本书共13章。除了第1章与第13章之外,每一章都是一个独立的专题,并没有严格的先后顺序。因此,如果你在阅读本书时对某一章节的内容不太感兴趣,完全可以跳过它。但是笔者依然建议按照书中章节的安排顺序进行阅读,从易到难的学习节奏对大多数读者来说是更科学的。本书中的示例题目收集自互联网上流行的编程训练集,笔者对其中的题目大多都进行了修正和改编,以期更适合入门级的读者学习。
第1章是本书的入门章节,本书中提供的问题解答示例都是以Python编程语言为基础进行编程解答的,因此读者需要对Python编程语言本身有简单的了解。在本章中,将首先为读者介绍Python语言在编程领域的用武之地,本书之所以选择Python作为主语言,正是由于其拥有使用简单、应用广泛的特点。你完全不需要担心没有基础能否顺利地学习,本章会对Python中核心的基础语法进行介绍,只要掌握了这些技能,阅读本书的后续章节就不会有任何障碍。本章也将带领读者一起安装完成Python编程所需的相关开发环境。
第2章以数学为切入点,介绍编程在数学领域的应用方式,也将向读者介绍一些基础的计算机原理知识,帮助读者理解程序的工作原理。
第3、4章提供了一系列与数字相关的编程题。第3章主要介绍特殊的数字,比如阿姆斯特朗数、回文数、完全平方数等。第4章主要介绍与数字计算相关的编程题,例如二进制运算、分数运算等。通过这些题目的练习,能够使读者更加深刻地理解二进制,运用二进制。
第5章介绍的编程题都与几何图形相关,与图形相关的题目能够锻炼大脑的抽象思维能力。本章提供的题目重点关注生活中几何图形的点、线、面的关系,其中可能会使用到一些简单的几何定理,但更多需要读者对问题进行思考与分析,设计出合适的算法来编写程序解决问题。
第6、7章的题目都与字符相关,字符与字符串的操作是实际编程工作中非常重要的技能,因此本章提供的题目相对更加面向应用,在计算机语义识别、数据整理与报表等诸多领域,字符串操作技术都有广泛应用。
第8~10章是计算机数据结构相关的内容,通过对数组、链表、堆栈和树相关结构的题目进行练习,可以帮助读者更加深入地理解数据结构的原理以及数据结构设计的巧妙之处。这几章的题目难度也略高。
第11、12章以游戏的方式来介绍编程题目,在数学上,我们也称此类题目为应用题。其中提供的大部分题目都来自生活中的场景,如何将生活场景问题进行抽象,之后通过编程的方式解决,是本章的核心内容。
第13章是本书的附加章节,当读者完成本书前12章的学习后,相信对编程也会有新的理解。此时对于读者来说,编程不应该是结束,而是新的开始。本章将向读者介绍更多Python编程领域,例如网站开发、游戏开发等,读者可以选择自己感兴趣的内容继续深入学习。
后,对于本书的出版,感谢支持笔者的家人和朋友,感谢清华大学出版社王金柱编辑的勤劳付出。在王编辑的指导下,笔者才得以完成本书的章节规划、内容修正等工作。重中之重是感谢读者的耐心,笔者由衷地希望本书可以带给读者预期的收获。无论是学习还是工作,都希望读者在阅读本书后能够更上一层楼。同时,由于编者水平所限,书中难免出现疏漏和欠妥之处,欢迎读者批评指正。
本书源码获取
读者可用微信扫描下方的二维码下载本书源代码。如果在学习本书的过程中遇到问题,请联系booksaga@163.com,邮件主题为“每个人的Python:数学、算法和游戏编程训练营”。
张益珲
2021年4月24日
本书以数学为切入点,以Python编程语言为工具,介绍大量流行的编程题目的解题思路,并且提供了多种解题方案。本书涉及的编程题目领域广泛,包括数字类题目、图形类题目、字符串类题目、数据结构类题目以及游戏类题目等,由浅入深地训练读者的编程思维能力。通过本书的学习,读者可以掌握使用编程工具解决问题的核心思路,并能够独立思考和解决各种场景下的编程问题。 对于从未接触过编程的人员来说,本书以问题驱动的教学方法,因为有趣且强调动手实践,非常适合初学者快速入门。对于编程人员来说,本书介绍的解题思路和算法可以帮助编程人员提高代码质量。本书也适合编程领域的求职者使用,书中提供的编程题目很多都是面试中常见的算法问题。
本书以数学为切入点,以Python编程语言为工具,介绍大量流行的编程题目的解题思路,并且提供了多种解题方案。本书涉及的编程题目领域广泛,包括数字类题目、图形类题目、字符串类题目、数据结构类题目以及游戏类题目等,由浅入深地训练读者的编程思维能力。通过本书的学习,读者可以掌握使用编程工具解决问题的核心思路,并能够独立思考和解决各种场景下的编程问题。 对于从未接触过编程的人员来说,本书以问题驱动的教学方法,因为有趣且强调动手实践,非常适合初学者快速入门。对于编程人员来说,本书介绍的解题思路和算法可以帮助编程人员提高代码质量。本书也适合编程领域的求职者使用,书中提供的编程题目很多都是面试中常见的算法问题。
张益珲(网名:珲少)
多年iOS开发经验,51CTO学院、CSDN学院签约讲师 ,主要从事移动端应用开发,曾就职于国内知名电商网站,从事iOS端应用程序的业务开发与性能优化工作。目前在国内知名社交产品公司从事IM系统的架构设计工作。对iOS开发、React Native和Flutter跨平台开发及JavaScript前端开发都拥有丰富的经验。已出版《iOS开发实战:从零基础到App Store上架》《React Native全教程:移动端跨平台应用开发》《iOS开发实战:从零基础到上架App Store(第3版)》《Swift从零到精通iOS开发》等多本编程著作。开源中国特邀技术专家,发表相关技术博客400余篇,访问量100万余次。
第1章 走进Python世界 1
1.1 认识Python 1
1.1.1 Python的由来 1
1.1.2 Python可以做什么 2
1.2 开发环境准备 3
1.2.1 安装Python语言包 3
1.2.2 使用Sublime Text编程工具 4
1.3 编程中的基础概念 6
1.3.1 面向过程编程中的基础概念 6
1.3.2 面向对象编程中的基础概念 8
1.4 Python语法初步 9
1.4.1 编程风格 9
1.4.2 变量与数据类型 10
1.4.3 运算符 13
1.4.4 流程控制语句 15
1.4.5 常用的数学函数 17
1.4.6 字符串操作相关方法 18
1.4.7 列表操作相关方法 20
1.4.8 字典操作相关方法 20
1.4.9 函数 21
1.5 Python面向对象编程 22
1.5.1 Python中的类 23
1.5.2 类的继承 24
1.5.3 模块和包的应用 25
本章结语 27
第2章 编程与数学 28
2.1 二进制运算 28
2.1.1 计算机的思考方式 29
2.1.2 计算机中数据的存储方式 30
2.2 灵活使用程序打印数据 31
2.2.1 小试牛刀——打印乘法口诀表 31
2.2.2 小试牛刀——打印简单图形 33
2.3 小试牛刀——简易计算器 36
2.3.1 接收用户输入 37
2.3.2 在终端运行的简易计算器 38
本章结语 40
第3章 有趣的数字——特殊数 41
3.1 阿姆斯特朗数 41
3.1.1 什么是阿姆斯特朗数 42
3.1.2 算法与实现——判断一个数是否为阿姆斯特朗数 42
3.2 自除数 43
3.2.1 算法与实现——筛选自除数 43
3.2.2 使用高级循环方法对代码进行优化 44
3.3 完全平方数 45
3.3.1 算法实现——四平方数和定理 45
3.3.2 编程实现——解决完全平方数问题 46
3.4 强整数 47
3.4.1 编程实现——筛选强整数 47
3.4.2 代码改进——强整数检索上限的寻找 48
3.5 回文数 48
3.5.1 编程实现——判断回文数 48
3.5.2 代码改进——求回文素数 49
3.6 丑数 50
3.6.1 编程实现——如何判断丑数 51
3.6.2 代码改进——尝试找到第n个丑数 52
3.6.3 代码改进——解决丑数扩展问题 53
3.6.4 算法改进——使用二分查找第n个丑数 53
3.7 完美数 55
3.7.1 完美数的故事 55
3.7.2 编程实现——如何判断完美数 55
3.8 快乐数 56
3.9 顺次数 57
3.10 步进数 58
3.11 中心对称数 60
3.11.1 编程实现——通过字典映射来判断中心对称数 60
3.11.2 代码改进——查找指定位数的中心对称数 60
3.11.3 代码改进——确定中心对称数的个数 61
3.12 累加数 63
3.13 易混淆数 64
本章结语 65
第4章 有趣的数字——数字计算 66
4.1 二进制相关运算 66
4.1.1 编程实现——二进制求和 66
4.1.2 编程实现——求十进制数的反码 67
4.1.3 编程实现——计算汉明距离 68
4.1.4 代码改进——求二进制数中1的长间距 69
4.1.5 代码改进——颠倒二进制数 70
4.2 玩转四则运算 70
4.2.1 编程实现——一个数的各位相加 71
4.2.2 编程实现——不用加减乘除运算符做加法 72
4.2.3 代码改进——求阶乘的尾数 73
4.3 数字间的特殊运算 74
4.3.1 编程实现——平方根函数 74
4.3.2 编程实现——求平方数之和 75
4.3.3 编程实现——判断一个数是否为某数的幂次方 75
4.4 计算质数 76
4.4.1 编程实现——统计质数个数 76
4.4.2 编程实现——深度判断二进制数中特殊数的个数 78
4.5 数字转换 79
4.5.1 编程实现——整数转换 79
4.5.2 编程实现——整数转换成十六进制数 80
4.5.3 编程实现——将分数转换成小数 81
4.5.4 编程实现——罗马数字转整数 83
4.5.5 代码改进——整数转罗马数字 84
本章结语 85
第5章 图形世界的点线面 86
5.1 有趣的点与线 86
5.1.1 编程实现——连点成线 86
5.1.2 编程实现——短时间内访问所有的点 88
5.1.3 编程实现——找到穿过多点的直线 89
5.2 图形的奥妙 91
5.2.1 编程实现——输出杨辉三角 91
5.2.2 代码改进——尝试输出杨辉三角的某一行 92
5.2.3 编程实现——规划一个矩形合理的长和宽 93
5.2.4 编程实现——判断矩形是否重叠 94
5.2.5 代码改进——判断圆和矩形是否有重叠 95
5.2.6 编程实现——统计有效三角形的个数 97
5.3 周长与面积 98
5.3.1 编程实现——求重叠矩形的面积 98
5.3.2 编程实现——找到小面积的矩形 100
5.3.3 编程实现——求三角形的周长 103
5.3.4 编程实现——求的三角形面积 104
5.4 凸多边形 105
5.4.1 什么是凸多边形 105
5.4.2 向量叉乘 106
5.4.3 编程实现——判断凸多边形 106
5.5 三维图形 107
5.5.1 编程实现——计算三维形体的表面积 107
5.5.2 代码改进——求解三维形体的投影面积 109
本章结语 110
第6章 探索字符的世界——字符串操作 111
6.1 字符串的排列 111
6.1.1 编程实现——格式化字符串 111
6.1.2 编程实现——格式化字符串进阶 113
6.1.3 编程实现——字符串全排列 114
6.1.4 编程实现——根据字符出现的频率进行排序 116
6.1.5 编程实现——交换字符 117
6.2 字符串的分割 119
6.2.1 平衡字符串的分割 119
6.2.2 编程实现——分割出回文字符串 120
6.2.3 编程实现——分割字符串获取分数 121
6.3 字符串的查找与统计 121
6.3.1 编程实现——统计连续字符的长度 121
6.3.2 编程实现——检查字符串中所有的字符是否 122
6.3.3 编程实现——查找次出现的字符 123
6.3.4 编程实现——求长不含重复字符的子字符串长度 124
6.3.5 编程实现——查找常用字符 125
6.4 字符串的变换 126
6.4.1 编程实现——字符串平移 126
6.4.2 编程实现——字符串平移加密 127
6.4.3 编程实现——压缩字符串 128
6.4.4 编程实现——字符串解压 129
6.4.5 编程实现——将数字翻译成字符串 131
本章结语 132
第7章 探索字符的世界——字符串应用 133
7.1 单词提取 133
7.1.1 编程实现——统计字符串中的单词个数 133
7.1.2 编程实现——返回字符后一个单词的长度 134
7.1.3 编程实现——统计常用的单词 135
7.1.4 编程实现——拆分单词 136
7.1.5 编程实现——计算单词的短距离 137
7.2 词句重组 138
7.2.1 编程实现——从字符串中返回字母组成单词 138
7.2.2 编程实现——语句逆序 139
7.2.3 编程实现——语句重排 139
7.2.4 编程实现——单词前缀替换 140
7.3 单词缩写 141
7.3.1 编程实现——判断是否有相同的缩写 141
7.3.2 编程实现——列举单词所有缩写形式 143
7.4 语句处理 144
7.4.1 编程实现——比较语句的差异 144
7.4.2 编程实现——分析词组 145
7.5 回文字符串 146
7.5.1 编程实现——验证回文字符串 146
7.5.2 编程实现——构造回文字符串 147
7.5.3 编程实现——找到长的回文子字符串 149
7.5.4 编程实现——拼接构成回文串 149
7.6 字符串的复杂操作 150
7.6.1 编程实现——字符串解码 150
7.6.2 编程实现——构建IP地址 152
7.6.3 编程实现——验证IP地址的有效性 153
7.6.4 编程实现——实现模糊匹配 155
本章结语 156
第8章 玩转数据结构——列表与链表 157
8.1 获取列表中的信息 158
8.1.1 编程实现——寻找列表平衡点 158
8.1.2 编程实现——找到列表中缺失的元素 158
8.1.3 代码改进——寻找所有整数中两数之差值的值 159
8.1.4 代码改进——根据条件获取列表中的值 161
8.1.5 代码改进——寻找列表中连续元素的和的值 161
8.1.6 代码改进——寻找列表中长的连续递增序列 163
8.1.7 代码改进——寻找重复次数多的元素 164
8.1.8 代码改进&
— 没有更多了 —
以下为对购买帮助不大的评价