是什么让这两个 Python 具有不同缩进的代码产生不同的结果

What makes these two Python codes with different indentation produces different result

编辑。:对于我的问题,我深表歉意,我很困,并且在 IDE 中工作,我不熟悉不同的默认缩进级别。我根本没有想到缩进已经关闭,即使我在 Jupyter 中粘贴并重做我的代码之后也是如此。下次使用新的 python 工具时,我会更加注意 tab-space 设置。

从我在这个案例之前一直相信的角度来看,我一直认为 Python 代码工作相同,无论缩进是用 space 还是制表符,只要它们的级别是相对于父级的,直到我偶然发现这两个代码产生不同输出的场景。第一个是我日常使用的 IDEJupyter Notebook 制作的,而第二个是 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

在第一个示例中,第二个 if 位于内部 for 循环之外,但在第二个示例中,它 循环内。由于在第二个块中每个外循环仅迭代一次,因此结果显然会有所不同。