a > b and a or b 在 python 里如何理解,逻辑上理解不过来啊

2016-11-18 18:17:38 +08:00
 qweweretrt515

如果 a>b 且 a 或者 b ?

a>b 和 a 都为真,就真,否则 b ?

搞不懂 求指点

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/321552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX