不同的缩进在python中没有错误
虽然我给出了不同的缩进,但代码运行良好,我无法理解。它不会被标记为缩进错误,因为任何语句块都必须至少有1个缩进空间 这里您的不同的缩进在python中没有错误,python,python-2.7,Python,Python 2.7,虽然我给出了不同的缩进,但代码运行良好,我无法理解。它不会被标记为缩进错误,因为任何语句块都必须至少有1个缩进空间 这里您的if和else是两个不同的块,因此它被缩进了,因此解释器不会抛出错误 password = raw_input("Enter password: ") if password == "1234": print "You logged in correctly!" else: print "GTFO" 这将毫无问题地工作 但如果我尝试以下操作,我将得到Inden
if
和else
是两个不同的块,因此它被缩进了,因此解释器不会抛出错误
password = raw_input("Enter password: ")
if password == "1234":
print "You logged in correctly!"
else:
print "GTFO"
这将毫无问题地工作
但如果我尝试以下操作,我将得到IndendationError
if True:
print
elif True:
print
elif True:
print
elif True:
print
else:
print
解释缩进。以下是相关摘录:
在每个逻辑行的开头,行的缩进级别为
与堆栈顶部相比。如果它相等,什么也不会发生。如果
它更大,它被推到堆栈上,一个缩进标记被删除
生成。如果它较小,则它必须是出现的数字之一
在堆栈上
在代码中,由于缩进级别大于堆栈顶部(即0
),因此将其视为单个缩进。else:
行从堆栈顶部弹出2
,因此解释器没有您先前缩进级别2
的内存。它只知道它高于0
在块内开始混合缩进时会出现问题:
if True:
print ""
print "" # has different Indentation
print ""
当解析器到达
return False
时,堆栈包含[4,8]
。下一行的缩进为6
,它不包含在堆栈中,因此会生成IndentationError
为什么?如果缩进不同,我们需要纠正错误!我想他的意思是他们处于不同的缩进水平。不仅仅是“space”(及其长度)与“tab”(制表符)的不同@drj:阅读文档:问题只在于一个块中的缩进程度不同。
def foo():
if True:
return True
return False # Is this part of the if statement or not?