《Python算法教程》译者序
在计算机的世界中,算法本质上是我们对某一个问题或者某一类问题的解决方案。也就是说,如果我们想用计算机来解决问题的话,就必须将问题的解决思路准确而完整地描述出来,同时计算机也要能理解这个描述。这需要我们这些程序员将整个描述转化成一系列清晰的指令,这些指令要能接收满足一定规范的输入,并在有限的时间内产生出相应的输出。我们通常将这些指令称为程序,而算法则是程序的灵魂。
然而,程序光有灵魂是不够的。例如,诚然搜索算法可以用来解决搜索类问题,但我们通常是不会为搜索而搜索的。所有搜索算法在进入程序的时候,都要面对一些实质性的内容,比如新闻信息、论文存档,而这些内容往往都有具体的存储系统,如数据库、文件系统等。这些系统本身也有各自的数据结构,如图、树、列表等,所以算法并不是我们写程序时唯一要考虑的问题。在很多现实情况下,它甚至还不是主要问题。
所以,如果用C或C++来进行编程教学的话,我们对于算法设计的专注力很容易被数据结构这种更为基础的细节干扰。毕竟用这些语言实现并使用好数据结构本身就已经很复杂了。因此,如果想专注于算法教学,就需要一种不太需要程序员在数据结构上花太多时间的编程语言。
在相当长的一段时间里,我们在进行算法设计的时候通常用的是一种更接近于人类语言的“伪代码”。这种代码足够抽象,能让我们专注于算法的表达,但遗憾的是,它们无法在计算机中执行,我们最终还是要将其翻译成真正的编程语言。这很管用,但显然不够优雅。我们需要一种既能在抽象层面接近于这些“伪代码”,又能在计算机上像C那样通用的语言。Python就是这样一种语言。
这本书就是一本用Python来进行算法设计教学的书,本书的作者在其上一本著作《Python基础教程》中已经展现了其丰富的教学经验和技术实力,我本人亦从中受益匪浅。能翻译他的后续作品,我深感荣幸。但翻译一本算法书所需要付出的时间和精力还是远远超出了我的想象。而且,当我译了近八个月,终于快将本书第1版译完的时候,它的第2版又出版了。于是我不得不找了两个朋友(见译者简介),他们的工作是重新针对第2版对译稿进行校对、增改以及最后两章的初译。我很感谢他们给予我的帮助。除此之外,我还要感谢我的好朋友、《深入解析Windows操作系统》(第6版)的译者范德成工程师,他全程参与了本书的校对,对译稿进行了严格审阅,提供了很多宝贵建议。
祝愿这本书能给读者们带来帮助,同时也希望你们阅读快乐。
《Python算法教程》译者序的更多相关文章
- python算法介绍:希尔排序
python作为一种新的语言,在很多功能自然要比Java要好一些,也容易让人接受,而且不管您是成年人还是少儿都可以学习这个语言,今天就为大家来分享一个python算法教程之希尔排序,现在我们就来看看吧 ...
- Python快速教程 尾声(转)
原文地址: http://www.cnblogs.com/vamei/p/3603046.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留 ...
- python快速教程-vamei
2016年10月26日 12:00:53 今天开始着手python的学习,希望能高效快速的学完! Python基础(上)... 7 实验简介... 7 一.实验说明... 8 1. 环境登录... 8 ...
- Python 简明教程 ---10,Python 列表
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...
- Python快速教程 尾声
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基 ...
- 改写《python基础教程》中的一个例子
一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
随机推荐
- PreparedStatement
PreparedStatement > 它是Statement接口的子接口: >强大之处: 防SQL攻击: 提高代码的可读性.可维护性: 提高效率! l 学习PreparedStateme ...
- .NET/android/java/iOS AES通用加密解密(修正安卓)
移动端越来越火了,我们在开发过程中,总会碰到要和移动端打交道的场景,比如.NET和android或者iOS的打交道.为了让数据交互更安全,我们需要对数据进行加密传输.今天研究了一下,把几种语言的加密都 ...
- Python的平凡之路(15)
一.CSS补充: 1. 上节课讲述 a.css重用 <style> 如果整个页面的宽度 > 900px时: { ...
- android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:
* * @param savedInstanceState If the activity is being re-initialized after * previously being shut ...
- 锤子手机T2 屏幕录像文件保存在哪里?
在根目录下的 /Video/ScreenRecorder 下面 转至: http://30daydo.com/article/115
- JAVA学习遇到的问题:接口实现
引用知乎看到对接口的总结: 接口就是个招牌比如说你饿了,看到前面有个挂着KFC的店,然后你想到可以进去买汉堡了.KFC就是接口,我们看到了这个接口,就知道这个店会卖汉堡(实现接口).那么为什么我们要去 ...
- 【LeetCode】Single Number I & II & III
Single Number I : Given an array of integers, every element appears twice except for one. Find that ...
- ThinkPHP_基础(1)目录结构
(说明:文中的颜色一一对应) 目录结构 www WEB部署目录(或者子目录) ├─index.php 入口文件 ├─README.md README文件 ├─composer.json Compose ...
- HDU4010 (动态树)
Problem Query on The Trees 题目大意 给一棵树,有点权,要求维护4种操作. 操作1:加一条边. 操作2:删一条边. 操作3:将一条路径上的点权增加w. 操作4:询问一条路径上 ...
- 日志:using the Connector/J connection property 'autoReconnect=true' to avoid this problem
com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was581 ...