美文网首页Python交流学习
Python开发工具:缩进规则的使用

Python开发工具:缩进规则的使用

作者: 慌翯 | 来源:发表于2019-05-05 21:57 被阅读2次

参考文章来自:https://docs.python.org/2.0/ref/indentation.html 分享一波

前言

Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号{}符,python使用缩进空格)。

每行代码中开头的空格数(whitespace)用于计算该行代码的缩进级别(Indentation level),注意一个Tab等于8个空格(Space),缩进级别为0表示无缩进空格。

Python中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存储。在开始读取文件之前,0(表示缩进级别为0,无缩进)会被首先压入栈中。然后从文件开头到末尾,依次读取每行逻辑代码,每行逻辑代码的缩进级别都会和栈顶值进行比较,如果相等,那么什么都不会发生;如果比栈顶值大的话,那么该行逻辑代码的缩进级别就会被压入栈中,同时会生成一个缩进标记(INDENT LEVEL);如果比栈顶值小的话,那么栈中所有比该行逻辑代码缩进级别大的值都会从栈中移除,并且还会生成一个扩展标记(DEDENT LEVEL)。

下面是一个正确的缩进案例:


学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习” 获取资料,一起学习

上面的#0行,缩进0个字符,由于文件读取之前0已经被压入栈中了,所以栈中的数据不会发生改变。#1缩进4个字符,4被压入栈中。#2缩进18个字符,18被压入栈中。#3缩进4个字符,18被弹出栈,栈顶值又为4了。#4和#3缩进一样,所以不更新栈数据。#5缩进13个字符,所以13被压入栈中。#5、#6和#7的缩进一样,不更新栈数据。#8缩进14个字符,14被压入栈中。#9的缩进4个字符,所以栈中的13和14都会弹出,栈顶值又恢复为4。

下面是一个错误的案例:

#1、#2和#3处的错误解释的很清楚了。#5的缩进级别在栈中找不到所以出错,#5处的缩进级别是14,比它的上面一行缩进级别18,所以在#5处应该进行出栈处理,但是在栈中找不到14这个级别,所以出错。

又比如:

最后一行代码的缩进级别是1,而且比上一行代码的缩进级别小,所以应该出栈处理,但是在出站的时候找不到栈中以前有1的级别,所以报错。

要修改的话,只需要将最后一行的空格去掉就可以。

相关文章

  • Python开发工具:缩进规则的使用

    参考文章来自:https://docs.python.org/2.0/ref/indentation.html分享...

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

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

  • 2.Python基础语法

    缩进规则 Python语言要求代码以四个空格表示每级缩进。 注释 单行注释:使用“#”来表示单行注释例如:# 这是...

  • 判断条件

    输入年龄,根据年龄条件判断符合与否 根据python的缩进规则及if语句的中的判断条件,使用else,如下 使用e...

  • Python代码格式

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

  • yaml语法-yaml转golang

    基本规则 YAML有以下基本规则: 1、大小写敏感 2、使用缩进表示层级关系 3、禁止使用tab缩进,只能使用空格...

  • JavaScript基本编码规范

    ## 缩进 ## 建议使用**四个空格**缩进,这也是JSLint中默认的缩进。 什么应该缩进呢?规则很简单——花...

  • python基本语法学习笔记(二)

    Python If ... Else 1.缩进Python 依赖缩进,使用空格来定义代码中的范围。 2.简写 If...

  • Python_基础_流程语句

    条件判断 if 先展示一个简单的 if 语句 根据 Python 的缩进规则,如果if语句判断是True,就把缩进...

  • #python入门2#条件,循环,dict,set

    条件if else 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否...

网友评论

    本文标题:Python开发工具:缩进规则的使用

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