读九章学Python

作者: 胡洁
译者:
编辑: 曹修山

图书目录:

详情

《九章算术》,一本成书于东汉初期、汇总了中国先秦至汉代数学成就的著作。Python版本的《九章算术》,以编程的方式诠释《九章》,通过《九章》学习编程。简练精致的文言、清晰明了的代码,相辅相成、相合相融。“观阴阳之割裂,总算术之根源”,“析理以辞,解体用图”,用严谨的态度在计算机上再现古人之思,在古算法的阐述中体现计算机编程之想、之美。

图书摘要

版权信息

书名:读九章学Python

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

Python是明确、简单的计算机编程语言;《九章算术》成书于东汉初期,是一本汇总了中国先秦至汉代数学成就的著作。Python版本的《九章算术》,以编程的方式诠释《九章》,通过《九章》学习编程。

简练精致的文言、清晰明了的代码,相辅相成、相合相融。“观阴阳之割裂,总算术之根源”,“析理以辞,解体用图”,用严谨的态度在计算机上再现古人之思,在古算法的阐述中体现计算机编程之想、之美。

本书图文并茂,讲解细致,既是一本《九章算术》通俗化的普及读物,又是一本注重实践的Python编程入门教材。


Timedot真名胡洁,IT近二十年从业和管理经验,担任过开发、测试、配置、测试经理、QA经理、高级项目经理等多个职务,具备扎实的理论基础和丰富的实战经验,使用过的编程语言有:PB、C、C++、Java、Perl、Python。热爱传统文化,喜欢编程,遵崇“科学艺术本相通,科技人文可相融”的创作理念,将致力于为计算机科学注入更多的人文气息。


《九章算术》(下称《九章》)是我国现存的最古老的数学著作之一。据初步考证,《九章》大约成书于东汉初期,汇总了中国先秦至汉代的数学成就。

《九章》成书后,历经众人传抄、删改,时有变动。直至魏晋时代,刘徽为《九章》作注,基本成为流传后世基本的定本。而后至唐代,李淳风等人为其补注后,该书成为了算术专科的主要课本。之后,此书传习不绝。“九章”二字,也成了中国数学的代名词。

《九章》是一本问题集,以问答的形式,汇集并分析了当时人们在实践中所碰到的数学问题。全书共计246个问题202术,按问题性质分为方田、粟米、衰分、少广、商功、均输、盈不足、方程、勾股9章,其中各章在解决实际问题时,都有明确的计算方法:“术”。

《九章》中的“术”可对应计算机科学中的“算法”。一本《九章》就是一本解决实际问题的算法集,这本算法集采用的语言是“文言”。

Python是一种计算机编程语言,它的设计哲学是“优雅、明确、简单”。Python的简单、易读、易学,使它很快替代了BASIC语言,成为了编程初学者的首选语言。

Python诞生于20世纪90年代初,创始人为Guido van Rossum。Guido van Rossum(吉多·范罗苏姆)是一名荷兰计算机程序员,1982年获得了阿姆斯特丹大学的数学和计算机科学硕士学位,毕业后他曾在多个研究机构工作,其中包括荷兰阿姆斯特丹的国家数学和计算机科学研究学会(CWI),马里兰州 Gaithersburg 的国家标准及技术研究所(NIST),和维珍尼亚州 Reston 的国家创新研究公司(CNRI)。1989年圣诞节期间,在阿姆斯特丹Guido为了打发圣诞节的无趣,决心开发一个优美、强大的新的语言,这种语言能够实现他一直未曾实现的一些想法。几经修订,1991年初,Python发布了第一个公开发行版。如今,这门语言已广泛应用在科学计算、云计算、数据分析、人工智能等多个领域。

Python 的名字来自于英国超现实主义喜剧团体。Guido当初之所以选中Python作为语言的名字,是因为他深深地喜爱着一部英国肥皂剧《Monty Python飞行马戏团》。

