python赋值问题

x,y,z=1,2,3(对x,y,z赋值)x,y=y,x(执行此步骤)为什么print(x,y,z)后输出的值是2,1,3,x,y的值发生的交换,没有临时变量,详细些最好... x,y,z=1,2,3(对x,y,z赋值)x,y=y,x(执行此步骤)为什么print(x,y,z)后输出的值是2,1,3,x,y的值发生的交换,没有临时变量,详细些最好,谢谢 展开
 我来答
匿名用户
2013-06-06
展开全部
我是这么理解的。
x,y,z=1,2,3 其实这是元组赋值,可以写成(x,y,z=1,2,3),对应位置的变量获得对应的值。
其中需要说明的是1,2,3是对象,x,y,z是引用。
在执行x,y=y,x时,y,x这个元组其实已经被转换为2,1了,然后直行赋值后,引用x指向了对象2,引用y指向了对象1。例如:

>>> x,y,z=1,2,3
>>> id(x)
3508720
>>> id(y)
3508708
>>> id(z)
3508696
>>> x,y=y,x
>>> id(x)
3508708
>>> id(y)
3508720
>>>
匿名用户
2013-06-06
展开全部
是C语音编写的吗?
#include
void main()
{
int x,y,z ;
x= 1;
y =2;
z =3 ;
x,y=y,x;
printf("%d%d%d\n",x,y,z);
}
这样的话xy的值没有交换啊!依旧是123的值哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式