在一行 python 中进行多个“计算和赋值”操作?

Multiple "calculation AND assignment" operations in one line of python?

提问人:roble 提问时间:6/11/2022 更新时间:6/11/2022 访问量:207

问:

假设我想除以 2,加上 1 再乘以 5。

类似的东西

x /= 2 += 1 *= 5

显然行不通。

我尝试了使用括号和海象运算符的不同组合,但无法产生有效的东西,更不用说可读性强的东西了

python 赋值运算符

评论

0赞 Sayse 6/11/2022
去掉后两个相等的(或者可能是所有的赋值),在这里将部分结果赋值给变量是没有意义的,尤其是当它以难以阅读的方式影响运算顺序时
2赞 Luatic 6/11/2022
x = ((x / 2) + 1) * 5;如果您确实需要多个这样的操作,请将它们放在不同的语句中:x /= 2; x += 1; x *= 5
0赞 chepner 6/11/2022
可以想象一个假设的应用程序赋值运算符,它等价于 .x ()= fx = f(x)
0赞 roble 6/11/2022
在我需要它的代码段中,它非常适合一般样式,因为在很多情况下,分配的变量会使用 += 或类似的东西作。所以我认为在我同时需要几个的地方,可以将它们链接起来。然而,最易读和最有用的可能是按照 @chepner 的答案在几行上执行它,或者像 LMD 的第一个建议一样根本没有“计算和分配”运算符

答:

1赞 chepner 6/11/2022 #1

这不是你可以链接的东西。完全可读的东西没有错

x /= 2
x += 1
x *= 5

x = (x/2 + 1) * 5
-2赞 YESTHATSME 6/11/2022 #2

你为什么要添加那些等号?? 像这样的东西应该这样做:

x = 100

print((x/2 +1) * 5)

评论

1赞 Sören 6/11/2022
这不会改变 x 的值。