技术教育社区
www.teccses.org

认识编程——以Python语言讲透编程的本质

封面

作者:郭屹 著

页数:224

出版社:机械工业出版社

出版日期:2021

ISBN:9787111687610

电子书格式:pdf/epub/txt

内容简介

本书是关于计算机编程的科普书,它包含了计算机软件的发展历史、原理、数据结构,以及基本算法等内容,并进一步探讨了动态规划、概率统计和神经网络等进阶知识。作者通过轻松的笔调,由浅入深地对编程的本质进行了直观、具体的讨论。虽然书中的例子都是用Python编写的,但是介绍的编程方法和思想却是通用的。书中的实例都有对应的完整代码实现,涉及初等数学、数据结构、排序与查找、数理统计、动态规划及神经网络等多个方面。这些实例把编程原理讲解和程序代码结合在一起,从而让概念更加容易理解。本书适合学习Python,以及编程的读者阅读。

作者简介

郭屹:中国Java研发工程师鼻祖之一,JDBC Driver、Minis开发者,Norming软件国际CTO。曾在Sun Microsystems公司Java研发中心担任J2EE研发工程师。

本书特色

适读人群 :使用Python的编程人员笔者作为资深的企业软件设计师和架构师,主持研发的产品PSA多次荣获软件技术和产品奖: 2002年获得全球年度开发伙伴奖 2007年获得澳大利亚最佳第三方开发伙伴奖 2014年获得非洲年度开发伙伴奖 在超过二十年的职业生涯中,主持过多个国家大型系统研发: 2006年负责开发中国Veolia Water项目管理系统 2007 年负责开发加拿大Avantage项目及计费系统(ATBS) 2009年负责开发埃塞俄比亚电信(ETC)运营系统 2013年负责开发加纳民航局(GCAA)人力资源系统 作者通过Python程序解决一个个有趣的问题,让人充分理解程序是如何组织,程序是如何执行的。
深入浅出的讲解,讲透了编程的本质。作为一个资深程序员,现在读来依然收获颇多。
崇中华(北京代码澎湃CTO) 这本书不同于那些枯燥乏味的编程教程,作者彷佛给我们展开一幅生动的画卷,化繁为简,用深入浅出通俗易懂的语言,引领读者推开编程世界的大门,领略科技的奇妙和程序的精髓。非常有启发性和趣味性。强烈推荐给初入门的广大青少年和有兴趣认识编程的读者们。
盖平(资深企业软件产品专家,欧美同学会留美分会副秘书长) 本书实例详尽,浅入深出,娓娓道来,是初学人员极好的入门进阶的编程指导。
张克君博士(美国Intelligent Transportation研究科学家) 程序里加法运算符的语义是什么?从cpu指令集里的加法指令到python虚拟机里加法算子的解释执行以及编程语言层面的加法运算符重载语法糖,加法运算符不仅可以操作数字,还可以操作字符串,数组,等任何对象,从底层到上层,从抽象到具体,加法的语义完成了一次华丽的转身。加法如此,编程其实也是如此,数据结构和算法是底层,也是本书的核心,打好根基,才能更好的开发上层应用。
肖雯敏(有赞支付系统专家) 这本书有点像侦探小说,读完后会突然明白为什么在人工智能的大故事中,python能成为新宠,这不是一本简单讲解python语法的书,更能培养你计算机思维,帮助你洞察人工智能算法内在的灵魂。本书的可读性也很强,用词精准而克制,文风婉约而细腻,抽丝剥茧地展示python简洁的语法、丰富的类库、优雅的结构和不可限量的应用。
丁平刚(远光软件大数据技术总监) 编程的核心技术并不是编程语言本身的掌握,而是编程思维和认知的突破。
郭屹先生,用他的程序性思维,和您一起突破认知。
刘淦(北京英软弘毅科技总裁)

目录

目 录

前言

第1章 程序、数字与进制1

11 概述1

12 何谓程序?1

13 计算机只有两根手指?3

131 为什么偏偏是二进制?3

132 计算机与十进制4

14 Python怎么掰手指?4

15 Python语言入门5

第2章 计算机内部探秘8

21 计算机本来就叫计算机8

22 化计算为加法9

221 从小学的1+1开始9

222 计算机的移位操作10

223 不单单是乘除法实现12

23 进制转换及数据存储14

231 进制的转换14

232 计算机如何存储数据?15

233 形象一点来看晶体管16

234 抽象一点来看数据存储逻辑19

