认识编程:以Python语言讲透编程的本质作者: 郭屹 出版时间:2021年版内容简介 本书是关于计算机编程的科普书,它包含了计算机软件的发展历史、原理、数据结构,以及基本算法等内容,并进一步探讨了动态规划、概率统计和神经网络等进阶知识。作者通过轻松的笔调,由浅入深地对编程的本质进行了直观、具体的讨论。虽然书中的例子都是用Python编写的,但是介绍的编程方法和思想却是通用的。书中的实例都有对应的完整代码实现,涉及初等数学、数据结构、排序与查找、数理统计、动态规划及神经网络等多个方面。这些实例把编程原理讲解和程序代码结合在一起,从而让概念更加容易理解。 本书适合学习Python,以及编程的读者阅读。目录目 录前言第1章 程序、数字与进制111 概述112 何谓程序?113 计算机只有两根手指?3131 为什么偏偏是二进制?3132 计算机与十进制414 Python怎么掰手指?415 Python语言入门5第2章 计算机内部探秘821 计算机本来就叫计算机822 化计算为加法9221 从小学的1+1开始9222 计算机的移位操作10223 不单单是乘除法实现1223 进制转换及数据存储14231 进制的转换14232 计算机如何存储数据?15233 形象一点来看晶体管16234 抽象一点来看数据存储逻辑19235 字符的编号2024 从加法到芯片20241 万法归加法20242 自己做个加法器2125 101页报告改变了世界23251 又笨又快的图灵机23252 从101页报告到极简计算机25253 跟着“极简”执行代码26第3章 编程基础概念3131 计算机的外包装3132 计算机的高级语言3233 Goto语句有害3334 说说数据结构3435 面向对象编程36351 什么是面向对象编程?36352 Python的混合编程3636 进程与线程3737 递推与递归3838 关于分治3939 算法及性能分析39第4章 数学与编程是一家4141 什么是函数?41411 先算一个阶乘41412 往前走一步—求平方根43413 再往前走一步—求阶乘的平方根46414 Python常见的库4942 面向对象编程,再来求一求素数50421 捋清思路50422 过程执行52423 验证哥德巴赫猜想53424 验证与证明5543 递归,还记得斐波那契数列吗?55431 斐波那契数列55432 生活中的斐波那契数列56433 用递归重写阶乘5744 深入递归,汉诺塔问题58441 汉诺塔传说58442 塔也是递归,递归也是树5945 Python解方程61451 二次方程61452 高次方程63453 Python解同余方程6446 Python用刘徽割圆术求面积66461 刘徽割圆术求面积66462 进入递推,交给Python6847 跟着Ada计算伯努利数(向Ada致敬)70471 分析计算伯努利数70472 为什么要向Ada致以敬意?72第5章 字符处理7351 先来谈谈字符编码73511 首先是Unicode73512 有了Unicode还不够7452 Python如何操作字符串75521 丰富的字符串操作75522 开始造个轮子7653 凯撒密码(Caesar cipher)7854 字符串查找(KMP算法)80541 从最笨的方法开始80542 聪明一点的方法8355 Python如何操作文件88551 操作文件的方式88552 简单地演练一下8856 JSON是谁90561 JSON对象90562 解析JSON91563 解析复杂JSON9357 关于正则表达式95571 正则表达式的功用95572 正则解释器97573 正则表达式的应用99第6章 数据结构10361 Python的序列103611 ArrayList和LinkedList操作103612 首先是ArrayList104613 接下来是LinkedList10762 关于栈—先进后出11263 括号如何匹配11464 数学表达式解析115641 计算机读取数学表达式115642 获取操作数与操作符序列116643 开始计算11965 关于HashMap121651 Python中的字典操作121652 手动做HashMap122653 增删改查123654 HashMap遍历127655 成果验收12866 树之遍历130661 先构建一棵二叉树130662 再遍历二叉树131663 换一种方式遍历13367 树之构建和查找134671 还是先构建树134672 然后查找特定元素136673 让树更加泛用13768 平衡树(AVL算法)138681 平衡二叉树138682 平衡二叉树增加节点140683 不平衡就旋转14269 图的表示146610 拓扑排序148611 最短路径(Dijkstra算法)151612 关键路径CP154第7章 查找与排序16071 查字典—冒泡排序16072 每次吃最甜的葡萄—选择排序16173 抓牌看牌—插入排序162731 先来描述一下场景162732 进入Python16274 向左向右看齐—快速排序164741 先来分而治之164742 开始编写快速排序程序16675 先分叉再排序—堆排序167751 先理解堆排序思路167752 Python的时间16976 不会淘汰的季后赛—归并排序17077 以上排序的比较17278 插入排序20—希尔排序17379 桶排序—计数排序174710 二分查找(试着做一个字典)176第8章 动态规划18281 游戏币贪心算法—DP导入182811 游戏币的动态规划182812 随机数字三角的动态规划18482 序列的最大公约数—LCS18683 基因序列比对(Levenshtein算法)18784 背包问题192841 背包问题解析192842 开始变成程序194第9章 数理统计与人工智能19691 人均收入统计196911 先从数据出发196912 进入程序世界198913 来看点经济学(基尼系数)19992 用贝叶斯公式智能诊断201921 先来谈谈概率201922 “智能医生”的训练20293 预 上一篇: 码链 大变局中遇见未来 徐蔚 2021年版 下一篇: 智慧中国 中国IT产业投资路线图 [尹沿技 著] 2012年版