检查浮点数是否在Python中两个数字之间的优雅方法?

时间:2019-05-07 14:39:54

标签: python floating-point numbers logic

如何检查x是否在a和b之间?

a = 9
b = 7
x = 7.5

我想到了这个

a < x < b or b < x < a

从我进行的一些测试来看,它似乎可以胜任工作,但看起来不可读且令人困惑。还有其他更好的方法吗?

3 个答案:

答案 0 :(得分:3)

如何使用:

  ...
    d3.json("../../assets/plz_map_ger.json")
      .then(function(top:any) {
           g.selectAll('path')
          // explicit cast
          .data((t.feature(top, top.objects.plz5stellig) as GeometryCollection).features)
          .enter()
          .append('path')
          .attr('d', path)
          .attr("class","kreisgrenzen")
          .on("click", function() {
            d3.select(this).attr("class","selected-kreis");
          });
      });

答案 1 :(得分:1)

我认为这可能是您所需要的。我的另一个答案是胡说八道,我写得太快了。

def is_between(a, x, b):
    return min(a, b) < x < max(a, b)

考虑到a和b绝不能为None。它们都应该是有效数字

答案 2 :(得分:1)

想到了这四个:

min(a, b) < x < max(a, b)

a < x < b if a < b else b < x < a

(a - x) * (b - x) < 0

not (b < x > a and a < x > b)

但是仍然认为您的版本是最好的。