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的值发生的交换,没有临时变量,详细些最好,谢谢
展开
2个回答
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
>>>
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的值哦
#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的值哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询