控制台输出不同于 python 脚本输出

Console output different from python script output

Python同学在这里

我正在 运行 进行一些关于排序和使用基本同时赋值的测试。 这是我第一次 运行 解决这类问题。 当我在控制台中逐行 运行 代码时,我得到的结果与我在 .py 脚本下 运行 时得到的结果不同。

控制台代码和结果(我所期望的)

>>> a = [16, 3, 5, 5, 21, 13, 25, 15, 7]
>>> for i in range(len(a)-2, -1, -1):
...     if a[i] > a[i+1]:
...         a[i], a[i+1] = a[i+1], a[i]
...
>>> print(a)
[3, 16, 5, 5, 7, 21, 13, 25, 15]
>>>

脚本

a = [16, 3, 5, 5, 21, 13, 25, 15, 7]
for i in range(len(a)-2, -1, -1):
    if a[i] > a[i+1]:
        a[i], a[i+1] = a[i+1], a[1]
print(a)

脚本结果(我不期望的) 另存为 'testing_sort.py' 运行 作为 'python3 testing_sort.py'

[3, 3, 5, 5, 7, 3, 3, 3, 3]

仔细查看第 4 行 testing_sort.py 中的代码,您没有将 a[i] 替换为 a[i+1],而是将 a[i] 替换为 a[i+1]a[i+1]a[1]。 将 a[1] 替换为 a[i].