只是出于好奇。我想知道在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
谢谢你的建议
您可以这样做:
但是if-else语句的正常方式更清晰(至少现在是这样,虽然我们对
:=
操作符还是比较陌生),而且更合适(因为您在这里赋值,哪一个语句是正常语句,而不是有副作用的表达式更好)The Zen of Python
虽然问题背后的思想应该得到真正的赞赏和赞扬,以及@Heap Overflow的聪明和前沿解决方案,但这似乎是一条危险的道路
你说得对,我不是“Python警察”;然而,Python的Zen在这个实现上不言自明
为了让这篇文章成为一个答案,而不是一个漫无边际的问题,我将参考上面的引语。虽然这个想法确实很有趣
Python中的“这是个坏主意”
相关问题 更多 >
编程相关推荐