ad

《Python编程从0到1 视频教学版》_深入Python设计的本质_1.3.5 运行环境的错误提示

admin 156 2023-10-19

【摘要】 本书摘自《Python编程从0到1 视频教学版》一书中第3章,第1节,作者是张頔。

1.3.5 运行环境的错误提示

初学者一般会花费很多时间在修改语法错误或其他简单错误上。有经验的工程师在进 入新的编程领域时也是如此。

初学者首先要能够平和地对待这一过程。在简单错误上消耗的时间因人而异,这是学 习编程的必经阶段。从笔者的教学经验来看,也的确存在一些加速通过这个阶段的方法。 最直接的方法就是主动触发错误进而去理解它。

理解错误提示信息含义很有价值,不但能够加快编码进度,还能了解编程环境的“思 考方式"。有意识地输入一些错误代码,观察解释器给出的错误提示,是非常有用的学习 技巧。对于英文水平薄弱的学习者而言,这显得尤为有用。例如,当名字引用发生错误时, 解释器会给出如下提示:

>>> printf("Hello world!")

Traceback(most recent call last):

File "", line 1, in

《Python编程从0到1 视频教学版》_深入Python设计的本质_1.3.5 运行环境的错误提示

NameError: name 'printf' is not defined

>>> math.sqrt(2)

NameError: name 'math' is not defined

第1条语句故意将 print 错拼为 printf (这是很多C 程序员初学Python 时会犯的小错 误),第2条语句虽然没有拼写错误,但在使用函数前没有导入模块。总而言之,当解释 器找不到语句中所用的名字时,就会提示如下错误:

NameError: name '....' is not defined

初学者经过上述刻意的“试错练习”后,就能够比较轻松地掌握该类错误提示信息的 含义了。当初学者看到该类错误涉及函数调用时就会意识到:函数调用拼写是否有误、是 否未导入模块、函数定义的函数名是否写错。

不论是学习新语言,还是学习新框架,都有一个熟悉错误提示信息的过程。逐个讲解 错误提示信息没有太大的意义,因为这需要初学者自行练习、理解。这里的示例是向初学 者介绍加快这个过程的方法。即便有经验的工程师,在新的软件开发环境中全面展开工作 前,通过这种“故意出错”的方式熟悉一下错误提示信息的风格也是不无裨益的。

1.3.6 示例:欧几里得算法

在开始全面讲解 Python 语言前,先来展示一个小程序。这样做的意图在于让读者领 略这门语言的风格。

本节以欧几里得算法(这是人类历史上最早记载的算法)为示例,向读者展示注释、 文档字符串 (docstring)、 变量、循环、递归、缩进,以及函数定义等Python 语法要素。

欧几里得算法: 在数学中,辗转相除法,又称欧几里得算法 (Euclidean algorithm), 是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VI 卷,命 题i 和 ii) 中,而在中国则可以追溯至东汉出现的《九章算术》。两个整数的最大公约数 是能够同时整除它们的最大正整数。辗转相除法基于的原理是:两个整数的最大公约数等 于其中较小的数和两数之差的最大公约数。(以上内容来自维基百科)[1]

在实际操作中,可以使用带余数除法替代减法以减少步骤。如图1.2所示为欧几里得 算法流程图。

在程序设计实践中,很少针对简单的程序绘制流程图。因为对于熟练的程序设计者来 说,代码本身足以清晰地说明程序的执行流程。流程图往往用于描述大型软件系统的工作 原理,或者用来辅助不够结构化的语言(如汇编语言)。

根据前述算法描述,计算252和105的最大公约数的计算步骤如下:

(1)252除以105,余数为42,问题转为求105和42的最大公约数。

(2)105除以42,余数为21,问题转为求42和21 的最大公约数。

(3)42除以21,可以除尽,达到算法终点。

(4)结论:252和105的最大公约数为21。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python3快速入门与实战》_系统全面带领你学会Python_3.1 列表
下一篇:《Excel财务日常数据与实例讲解》_从理论到实践的一大步_5.3 制作部门费用表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×