python - Python 中的三元运算符中的多个变量赋值可能吗?

标签 python syntax

只是出于好奇。我想知道是否可以在Python中使用三元运算符进行多次赋值。我正在考虑这样的事情

rval = m if (fl*fm) < 0 else lval = m

另一方面,我想知道为什么不能像上面那样编写代码。为什么不以这种方式实现语法呢? (抱歉,如果这个问题太元)

编辑:

澄清一下。我只是写了一些二分函数 https://en.wikipedia.org/wiki/Bisection_method :

while(n_iterations < n_iters_max):
    m = (lival + rival)/2.0
    fm = f(m)
    if (fl*fm) < 0:
        rival = m
    else:
        lival = m

    if np.abs(rival-lival) < ival_size:
        break

    n_iterations+=1

感谢您的任何想法!

最佳答案

你可以这样做:

(rval := m) if (fl*fm) < 0 else (lval := m)

但是使用 if-else 语句的正常方式更清晰(至少现在,当我们对 := 运算符还很陌生时)并且更合适(因为您在此处分配,这是一个正常的语句比具有副作用的表达式更好)。

关于python - Python 中的三元运算符中的多个变量赋值可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60178848/

相关文章:

python - 如何将 vsc 中的 jupyter 交互式输出导出为 pdf

c++ - Bada IDE 是否有代码补全和有意义的错误信息?

c++ - 有没有办法向原始类型添​​加转换运算符?

lambda 中的 Python isub

python - 如何计算或监控 pybrain 中神经网络的训练?

python - 判断python中的类是否为元类

Python:用一个或多个关键字参数扩展方法的优雅习语是什么?

python - 如何清理 pandas 数据框中的图像格式?

javascript - 是否有通配符导出为的语法?

mysql - mysql FROM子句中的 "AS"这个词是可选的吗?