python系列教程132——为什么使用缩进语法

Posted 人工智能AI技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python系列教程132——为什么使用缩进语法相关的知识,希望对你有一定的参考价值。

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

对于习惯了类C语言的程序员而言,缩进规则乍一看可能会有点特别,但是这正是Python精心设计的特点,是Python迫使程序员写出统一、整齐并具有可读性程序的主要方式之一。这就意味着你必须根据程序的逻辑结构,以垂直对齐的方式来组织程序代码。结果就是让程序更一致并具有可读性。

根据逻辑结构将代码对齐是令程序具有可读性的主要部分,因而具备了重用性和可维护性,对自己和他人都是如此。即使你不使用Python,也应该在任何块结构的语言中对齐代码让程序更具可读性。

当我还在做全职基础开发的时候处理了许多程序员的C++程序。几乎不可避免的是,每位程序员都有自己的缩进代码的风格。例如,第一个写代码的人的缩进为四个空格:

while (x > 0) 

    --------;

    --------;

这个人后来挤进管理层,并由某个喜欢再往右缩进一点的人来接替他的位置:

while (x > 0) 

    --------;

    --------;

           --------;

           --------;

那个人后来又遇到了其他的机会,而某个接手这段代码的人喜欢少缩进一些:

while (x > 0) 

    --------;

    --------;

           --------;

           --------;

--------;

--------;


在任何代码块结构的语言中,无论是Python还是其他语言,如果嵌套代码块缩进的不一致,它们将很难解释、修改或者再使用,因为代码不再能形象地反应其逻辑含义。可读性是很重要的,缩进又是可读性的主要元素。

如果你用类C语言写过很多程序的话,可能你曾经为下面的例子头疼过:

if (x)

     if (y)

          statement1;

else

    statement2;

这个else是属于哪个if的呢?令人吃惊的是,这个else是属于嵌套的if语句[if (y)],即使它看上去很像是属于外层if (x)的。这是C语言中经典的陷阱,而且可能导致代码的修改者完全误解代码并用不正确的方式进行修改还一直找不出原因,直到产生巨大的错误为止!这种事在Python中是不可能发生的:因为缩进很重要,程序看上去什么样就意味着它将如何运行。看下面的Python语句:

if x:

     if y:

          statement1

else:

    statement2

这个例子里,else垂直对齐的if就是其逻辑上的if(外层的if x)。从某种意义上来说,Python是WYSIWYG语言——所见即所得(what you see is what you get)。因为不管是谁写的,程序看上去的样子就是其运行的方式。

缩进没有绝对的标准:常见的是每层四个空格或一个制表符,但是你想怎么缩进以及缩进多少都由你自己决定。嵌套越深的代码块向右缩进的越厉害,越浅就越靠近前一个块。
但是要记住,不应该在同一段Python代码中混合使用制表符和空格。

不管用何种语言编写代码,都应该一致地缩进以保持可读性,这一点无论怎么强调都不过分。实际上,如果你在此前的职业生涯中没有学习如何做到这点,那么就是你的老师给你留下了伤害。他本应当教会你这一点的!

以上是关于python系列教程132——为什么使用缩进语法的主要内容,如果未能解决你的问题,请参考以下文章

2019-07-02 python流程控制

廖雪峰的Python教程之Python基础

py基础语法

python学习笔记——for...in &while

python教程-快速入门

Python入门教程第05篇 基本语法