Python使用强制缩进算不算一个败笔

发布于:2022-11-08 ⋅ 阅读:(901) ⋅ 点赞:(0)

在CSDN看到一个关于Python之父Guido的采访,主持人问到Python 这门语言采用强制代码缩进,如果重来一次会不会放弃这个限制?

Guido是这样回答的

代码缩进(Indentation)其实并不是我发明的,当时的同事给了我启发。在 Python 中要求进行代码缩进的原因是 30
年前的代码编辑器都不能很好地对代码进行缩进排版,所以我就想鼓励程序员自己来对代码进行正确的排版,从而确保程序员从视觉上对代码的理解与编译器对代码的解析是一致的。这其实非常重要,几年前苹果公司就发生过一次非常严重的代码安全漏洞事故,就是由于代码中一个语句与程序员实际设想的
if-else 语法逻辑没有匹配而引起的,其实,严格要求代码缩进确实有点夸张,改用花括号,也不是不可以。

从Guido的回答来说,如果放在今天或者哪怕20年前,我估计他不会用强制缩进来规范代码了。毕竟现在的代码编辑器和30年前相比已经发生了翻天覆地的变化,代码自动格式化都是小儿科。

而对于是否应该强制缩进,程序员持有两种完全相反的观点,一种觉得完全无法接受强制缩进,凭啥多敲一个空格就不行呢?为此还劝退不少人。喜欢的则认为这是python的一大特点,代码看起来整齐舒服。

我记得第一次接触Python时,发现需要用强制缩进来分隔代码块,不对齐就报错,为此惊讶不已。不过写出来的代码确实整齐划一,反观大括号,还在为到底要不要换行显示争论不止

if (a>b){
   //
}

还是

if(a>b)
{

}

从另一方面来说,缩进也有纠结的地方,缩进到底是用tab缩进还是用空格缩进,缩进时用几个空格,语法上并没有做要求,PEP8建议每个缩进级别采用4个空格,通常IDE可配置成一个Tab等于4个空格
在这里插入图片描述
不过强制缩进一点也没有影响它成为最流行的语言(之一)

我第一次接触的Python的时候,发现代码块之间竟然是用缩进来区分的,一时间还难以适应。

不过写了几十行代码后很快就适应了,还觉得用缩进有那么点独特性

因为强制缩进的话,代码写完后天然地就是排版好的。不需要刻意做格式化处理。我记得刚开始写python代码用的是vim。

用的vim的都是知道,学习曲线非常陡,想打造出一个IDE,需要花很多精力。而用来写python就很适合了,写完之后,代码非常工整。

P被问到为什么要强制缩进时,Python之父,Guido van Rossum当时是这么说的:

这种强制缩进,并不是什么新概念。当年我在 CWI 使用 ABC 语言编程的时候,人家就这么干的。我从 ABC 语言中继承了这个概念。不过
occam 这种很古老的语言也是用了这种方式,我不知道他们是谁先采用的,也许都是独创。这种思想也可能出自 Don
Knuth(高德纳,著名计算机科学家,经典巨著《计算机程序设计艺术》的作者),他早在 1974 年就提出过这种做法。

Python继承自ABC语言,至于ABC为啥要采用缩进的方式来分隔代码块。个人觉得并不是什么口味问题,而是出于当时的时代原因。

Python诞生于 1989年,ABC就更早了。那时候也没有什么IDE,Python的设计目标是一门简洁易用具备可读性的语言,而用强制缩进,确实可以让代码的可读性更高。当然,强制用缩进也少了左花括号到底要不要换行的争论。

如果放在今天,按我个人的口味来的话,我更倾向于{}来区分代码块。毕竟现在的计算机性能已经今非昔比。IDE的智能化已经很很好的处理代码格式问题了。

反而用空格我得小心翼翼生怕多敲了一个空格,空格与tab的混用也使得在不同运行环境中出问题,这个问题对初学者来说尤为明显。

强制缩进与{}两者的优劣谁也争不出个输赢,纯粹就是个人口味问题。把更多时间用来怎么除去代码的“坏味道”才是正事。

最后

作为一个IT的过来人,我自己整理了一些python学习资料,都是别人分享给我的,希望对你们有帮助。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。