python三元表达式的疑惑

x=9

y=7

z=x if x<y else y

print(z)

如上所示可以运行成功 结果为7 

x=9

y=7

z=z=x if x<y else y

print(z)

如上所示也可以运行成功 结果为7

求解z=x 和z=z=x 有什么区别 为什么可以运行成功

谢谢大佬!

x = y = 10
print(x, y)

z=z=x这种赋值方式是支持的,这是将x的值赋予z,你虽然写了z=z=x,但实际上只执行一次赋值,因为变量z都是同一个变量

 

这与三元表达式没关系

a=b=1  是同时给a和b两个变量都赋值为1

这与三元表达式没关系

a=b=1  是同时给a和b两个变量都赋值为1

 

z=z=x if x<y else y

是先计算x if x<y else y 结果是7

然后是

z=z=7  是两次给同一个z变量赋值为7,

第二次赋值没有意义

等同是这样:

z=x if x<y else y

z=z

 

这题考虑运算符的优先级 下面比上面的多执行一步z=z 而python支持自赋值,虽然没什么用。所以可以运行成功

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632