if a[start] <= target < a[mid]
与a[start] <= target and target<a[mid] and a[start] < a[mid]
相同吗? (我认为不是,但是看起来在外观上是相同的)这是如何工作的?在SO上进行搜索,但找不到答案。
答案 0 :(得分:5)
The
if a[start] <= target < a[mid]:
本质上与[p]相同
if a[start] <= target and target < a[mid]:
(如果为true,则a[start] < a[mid]
应该是可传递的,因为<=
应该是可传递的。)
[*]有一个微妙之处不适用于您的情况,但值得了解。链接形式仅对中间表达式求值一次,而扩展形式对它求值两次。如果中间表达式的计算成本很高或有一些副作用(例如在屏幕上打印一些内容),这可能很重要。
相关文档:https://docs.python.org/3/reference/expressions.html#comparisons