编辑。:我为我的问题考虑了一下,我很困难,在IDE中使用不同的默认缩进级别,我不熟悉。即使在我在Jupyter中粘贴并重做我的代码之后,缩进也没有发生在我身上。下次使用新的python工具时,我会更加注意制表空间设置。
在本案例之前我一直认为,我总是认为Python代码的工作方式是相同的,无论缩进是用空格还是制表符,只要它们的级别是相对于父级的,直到我偶然发现这种情况下,这两个代码产生不同的输出。第一个是我常用的日常IDE,Jupyter笔记本,而第二个是用Google DataLab笔记本制作的,这实际上是我第一次使用它。令人惊讶的是,与Jupyter不同,它根本没有给我任何压痕警告(通过变红)。我把它粘贴在Jupyter上后发现了这个bug的原因,后面有几行变成了红色。
代码#1
import numpy as np
A = [1,53,24,65,76,34]
for j in range(len(A)-1):
min_index = j
for i in range(j+1, len(A)):
if (A[i] < A[min_index]):
min_index = i
if(min_index != j):
A[min_index], A[j] = A[j], A[min_index]
print A
代码#2
import numpy as np
A = [1,53,24,65,76,34]
for j in range(len(A)-1):
min_index = j
for i in range(j+1, len(A)):
if (A[i] < A[min_index]):
min_index = i
if(min_index != j):
A[min_index], A[j] = A[j], A[min_index]
print A
答案 0 :(得分:1)
在第一个示例中,第二个if
位于内部for
循环之外,但在第二个示例中,位于循环中。由于它只在第二个块中每个外循环迭代一次,结果显然会有所不同。