在观看video解释关于一个测验,我发现这个代码片段:为什么不执行“a,x = x,a”会导致两次值更改?
a, x = x, a
a, x = x, a
print a
print x
的视频说,最终的结果是x
和a
交换,如果我们说再这样做,这将是在原不改变任何变量值的地方。
我的问题是,如果我第一次分配a
=>x
和x
=>a
,那么代码的价值是不会,即使我们做同样的代码进行更改,并为同一分配相同的值像我之前做的那样变化。但为什么视频解释说a
和x
的值将被执行两次并在执行语句之前得到相同的值?
对于第一个问题,只要你做的'X = A',你已经失去了x'的'的值,如果它没有被分配给其他地方,所以他们couldn互换。您需要第三个变量(通常称为'temp')来保存'x'的值来进行交换;除非我错过了某种边缘技术来实现这一点。 – Carcigenicate
'a = x,x = a'是一个错误。你是不是指'a,x = x,a'? –
@Carcigenicate你可以很容易地使用a,x = x,a来不需要临时变量。 – Whud