为什么我的代码 return 是一个整数,即使它不应该是?

Why does my code return a whole number even when it's not supposed to?

我在 Codewars 中做一个卡塔,你必须创建一个函数来接收类似运算符的字符串(本质上,该函数接收类似运算符的字符串,例如 "+"并且必须将其转换为匹配运算符,在本例中为加号运算符)和 2 个值,value1value2。然后,该函数应该将这 3 个变成一个方程,return 该方程的结果(例如:func("+", 50, 20) returns 70)。

截图:

代码:

def basic_op(operator, value1, value2):
    opFuncs = {"+": (lambda x,y: x+y),
           "-": (lambda x,y: x-y),
           "*": (lambda x,y: x*y),
           "/": (lambda x,y: x/y)
          }
    return int(opFuncs[operator] (value1, value2))

除了屏幕截图中包含的红色错误外,其他一切似乎都很顺利。所以在那种情况下,我的函数 returned 0 但它必须是 0.005101...。知道这里发生了什么吗?

您正在 returning: int(opFuncs[operator] (value1, value2))

int() 使您的 return 值成为整数,这意味着它会丢弃小数位。

尝试 returning: float(opFuncs[operator] (value1, value2))