见招拆招小冬喜 发表于 2020-10-8 19:11:49

0708节课后作业问题

假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

x, y, z = z, y, x


请问这是什么原理?

dreamPython 发表于 2020-10-8 19:23:34

因为它们都有了各自的数值,所以,这样的目的能起到互换的作用,倘若,x=1,y=2,z=3,w,f,e,并未其定义数值,那么,x,y,z=w,f,e,就将x,y,z的数值传递给了wfe,wfe的数值为123,xyz的数值还是为123。可能我这样回答有BUG,哈哈

见招拆招小冬喜 发表于 2020-10-8 19:28:42

dreamPython 发表于 2020-10-8 19:23
因为它们都有了各自的数值,所以,这样的目的能起到互换的作用,倘若,x=1,y=2,z=3,w,f,e,并未其定义数值 ...

我的疑虑是,这样是简单的一一对应的吗,拆开写是x=z y=y z=x? 那这样y不是相当于没变吗?

疾风怪盗 发表于 2020-10-8 19:33:01

见招拆招小冬喜 发表于 2020-10-8 19:28
我的疑虑是,这样是简单的一一对应的吗,拆开写是x=z y=y z=x? 那这样y不是相当于没变吗?

x = 1
y = 2
z = 3
print(x,y,z)
x,y,z=z,y,x
print(x,y,z)

1 2 3
3 2 1

y的值是没变化。。。。。。。。。

liuzhengyuan 发表于 2020-10-8 19:33:03

见招拆招小冬喜 发表于 2020-10-8 19:28
我的疑虑是,这样是简单的一一对应的吗,拆开写是x=z y=y z=x? 那这样y不是相当于没变吗?

对的

见招拆招小冬喜 发表于 2020-10-8 20:31:11

疾风怪盗 发表于 2020-10-8 19:33
1 2 3
3 2 1



哈哈,看来是答案错了,我说怎么不对劲呢,下次我先验证一下再来问~
页: [1]
查看完整版本: 0708节课后作业问题