我在 Codewars 中做一個 kata,你必須創建一個函式來接收類似運算子的字串(例如,基本上該函式接收類似運算子的字串," "并且必須將其轉換為匹配的運算子,在這種情況下,加號運算子),和 2 個值,value1和value2。然后,該函式應該將這 3 個轉換為一個方程并回傳該方程的結果(例如:func(" ", 50, 20) 回傳 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))
除了螢屏截圖中的紅色錯誤之外,其他一切似乎都很順利。所以在那種情況下,我的函式回傳了0,但它必須是0.005101.... 知道這里發生了什么嗎?
uj5u.com熱心網友回復:
您正在回傳:int(opFuncs[operator] (value1, value2))
int() 使您的回傳值成為整數,這意味著它正在丟棄小數位。
嘗試回傳:float(opFuncs[operator] (value1, value2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464875.html
上一篇:繪制不同值的總和
下一篇:如何自動組合不同的方程
