Gop*_*h S 2 python if-statement python-3.x
我试图找到一种方法来在一行中完成两个动作if语句,我可以找到很多答案来执行if语句中的单个动作,但不是这样.它甚至可能吗?我试过这样的东西,但是失败了,因为ValueError - 解压缩的值太多了(预期2).谢谢.
g, er = "id", "err" if no_of_errs <= 1 else "ppd", "ers"
Run Code Online (Sandbox Code Playgroud)
Python正在查看你的代码:
g, er = ( "id" ) , ( "err" if no_of_errs <= 1 else "ppd" ) , ( "ers" )
Run Code Online (Sandbox Code Playgroud)
打开3件事,只打包2件.
错误背后的原因是操作员优先级,您可以在这里阅读大量的lenghty文本 或google它并找到像这里的表格.
通过使用括号显示元组来修复它:
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)
Run Code Online (Sandbox Code Playgroud)
输出:
id err
ppd ers
Run Code Online (Sandbox Code Playgroud)
使用显式元组,不再有操作员混淆并且它可以工作.
谷歌的关键词:operator priority precedence或类似的
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |