如果 a>b 且 a 或者 b ?
a>b 和 a 都为真,就真,否则 b ?
搞不懂 求指点
1
loading 2016-11-18 18:20:13 +08:00 via Android
你就不能自己试一下?
|
2
kier 2016-11-18 18:22:54 +08:00 1
python 没有三目运算符,所以这个就当三目运算符了
|
3
Hstar 2016-11-18 18:22:58 +08:00 1
>>> a=1
>>> b=2 >>> a > b and a or b 2 >>> a>b False >>> a>b and a False >>> a or b 1 >>> a>b or b 2 |
4
ltux 2016-11-18 18:30:44 +08:00 1
a > b and a or b 这种写法只有在 a>b 且 a 不等于 0 的情况下才会返回 a, 否则返回 b
不知道程序的意图,不知道是否真的需要 a 不等于 0 ,所以也无法判断这种写法是否会有逻辑漏洞。 但是窃以为最好把意图明确写出。如果不需要保证 a 不等于 0 ,那么不如写成 a if a>b else b |
5
skyleft 2016-11-18 18:30:45 +08:00 1
这个当三目运算符有问题,如果 a 是 0 或者其他布尔判定是 false 的值,就悲剧了
|
6
skyleft 2016-11-18 18:31:10 +08:00 1
三目运算符 还是 a if a>b else b 好点
|
7
Kilerd 2016-11-18 19:49:58 +08:00
对于这种语义不明,或者说过度压缩代码的行为表示不屑。
|
8
coreki 2016-11-18 19:50:57 +08:00 via iPhone
我也是用 if else 好些
|
9
knightdf 2016-11-18 20:20:10 +08:00
python lua 里面这种写法多了去了
|