Python一行if语句,包含两个操作



我正试图找到一种方法,在一行if语句中完成两个操作,我可以在if语句的一行中找到很多执行单个操作的答案,但不是这样。这可能吗?我尝试过类似的操作,但由于ValueError失败-太多的值无法解包(应为2(。谢谢

g, er = "id", "err" if no_of_errs <= 1 else "ppd", "ers"

Python正在这样查看您的代码:

g, er = ( "id" )  ,  ( "err" if no_of_errs <= 1 else "ppd" )   , ( "ers" )

3件东西需要打开包装,只有2件可以装进去。

错误背后的原因是运算符优先级,您可以在此处阅读大量长文本,也可以在谷歌上搜索并找到类似于此处的表格。


通过用括号显式表示元组来修复它:

no_of_errs = 0
g, er = ("id", "err") if no_of_errs <= 1 else ("ppd", "ers")
print(g,er)
no_of_errs = 10
g, er = ("id", "err") if no_of_errs <= 1 else ("ppd", "ers")
print(g,er)

输出:

id err
ppd ers

有了显式元组,就不会再混淆运算符了,而且它很有效。


谷歌关键词:operatorpriorityprecedence或smth相似

最新更新