min()是-0还是其他问题?

时间:2019-02-03 21:26:51

标签: python python-3.x

在python中尝试任务时,我遇到了以下问题,因为-0.0000由于某种原因被解释为最小值: Python和R中的以下代码显示了问题和区别:

$(function() {
  function detEdgeDiff(el) {
    var par = el.parent();
    var head = $(".elHeader", el);
    // Calc expected bottom
    var elBottom =  el.position().top + head.height() + 200;
    // Calc bottom edge + Margin of Parent
    var parBottom = par.position().top + par.height() + 20;
    // Default height
    var results = 200;
    if (elBottom > parBottom) {
      var diff = Math.round(elBottom - parBottom);
      results = 200 - diff;
    }
    return results;
  }
  var $element = $(".element");
  $element.draggable({
    containment: ".container",
    handle: ".elHeader"
  });

  $(".expand").on("click", function(e) {
    var d = detEdgeDiff($element);
    $(".elBody").css("height", d + "px").slideToggle();
  });
});

Python具有以下结果:

# Python code
a1 = ['-0.0069', '-0.0201', '0.0194', '-0.0000']
a2 = ['-0.0069', '-0.0201', '0.0194']
print("Minimum value from ['-0.0069', '-0.0201', '0.0194', '-0.0000'] is " + min(a1))
print("Minimum value from ['-0.0069', '-0.0201', '0.0194'] is " + min(a2))

# R code
> a2 <- c(-0.0069, -0.0201, 0.0194)
> a1 <- c(-0.0069, -0.0201, 0.0194, -0.0000)
> min(a1)
[1] -0.0201
> min(a2)
[1] -0.0201

R正确地输出,如代码结果在行下方所示。

如何解释?我相信-0一般没有定义,但是对Python意味着什么呢?为什么在min()函数中未将其排除或定义为无效?作为一般规则,这是否适用于其他类似功能? R由于某种原因而做的不同。 谢谢!

1 个答案:

答案 0 :(得分:3)

那些是字符串。删除数字周围的引号。

a1 = [-0.0069, -0.0201, 0.0194, -0.0000]
a2 = [-0.0069, -0.0201, 0.0194]

print(f"Minimum value from {a1} is {min(a1)}")  # -0.0201
print(f"Minimum value from {a2} is {min(a2)}")  # -0.0201