参考文章来自: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 全部缩进一行_Python开发工具:缩进规则的使用相关推荐

  1. python内置的集成开发工具是什么_python内置的集成开发工具是什么_后端开发

    go语言之goroute协程_后端开发 协程(coroutine)是Go语言中的轻量级线程实现,由Go运行时(runtime)管理.下面就来由go入门教程栏目介绍一下go语言中的goroute协程. ...

  2. python自带的集成开发工具是什么_python内置的集成开发工具是什么

    python内置的集成开发工具是什么 Python自带的集成开发工具是IDLE. Python只是一门语言,Python有一个原生的开发环境--IDLE.IDLE的功能不比一些专业的IDE,但是Pyt ...

  3. python 通用数据库类型_Python开发基础之Python常用的数据类型

    博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...

  4. 学python用什么软件开发-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  5. 最适合python程序员用的笔记本-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  6. python 全部缩进一行_Python(48)语言参考2:词法分析

    2. 词法分析 Python 程序由一个 解析器 读取.输入到解析器的是一个由 词法分析器 所生成的 形符 流,本章将描述词法分析器是如何将一个文件拆分为一个个形符的.Python 会将读取的程序文本 ...

  7. python开发工具和框架安装器_Python 开发工具和框架安装

    引言: 其实之前对于 Python,只是知道有这门语言而已.大部分还是使用 .net 开发的,之前也学了 MVC+EF 开发,但是由于工作上完全用不到,也就没有在博客记录学习的东西了. 最近又接触到了 ...

  8. python开发工具下所有软件都打不开_Python 开发工具链全解

    可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...

  9. python3开发工具推荐_python开发工具有哪些?我推荐这5款python开发工具!

    python开发工具有很多,目前我们用的比较多的是pycharm,除了pycharm还有文本编辑器像微软的vscode,sublime text都有非常好的插件,今天,我就把Python程序员使用频率 ...

最新文章

  1. 使用npm打包后生成的package.json中重要字段含义
  2. mysql 白皮书_mysql企业版 《 MySQL企业版中文白皮书 》.cn.doc
  3. Go操作mysql实现增删改查及连接池
  4. hdu 4407 Sum
  5. 2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
  6. idea配置tomcat里你不知道的小秘密
  7. liferay 点击build service 出现Cloud not reserve enough space for object heap
  8. zookeeper中展示所有节点_分布式协调服务之Zookeeper
  9. r语言 小树转化百分数_魅力语言小课堂|绕口令《说日》
  10. torchtext 中文语料加载
  11. python 规则引擎 drools_SpringBoot2整合Drools规则引擎及案例详解
  12. android 5.0 开启网卡 权限请求,Aurora Droid | F-Droid - Free and Open Source Android App Repository...
  13. 浩辰云建筑2021功能详细介绍
  14. 单片机编程入门基础知识(新手必看)
  15. 两个数的最大公因数和最小公倍数
  16. 使用jstack排查java应用占用内存过高问题
  17. java 用PDFBox 删除 PDF文件中的一页 ,空白页啥的,此处删除最后一页为例 spring boot
  18. 暴走欧洲之文明的迭代
  19. 源代码转换:Tangible Software Solutions v22.10.20
  20. 时尚星球_时尚和科技属于一起吗?

热门文章

  1. mysql防止误操作之prompt命令提示符
  2. 多媒体个人计算机软件系统,HP推出新的多媒体个人计算机
  3. 查询工资最低的3名员工的职工工号、姓名和收入_@打工人 | 关于工资条,这6个常识必须掌握,事关你的权益...
  4. java.net.URISyntaxException: Illegal character in query at index,http请求url中有非法字符导致
  5. Java 使用Collections.reverse对list集合进行降序排序
  6. ORACLE 索引失效的原因与解决
  7. Android Studio 快捷键、Debug的使用
  8. 破解 Ashley Madison 1100万个口令
  9. Codeforces Round #356 (Div. 1) D. Bear and Chase 暴力
  10. 计算机视觉与模式识别代码合集第二版three