控制台输出不同于 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]
.
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]
.