万本电子书0元读

万本电子书0元读

顶部广告

每个人的Python:数学、算法和游戏编程训练营电子书

本书以数学为切,介绍用编程来解决数学问题,其中涉及的算法和游戏相关的题目也与数学相关。 本书针对有兴趣学习编程的初学者编写。本书不仅介绍Python编程的基本概念与门知识,还介绍了大量常见的算法和游戏编程示例,其目的是锻炼读者的编程思维和提升动手能力。 本书以问题驱动为主线——通过提出一系列问题,然后介绍如何使用编程这种工具来解决它!这也是本书的独特之处。

售       价:¥

纸质售价:¥66.70购买纸书

20人正在读 | 0人评论 6.2

作       者:张益珲

出  版  社:清华大学出版社

出版时间:2021-10-01

字       数:16.9万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书以数学为切,以Python编程语言为工具,介绍大量流行的编程题目的解题思路,并且提供了多种解题方案。本书涉及的编程题目领域广泛,包括数字类题目、图形类题目、字符串类题目、数据结构类题目以及游戏类题目等,由浅深地训练读者的编程思维能力。通过本书的学习,读者可以掌握使用编程工具解决问题的核心思路,并能够独立思考和解决各种场景下的编程问题。 对于从未触过编程的人员来说,本书以问题驱动的教学方法,因为有趣且强调动手实践,非常适合初学者快速门。对于编程人员来说,本书介绍的解题思路和算法可以帮助编程人员提高代码质量。本书也适合编程领域的求职者使用,书中提供的编程题目很多都是面试中常见的算法问题。<br/>【推荐语】<br/>本书以数学为切,介绍用编程来解决数学问题,其中涉及的算法和游戏相关的题目也与数学相关。 本书针对有兴趣学习编程的初学者编写。本书不仅介绍Python编程的基本概念与门知识,还介绍了大量常见的算法和游戏编程示例,其目的是锻炼读者的编程思维和提升动手能力。 本书以问题驱动为主线——通过提出一系列问题,然后介绍如何使用编程这种工具来解决它!这也是本书的独特之处。 你会发现,本书每一节的头首先会提出一个问题,当你看到问题时,可以先思考如何解决,尝试自己动手编程来解决此问题,无论你是否能够成功解决,思考的过程都能使你受益,自主尝试解决后,再继续阅读书中提供的解题思路与方法,终与自己的思考结果相结合,从而不断步。 本书涉及的题目分为三大类,一类是数学题目,这些题目很多都是中学学过的,如数学问题、几何图形相关的问题,看起来很简单,但也需要读者对问题行思考与分析,设计出合适的算法编写程序来解决;第二类是算法问题,这类问题大都是数据结构相关的问题,如列表、栈、树、图等,对于这类问题,本书会给出概念和原理,即使你没有学过数据结构也一样可以轻松理解;第三类是游戏问题,这类问题也可以看作数学应用题以游戏的方式呈现出来,其中很多题目来自生活中的场景,如何将生活场景问题行抽象,之后通过编程的方式解决,是本类问题的核心。 从数学问题到算法问题,再到游戏问题,每一类问题都会有多种题目,通过练习解答更多的题目,你的编程技艺和抽象思维能力也就在不知不觉中大幅提升了。 通过学习本书你会发现,编程并不是只有专业人士才能干的事,任何人只要有兴趣都可以学会它,重要的是你可以用编程来解决问题!<br/>【作者】<br/>张益珲(网名:珲少) 多年iOS发经验,51CTO学院、CSDN学院签约讲师 ,主要从事移动端应用发,曾就职于国内知名电商网站,从事iOS端应用程序的业务发与性能优化工作。目前在国内知名社交产品公司从事IM系统的架构设计工作。对iOS发、React Native和Flutter跨平台发及JavaScript前端发都拥有丰富的经验。已出版《iOS发实战:从零基础到App Store上架》《React Native全教程:移动端跨平台应用发》《iOS发实战:从零基础到上架App Store(第3版)》《Swift从零到精通iOS发》等多本编程著作。源中国特邀技术专家,发表相关技术博客400余篇,访问量100万余次。<br/>
目录展开

作者介绍

内容简介

前 言

本书源码获取

目 录

第1章 走进Python世界

1.1 认识Python

1.1.1 Python的由来

1.1.2 Python可以做什么

1.Python可以编写工具脚本

2.Python可以编写跨平台的桌面软件

3.Python可以开发游戏

4.Python可以开发大型网站

5.Python可以开发后台接口

6.Python可以进行科学计算

7.Python可以编写网页爬虫

8.Python可以编写自动化工具

1.2 开发环境准备

1.2.1 安装Python语言包

1.2.2 使用Sublime Text编程工具

1.3 编程中的基础概念

1.3.1 面向过程编程中的基础概念

1.数据类型

2.变量

3.函数

4.表达式

5.流程控制

6.算法

7.时间复杂度

8.空间复杂度

9.运算符

10.内存

1.3.2 面向对象编程中的基础概念

1.类

2.属性

3.方法

4.对象

5.继承

6.多态

7.封装

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 智能爬虫

本章结语

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部