本书将用Python语言来表述《九章》中的各种“术”、各种数学思想,将通过《九章》来学习Python语言、学习编程、学习算法思维。本书包括许多图解、示例和练习,帮助读者,从零开始,一步步走进计算机编程的世界,一步步走进《九章》数学的世界!

本书共分上、下两篇,共23章。

上篇共有6章,通过《九章》中简单的算法,由浅到深覆盖了Python的编程基础。上篇,让读者熟悉基本的编程概念,有一个初步的编程基础。

下篇共有17章,从《九章》卷一开始,在上篇的编程基础上,覆盖了《九章》各卷通用的计算方法,包括:

卷一方田:合分术、减分术、平分术、割圆术;

卷二粟米:今有术、其率术、反其率术;

卷三衰分:衰分术、返衰术;

卷四少广:少广术、开方术、开立方术;

卷六均输:均输术;

卷七盈不足:盈不足术;

卷八方程:方程术、正负术;

卷九勾股:勾股术。

在对各术的讲解过程中,加深对上篇各种编程概念的理解,呈现各种编程技巧,同步提升Python编程能力。各术的讲解包括:图解、中文注释、数学术语和程序代码,程序代码中包含对应的文言注释,程序代码的右边批注代码的编程技巧。每一个“术”的开始,都附有Python编程要点。

本书书后有3个附录。

附录A包含练一练的参考答案。

附录B介绍了python标准库自带的一个模块-turtle模块。本书图解九章中的所有插图均使用该模块编写程序,自动绘制而成。配套资源中有图解九章的所有源码文件。学完本书后,有兴趣的读者可以阅读并参考源码,绘制自己的二维图形。

附录C包含本书相关的一些概念和术语,有兴趣的读者可以阅读这部分内容,获取更深一步的理解。

本书配套资源包含以下内容

《九章》原文以及刘徽、李淳风的注解,语句简略,文字古奥。要确切地理解《九章》,必须加以注释。本书以科学出版社1983年出版的白尚恕先生的《九章算术注释》为基础,参考各家之说,用通俗的语言、图例、数学术语以及程序代码,对《九章》各“术”进行注释。

白尚恕先生系河北省武安县人,1946年毕业于西北联合大学数学系,1955年开始从事数学史研究,毕生勤奋治学,共发表学术论文60余篇,专著有《九章算术注释》、《测圆海镜今译》、《九章算术今译》、《中华文化集粹丛书——睿智篇》,另有合作论著多种,研究领域涉及中国数学史、数学思想史、天文学史、科学仪器史、中外科技交流史等方面。

白尚恕先生是中国数学史和科技史领域具有国际声望的著名学者,中国高等院校数学史教育与研究事业的重要开拓者、领导者和组织者。他对《九章算术》深入而全面地研究,对中国古代数学其他经典著作地整理、校勘与研究,成为了中国数学史领域许多研究工作的起点。他的《九章算术注释》,采用了通俗语言和近代数学术语来进行注释,注释文字达490多条,降低了《九章》原文的阅读难度,为《九章》的通俗化、普及化奠定了基础。

本书在白尚恕先生注释的基础上,增加了图解和程序代码的实现,希望能进一步地降低《九章》的阅读难度,在现代的科技社会里,结合计算机科学,让这本古书重焕新颜。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏和不足。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。



本书配套资源包含针对 Windows系统下的Python 3.6.5版本。你可以直接在Windows系统上安装这个版本。本书中的所有程序在这个版本上都能正常运行。Python 安装程序的文件扩展名是.exe,双击这个文件,弹出窗口如图1-1所示。

图1-1 python安装界面

选中下方的“Add Python 3.6 to PATH”,单击“Install Now”选项,显示窗口如图1-2所示。

图1-2 python安装过程界面

安装完成后,显示窗口如图1-3所示。

图1-3 python安装成功界面

