Python中可能存在混合缩进?

this问题,我在机器上尝试了OP的代码.这是text version和屏幕截图:

刚刚发生了什么?这应该是平方函数,并且已正确实现.可以肯定的是,我复制粘贴了代码,然后再次尝试:

好吧,我看不到这些版本的Square之间有任何区别,但只有后者有效.

我能想到的唯一原因是我可能混用了制表符和空格,因此return语句实际上是缩进的,因此循环仅执行一次.但是我无法复制它,它看起来像是解释器的混合缩进检查中令人难以置信的缺陷.所以我有两个问题,或者三个:

>我想念什么?
>如果这是混合压痕,那到底是什么呢?
>如果这是混合缩进,为什么解释器没有抓住它?显然,在python中(以及一般而言)缩进的整个思想都是为了避免此类问题.而且让这种事情溜走太重要了.

解决方法:

简单!

def square(x):
    runningtotal = 0
    for counter in range(x):
        runningtotal = runningtotal + x
<tab>return runningtotal

First, tabs are replaced (from left to right) by one to eight spaces
such that the total number of characters up to and including the
replacement is a multiple of eight <…>

因此,最后一行的此选项卡将替换为8个空格,并进入循环.

上一篇:java-根据日志级别缩进log4j消息


下一篇:java-使用Transformer缩进XML文本