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

2016 年 11 月 18 日
 qweweretrt515

如果 a>b 且 a 或者 b ?

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

搞不懂 求指点

3007 次点击
所在节点    问与答
9 条回复
loading
2016 年 11 月 18 日
你就不能自己试一下?
kier
2016 年 11 月 18 日
python 没有三目运算符,所以这个就当三目运算符了
Hstar
2016 年 11 月 18 日
>>> 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 日
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 日
这个当三目运算符有问题,如果 a 是 0 或者其他布尔判定是 false 的值,就悲剧了
skyleft
2016 年 11 月 18 日
三目运算符 还是 a if a>b else b 好点
Kilerd
2016 年 11 月 18 日
对于这种语义不明,或者说过度压缩代码的行为表示不屑。
coreki
2016 年 11 月 18 日
我也是用 if else 好些
knightdf
2016 年 11 月 18 日
python lua 里面这种写法多了去了

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

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

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

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

© 2021 V2EX