你也可以在Python的官方网站上,免费下载针对 Windows的 Python 版本。下载完成后,安装步骤同上。

注意

本书中的程序运行在 Python 3 上,请确保下载 Python 3 及以上的版本(诸如 3.4.3,3.6.5等)。

“交互式开发环境”的缩写是IDLE。IDLE看起来就像是记事本、写字板这样的文字处理软件,但是它的功能要比文字处理软件强大得多。在IDLE中,你可以编写、调试和运行Python程序。在Windows操作系统中,有两种启动IDLE的方式:

无论你使用什么操作系统,初次出现的 IDLE窗口基本上是空的,仅有一些类似下面这样的文本,如图1-4所示:

图1-4 IDLE窗口

Python的IDLE让你可以输入指令,供 Python 解释器软件来执行。Python 解释器会将你的指令翻译成计算机能“懂”并立即执行的机器语言。例如,在IDLE窗口的“>>>”提示符后输入以下指令:

>>> print('Hello world!')

在输入该行后,按下“Enter”键,IDLE窗口将显示以下内容作为响应:

>>> print('Hello world!') 
Hello world

每一个人都会犯错,编写程序也是如此。程序中的错误叫做bug(虫子)。找出bug产生的原因并将其修复的过程叫做调试(debugging)。

对一个编程初学者来说,调试无疑是一个挑战。当对着代码迟迟找不出错误的原因时,你会急躁、沮丧、甚至气恼。很多初学者会就此放弃。这个时候,你需要做的是平复心情。计算机是一个很好的伙伴,它像人类一样,既有缺点也有优点。它很有能力,做事认真,喜欢精确,但是它也单纯,不会猜测,当你与它合作时,你必须准确地告诉它你要做的是什么。而且,它只能做到你让它做的事,而不会做你想要做的事。“你让它做的事”和“你想要做的事”这两者是有区别的,例如你告诉它“2+5”,但心里想的却是“2+3”,那么它的结果只能是7,而不是你想要的5。所以,当出现错误时,首先要检讨自己,不要责怪计算机。

调试是有技巧的。我们遇到的程序错误大致分三类:语法错误、逻辑错误和运行时错误。

语法错误就是你编写的代码不符合Python这个符号体系的语法,有不合法的语言符号,或者不合法的结构,例如说把print写成了prin,或者少了一个括号等。如果存在语法错误,程序不会运行,Python解释器会提示你。

逻辑错误就是“你要计算机做的事”和“你想要做的事”之间的不同所引起的错误,例如说把+写成了*,把5写成了3等。程序会运行,但Python解释器不会提示你,运行的结果也不会是你所期望的结果。因为你并没有准确地告诉计算机你想要做的事。

运行时错误就是在程序运行时,导致程序出现异常或者终止的错误,例如除以零、访问越界的数据等。调试“运行时错误”,找出错误产生的原因,有时会很困难。你需要像一个侦探一样跟踪蛛丝马迹,找出端倪。

编程需要实践,调试也需要实践,在这个实践的过程中,你会逐步提高分析和解决问题的能力。

所以,在阅读本书的时候,你的前面最好也放一台电脑,随时尝试新学到的内容。

提示

在学习过程中,故意制造错误,查看错误所导致的结果,是提高调试能力的一个好办法。

在IDLE窗口的“>>>”提示符后输入以下指令:

>>> print('九章算术')

按下“Enter”键查看结果(注意:语句中的引号为英文引号)。

把print写成prin,或者少一个括号、少两个括号,看看会发生什么情况。

把引号写成中文引号,看看会发生什么情况。


相关图书

推荐系统:产品与算法解析
推荐系统:产品与算法解析
计算机科学概论(第13版)
计算机科学概论(第13版)
量子计算:新计算革命
量子计算:新计算革命
计算机科学概论 Python版
计算机科学概论 Python版
网空态势感知理论与模型
网空态势感知理论与模型

相关文章

相关课程