看着this问题,我在我的机器上尝试了OP的代码。这里有一个文字版和截图:
刚刚发生了什么?这应该是一个square
功能,并且已正确实现。可以肯定的是,我复制粘贴了代码,然后再次尝试:
好吧,我看不出这些版本之间有什么区别square
,但只有后者有效。
我能想到的唯一原因是我可能混合了制表符和空格,所以return
语句实际上是缩进的,因此循环只执行一次。但我无法重现它,而且它看起来像是解释器的混合缩进检查中的一个令人难以置信的缺陷。所以我有两个问题,或者三个问题:
- 我想念什么?
- 如果这是混合缩进,那么它到底是什么?
- 如果这是混合缩进,为什么解释器没有捕获它?明显整个ideapython 中的缩进(一般而言)就是为了避免此类问题。重要的是不能让这些事情溜走。
Easy!
def square(x):
runningtotal = 0
for counter in range(x):
runningtotal = runningtotal + x
<tab>return runningtotal
首先,制表符被替换为一到八个空格(从左到右)
使得字符总数达到并包括
替换是的倍数eight<...>
所以最后一行的制表符被替换为 8 个空格,并进入循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)