不写具体的程序了, 呵呵.
1, 偷鸡摸狗, 呵呵, python中提供这种交换语法, 直接a, b = b, a就可以了
2. 字符串连接, 数值算术运算保留对方值.
a = 3
b = 4
a = a + b 这里, 我们把b的值保留到了a变量中, 由于b的值没有改变, 因此可以获取到a的值.
b = a - b 好了, 相当于b = (a + b) - a, 那么b 就等于a了
a = a - b 此时, b值是a原来的值, 那么结果什么可向而知了.
对于字符串做这种交换的话, 可以使用字符串连接和substr的方式来做, 建议在追加字符串的时候, insert到那个字符串的最前面, 防止其中一个字符串是另一个字符串的子串导致错误..
3. 位操作, 异或
a = 2
b = 3
a = a ^ b
b = a ^ b
a = a ^ b
异或操作, 对每一位而言, 0可以取得原数, 1可以取得该位的补码.
第一次异或, 用0填充了相同的位, 用1填充了不同的位.
第二次异或, 操作数b和第一次结果做异或, 第一次的结果用0(那些相同的位)取得了b自己的值(由于这些位相同), 而第一次结果是1的那些位, 则取得了操作数b的该位的补码, 这些位的值是不同的, 因此, 操作数b中该位的补码, 实际上就是操作数a中的原码.
这样, 第二次的异或中, 将第一个操作数a中的所有位就都覆盖到了操作数b中, 完成了将a赋值给b句柄的工作.
第三次异或, 原理和第二次一样, 将b赋值给a句柄.