美文网首页大数据 爬虫Python AI Sqlpython学习程序猿阵线联盟-汇总各类技术干货
Python这个缩进让我焦头烂额!最奇葩的缩进,没有之一!

Python这个缩进让我焦头烂额!最奇葩的缩进,没有之一!

作者: 小天真_5eeb | 来源:发表于2018-12-28 11:19 被阅读5次

例如如下程序。

运行上面代码,如果输入年龄小于20,将会看到如下运行结果。

从上面代码可以看出,如果输入的年龄大于20,则程序会执行整体缩进的代码块。

再次重复:Python不是格式自由的语言,因此你不能随心所欲地缩进,必须按Python语法要求缩进。下面详细介绍在缩进过程中可能导致的错误。

不要忘记缩进

代码块一定要缩进,否则就不是代码块。例如如下程序。

上面程序的if条件与下面的print语句位于同一条竖线上,这样在if条件下就没有受控制的代码块了。因此,上面程序执行时会报出如下错误。

注意:if条件后的条件执行体一定要缩进。只有缩进后的代码才能算条件执行体。

接下来读者会产生一个疑问:代码块(条件执行体)到底要缩进多少呢?这个随意。你可以缩进1个空格、2个空格、3个空格……或1个Tab位,这都是符合语法要求的。但从编程习惯来看,Python通常建议缩进4个空格。

有些时候,Python解释器不会报错,但并不代表程序没有错误。例如如下代码

解释执行上面程序,程序不会报任何错误。但如果输入一个小于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代码块中的所有语句必须保持相同的缩进,既不能多,也不能少。

注意:位于同一个代码块中的所有语句必须保持相同的缩进,既不能多,也不能少。

另外,需要说明的是,对于不需要使用代码块的地方,千万不要随意缩进,否则程序也会报错。例如如下简单的程序。

上面程序只有两条简单的执行语句,并没有包括分支、循环等流程控制,因此不应该使用缩进。解释执行上面代码,将会看到如下错误。

相关文章

  • Python这个缩进让我焦头烂额!最奇葩的缩进,没有之一!

    例如如下程序。 运行上面代码,如果输入年龄小于20,将会看到如下运行结果。 从上面代码可以看出,如果输入的年龄大于...

  • 02-Python之路-基础-语法

    简介 Python设计目标之一是让代码具备高度的可阅读性。 缩进 Python中缩进表示语句块的开始与结束。增加缩...

  • 【Python】缩进

    缩进 Python严格执行缩进 缩进方式:自动缩进/手动变更缩进 代码切换:Alt+p/n 参数配置:(1)字体:...

  • Python代码格式

    Python缩进使用4个空格,因为 Python 用缩进来取代了 {} , 而空格或是 tab 都是合乎语法的缩进...

  • Python第三堂笔记--条件判断和循环

    1️⃣、Python之if判断 注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块. 缩进请严格按...

  • python错误集@

    unexpected unident (无法预料的缩进) 这句没有顶格写,python依靠indent来缩进。要么...

  • Python开发编码规范

    1.代码的缩进 4个空格一个缩进层次,永远不要混用制表符和空格. 最流行的Python缩进方式是仅使用空格, 其次...

  • 1. Python 基础语法

    基础语法 缩进 Python语言采用严格的“缩进”来表明程序的格式框架,缩进表达了所属关系 在代码编写中缩进可通过...

  • 第八课:避免缩进错误

    预习: 知识点: 4.2 避免缩进错误 Python根据缩进来判断代码行与前一代码行的关系; 缩进让代码整洁、结构...

  • sublime Python 设置,防止提示Indentatio

    sublime 对缩进没有严格的控制,tab 缩进的格式和空格的格式是不一样的,而Python 对缩进要求比较严格...

网友评论

    本文标题:Python这个缩进让我焦头烂额!最奇葩的缩进,没有之一!

    本文链接:https://www.haomeiwen.com/subject/qmcslqtx.html