if a[start] <= target < a[mid]是否与a[start] <= target and target<a[mid] and a[start] < a[mid]相同?(我认为不是,但从视觉上看两者看起来是一样的)这是如何在引擎盖下工作的?找了这么久,却找不到答案。

最佳答案

这个

if a[start] <= target < a[mid]:

本质上是[*]和
if a[start] <= target and target < a[mid]:

(如果为true,则会出现a[start] < a[mid],因为<=应该是可传递的。)
[*]有一个微妙之处不适用于您的案例,但值得了解。链式表单只计算一次中间表达式,而展开式表单计算两次。如果中间表达式的计算成本很高或有一些副作用(例如将某些内容打印到屏幕上),这可能很重要。
相关文件:https://docs.python.org/3/reference/expressions.html#comparisons

关于python - 在python中,a <b <c是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58355953/

10-13 01:49