235 字符的编号20

24 从加法到芯片20

241 万法归加法20

242 自己做个加法器21

25 101页报告改变了世界23

251 又笨又快的图灵机23

252 从101页报告到极简计算机25

253 跟着“极简”执行代码26

第3章 编程基础概念31

31 计算机的外包装31

32 计算机的高级语言32

33 Goto语句有害33

34 说说数据结构34

35 面向对象编程36

351 什么是面向对象编程?36

352 Python的混合编程36

36 进程与线程37

37 递推与递归38

38 关于分治39

39 算法及性能分析39

第4章 数学与编程是一家41

41 什么是函数?41

411 先算一个阶乘41

412 往前走一步—求平方根43

413 再往前走一步—求阶乘的

平方根46

414 Python常见的库49

42 面向对象编程,再来求一求

素数50

421 捋清思路50

422 过程执行52

423 验证哥德巴赫猜想53

424 验证与证明55

43 递归,还记得斐波那契数列吗?55

431 斐波那契数列55

432 生活中的斐波那契数列56

433 用递归重写阶乘57

44 深入递归,汉诺塔问题58

441 汉诺塔传说58

442 塔也是递归,递归也是树59

45 Python解方程61

451 二次方程61

452 高次方程63

453 Python解同余方程64

46 Python用刘徽割圆术求面积66

461 刘徽割圆术求面积66

462 进入递推,交给Python68

47 跟着Ada计算伯努利数

(向Ada致敬)70

471 分析计算伯努利数70

472 为什么要向Ada致以敬意?72

第5章 字符处理73

51 先来谈谈字符编码73

511 首先是Unicode73

512 有了Unicode还不够74

52 Python如何操作字符串75

521 丰富的字符串操作75

522 开始造个轮子76

53 凯撒密码(Caesar cipher)78

54 字符串查找(KMP算法)80

541 从最笨的方法开始80

542 聪明一点的方法83

55 Python如何操作文件88

551 操作文件的方式88

552 简单地演练一下88

56 JSON是谁90

561 JSON对象90

562 解析JSON91

563 解析复杂JSON93

57 关于正则表达式95

571 正则表达式的功用95

572 正则解释器97

573 正则表达式的应用99

第6章 数据结构103

61 Python的序列103

611 ArrayList和LinkedList操作103

612 首先是ArrayList104

613 接下来是LinkedList107

62 关于栈—先进后出112

63 括号如何匹配114

64 数学表达式解析115

641 计算机读取数学表达式115

642 获取操作数与操作符序列116

643 开始计算119

65 关于HashMap121

651 Python中的字典操作121

652 手动做HashMap122

653 增删改查123

654 HashMap遍历127

655 成果验收128

66 树之遍历130

661 先构建一棵二叉树130

662 再遍历二叉树131

663 换一种方式遍历133

67 树之构建和查找134

671 还是先构建树134

672 然后查找特定元素136

673 让树更加泛用137

68 平衡树(AVL算法)138

681 平衡二叉树138

682 平衡二叉树增加节点140

683 不平衡就旋转142

69 图的表示146

610 拓扑排序148

611 最短路径(Dijkstra算法)151

612 关键路径CP154

第7章 查找与排序160

71 查字典—冒泡排序160

72 每次吃最甜的葡萄—选择

排序161

73 抓牌看牌—插入排序162

731 先来描述一下场景162

732 进入Python162

74 向左向右看齐—快速排序164

741 先来分而治之164

742 开始编写快速排序程序166

75 先分叉再排序—堆排序167

751 先理解堆排序思路167

752 Python的时间169

76 不会淘汰的季后赛—归并

排序170

77 以上排序的比较172

78 插入排序20—希尔排序173

79 桶排序—计数排序174

710 二分查找(试着做一个

字典)176

第8章 动态规划182

81 游戏币贪心算法—DP导入182

811 游戏币的动态规划182

812 随机数字三角的动态规划184

82 序列的最大公约数—LCS186

83 基因序列比对(Levenshtein

算法)187

84 背包问题192

841 背包问题解析192

842 开始变成程序194

第9章 数理统计与人工智能196

91 人均收入统计196

911 先从数据出发196

912 进入程序世界198

913 来看点经济学(基尼系数)199

92 用贝叶斯公式智能诊断201

921 先来谈谈概率201

922 “智能医生”的训练202

93 预

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《认识编程——以Python语言讲透编程的本质》
Article link:https://www.teccses.org/1287600.html