a. 二者输出结果肯定不相同。
b. 第一个利用C/C++的思维进行思考即可;第二个是利用python中的元组打包和序列解包的思维思考。
假设a为10,b为8,示例解析:
a. a = a + b b = a - b
a = 10
b = 8
print("Add first")
a = a + b #a = 10 + 8
print("a = ", a)
b = a - b #b = 18 - 8
print("b = ", b)
print()
a = 10
b = 8
print("Minus first")
b = a - b #b = 10 - 8
print("b = ", b)
a = a + b #a = 10 + 2
print("a = ", a)
print()
输出结果:
Add first
a = 18
b = 10
Minus first
b = 2
a = 12
b. a, b = a + b, a - b
该等式是先将等号右边的计算结果先打包成一个临时元组,然后将该临时元组进行列表解包,分别赋值给a和b。
a = 10
b = 8
print("Add first")
result = a + b, a - b
a, b = a + b, a - b
print("a = ", a, " b = ", b)
print("result:", result)
print()
a = 10
b = 8
print("Minus first")
result = a - b, a + b
a, b = a - b, a + b
print("a = ", a, " b = ", b)
print("result:", result)
print()
输出结果:
Add first
a = 18 b = 2
result: (18, 2)
Minus first
a = 2 b = 18
result: (2, 18)
本文通过两个示例对比了C/C++与Python中变量交换的不同方法。首先介绍了传统C/C++方式,利用临时变量进行值的交换;接着展示了Python利用元组打包和解包实现的简洁变量交换方法,并详细解释了其背后的原理。
936

被折叠的 条评论
为什么被折叠?



