当前位置: 首页 > 图灵资讯 > 行业资讯> python缩进可以用tab吗

python缩进可以用tab吗

来源:图灵python
时间: 2026-10-20 16:31:00

Python中的每个句子都有一个缩进级,缩进级将使用堆栈的数据结构来存储。在开始阅读文件之前,0(表示缩进级为0,没有

缩进)将首先压入堆栈。然后从文件的开头到结尾依次读取每行逻辑代码。如果相,每行逻辑代码的缩进水平将与堆栈顶值进行比较

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

TOKEN);如果比栈顶值小,栈中所有比行逻辑代码缩进级别大的值都会从栈中删除,还会产生扩展标记(DEDENT

TOKEN)。

推荐:Python教程

以下是正确的缩进案例:

defperm(l):#0
#Computethelistofallpermutationsofl
iflen(l)<=1:#1
return[l]#2
r=[]#3
foriinrange(len(l)):#4
s=l[:i]+l[i+1:]#5
p=perm(s)#6
forxinp:#7
r.append(l[i:i+1]+x)#8
returnr#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。以下是一个错误的案例

defperm(l):#1error:firstlineindented
foriinrange(len(l)):#2error:notindented
s=l[:i]+l[i+1:]
p=perm(l[:i]+l[i+1:])#3error:unexpectedindent
forxinp:
r.append(l[i:i+1]+x)#4
returnr#5error:inconsistentdedent

请关注Python视频教程,了解更多Python技术。