Python中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存储。在开始读取文件之前,0(表示缩进级别为0,无

缩进)会被首先压入栈中。然后从文件开头到末尾,依次读取每行逻辑代码,每行逻辑代码的缩进级别都会和栈顶值进行比较,如果相

等,那么什么都不会发生;如果比栈顶值大的话,那么该行逻辑代码的缩进级别就会被压入栈中,同时会生成一个缩进标记(INDENT

TOKEN);如果比栈顶值小的话,那么栈中所有比该行逻辑代码缩进级别大的值都会从栈中移除,并且还会生成一个扩展标记(DEDENT

TOKEN)。

推荐:Python教程

下面是一个正确的缩进案例:def perm(l):#0

# Compute the list of all permutations of l

if len(l) <= 1:# 1

return [l]# 2

r = []# 3

for i in range(len(l)):# 4

s = l[:i] + l[i+1:]# 5

p = perm(s)# 6

for x in p:# 7

r.append(l[i:i+1] + x)# 8

return r# 9

上面的#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。

下面是一个错误的案例def perm(l):                       #1 error: first line indented

for i in range(len(l)):             #2 error: not indented

s = l[:i] + l[i+1:]

p = perm(l[:i] + l[i+1:])   #3 error: unexpected indent

for x in p:

r.append(l[i:i+1] + x)#4

return r                #5 error: inconsistent dedent

更多Python技术请关注云海天Python教程。

python可以用tab缩进吗_python缩进可以用tab吗相关推荐

  1. python缩进块_Python缩进规则(包含快捷键)

    和其它程序设计语言(如 Java.C 语言)采用大括号"{}"分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次. 在 Python 中,对于类定义. ...

  2. python缩进教学_Python缩进和选择学习

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

  3. python中if缩进规则_Python缩进与if语句 空格的魅力

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

  4. python的缩进意义_python缩进错误的原因是什么

    要求严格的代码缩进是python语法的一大特色,就像C语言家族(C.C++.Java.C#等等)中的花括号一样重要,在大多数场合还有必要.在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代 ...

  5. python应为缩进块_Python缩进

    在Python中的空白是重要的.实际上,在一行开始的空格是重要的.这被称为缩进.在逻辑行开头的前导空白(空格和制表符)用于确定逻辑行的缩进级别,它用于依次确定语句的分组. 这意味着一起的语句必须有相同 ...

  6. python默认的一个代码缩进是几个空格_python缩进长度是否统一

    Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...

  7. python 全部缩进一行_Python开发工具:缩进规则的使用

    参考文章来自:https://docs.python.org/2.0/ref/indentation.html 分享一波 前言 Python中的缩进(Indentation)决定了代码的作用域范围.这 ...

  8. python中的缩进是长度统一吗_python缩进长度是否统一

    Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...

  9. [转载] python缩进报错_python缩进报错

    参考链接: Python语句,缩进和注释 广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 学习 python 与其他语言最大的区 ...

最新文章

  1. 内存检测工具Dr. Memory的使用
  2. 用户自定义的标识符的一些注意事项
  3. Python基础入门必学内容:判断语句与循环语句
  4. 前端学习(1107):函数进阶
  5. Web API 接口
  6. Spring execution使用
  7. 解决微信0day上线CobaltStike的几个问题
  8. Reversing.Kr replace题解
  9. MongoDB DBA 实践2-----MongoDB CRUD操作
  10. LeetCode每周刷题(2019.7.8-2019.7.14)
  11. 【优化布局】基于matlab遗传算法求解带出入点的车间布局优化问题【含Matlab源码 011期】
  12. Ubuntu 10.04 开机默认进入命令行模式
  13. FreeRTOS软件定时器
  14. SVG 与 Canvas:如何选择
  15. mp4如何转换成wmv格式
  16. scratch3.0接苹果小游戏
  17. 服装尺寸 html,服装尺寸S、M、L、XL、XXL分别表示的型号大小和释义(完整版)...
  18. android p适配三星s86,感受三星S8屏幕震撼 先过APP适配这道坎
  19. 路由器修改html,路由器信号太差,设置中更换为美国能提升WiFi信号强度?
  20. UVA10815 安迪的第一个字典 Andy‘s First Dictionary

热门文章

  1. 纯CSS3实现动画—奔跑的北极熊
  2. 2012年Kenshiro机器人
  3. docker部署ELK
  4. php session unset,PHP中session_unset()和session_destroy()的区别是什么
  5. Optomind Inc.、II-VI Incorporated、MACOM与MultiLane SAL在OFC 2019上携手展示200G QSFP56 AOC
  6. 关于Hessian矩阵的图像增强
  7. 【MyBatis】第五课 银行账户管理系统网站开发
  8. 西门子S7以太网通讯处理器编程调试驱动安装
  9. 东南大学无锡分校有计算机专业吗,东南大学无锡分校和东南大学的区别
  10. 图解2009三运营商财报:中移动利润为联通电信5倍