例如以下程序。编程
运行上面代码,若是输入年龄小于20,将会看到以下运行结果。学习
从上面代码能够看出,若是输入的年龄大于20,则程序会执行总体缩进的代码块。spa
再次重复:Python不是格式自由的语言,所以你不能为所欲为地缩进,必须按Python语法要求缩进。下面详细介绍在缩进过程当中可能致使的错误。3d
不要忘记缩进orm
代码块必定要缩进,不然就不是代码块。例如以下程序。视频
上面程序的if条件与下面的print语句位于同一条竖线上,这样在if条件下就没有受控制的代码块了。所以,上面程序执行时会报出以下错误。blog
注意:if条件后的条件执行体必定要缩进。只有缩进后的代码才能算条件执行体。io
接下来读者会产生一个疑问:代码块(条件执行体)到底要缩进多少呢?这个随意。你能够缩进1个空格、2个空格、3个空格……或1个Tab位,这都是符合语法要求的。但从编程习惯来看,Python一般建议缩进4个空格。编译
有些时候,Python解释器不会报错,但并不表明程序没有错误。例如以下代码form
解释执行上面程序,程序不会报任何错误。但若是输入一个小于20的年龄,则可看到以下运行过程。
从运行过程能够看出,咱们输入的年龄明明小于20,但运行结果仍是会打印“20岁以上……”。这是为何呢?就是由于这条print语句没有缩进。若是这行代码不缩进,那么Python就不会把这行代码当成条件执行体,它就不受if条件的控制,所以不管用户输入什么年龄,print语句总会执行。
若是忘记正确地缩进,极可能致使程序的运行结果超出咱们的预期。例如以下程序。
面代码中以粗体字标识的代码行:print("b不大于4")总会执行,由于这行代码没有缩进,所以它就不属于else后的条件执行体,else后的条件执行体只有b - =1这一行代码。
若是要让print("b不大于4")语句也处于else控制之下,则须要让这行代码也缩进4个空格。
if、else、elif后的条件执行体必须使用相同缩进的代码块,将这个代码块总体做为条件执行体。当if后有多条语句做为条件执行体时,若是忘记了缩进某一行代码,则会引发语法错误。看下面代码(程序清单同上)。
在上面代码中,由于if后的条件执行体的最后一条语句没有缩进,因此系统只把c - = 1一行代码做为条件执行体,当c -= 1语句执行结束后,if语句也就执行结束了。后面的print("c大于4")已是一行普通代码,再也不属于条件执行体,从而致使else语句没有if语句,引起编译错误。在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227 -435- 450能够来了解一块儿进步一块儿学习!免费分享视频资料
运行上面代码,将看到以下错误。
为了改正上面的代码,须要让print("c大于4")也缩进4个空格。
不要随意缩进
须要说明的是,虽然Python语法容许代码块随意缩进N个空格,但同一个代码块内的代码必须保持相同的缩进,不能一会缩进2个空格,一会缩进4个空格。
例如以下代码。
上面程序中第二条print语句缩进了5个空格,在这样的状况下,Python解释器认为这条语句与前一条语句(缩进了4个空格)不是同一个代码块(这就是游标卡尺笑话的由来),所以Python解释器会报错。运行上面代码,将会报出以下错误。
把代码改成以下形式。
上面程序中第二条print语句只缩进了3个空格,它与前一条print语句(缩进了4个空格)一样不属于同一个代码块,所以Python解释器仍是会报错。运行上面代码,则会报出以下错误。
经过上面介绍能够看出,Python代码块中的全部语句必须保持相同的缩进,既不能多,也不能少。
注意:位于同一个代码块中的全部语句必须保持相同的缩进,既不能多,也不能少。
另外,须要说明的是,对于不须要使用代码块的地方,千万不要随意缩进,不然程序也会报错。例如以下简单的程序。
上面程序只有两条简单的执行语句,并无包括分支、循环等流程控制,所以不该该使用缩进。解释执行上面代码,将会看到以下错误。
来源:https://www.jianshu.com/p/253fcbfc0fde