是if a[start] <= target < a[mid]一样的a[start] <= target and target<a[mid] and a[start] < a[mid]吗?(我认为不是,但在视觉上看起来两者是相同的)这在引擎盖下是如何工作的?在 SO 上搜索,但找不到答案。
1 回答

绝地无双
TA贡献1946条经验 获得超4个赞
这
if a[start] <= target < a[mid]:
本质上 [*] 与
if a[start] <= target and target < a[mid]:
(如果为真,那么a[start] < a[mid]
, since<=
应该是可传递的。)
[*] 有一个微妙之处不适用于您的案例,但值得了解。链式形式只计算一次中间表达式,而扩展形式计算两次。如果中间表达式的计算成本很高或有一些副作用(例如在屏幕上打印某些内容),这可能很重要。
相关文档:https ://docs.python.org/3/reference/expressions.html#comparisons
添加回答
举报
0/150
提交
取消