为什么我的代码 return 是一个整数,即使它不应该是?
Why does my code return a whole number even when it's not supposed to?
我在 Codewars 中做一个卡塔,你必须创建一个函数来接收类似运算符的字符串(本质上,该函数接收类似运算符的字符串,例如 "+"
并且必须将其转换为匹配运算符,在本例中为加号运算符)和 2 个值,value1
和 value2
。然后,该函数应该将这 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))
我在 Codewars 中做一个卡塔,你必须创建一个函数来接收类似运算符的字符串(本质上,该函数接收类似运算符的字符串,例如 "+"
并且必须将其转换为匹配运算符,在本例中为加号运算符)和 2 个值,value1
和 value2
。然后,该函数应该将这 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))