我正在为我用python玩的游戏创建一个balistics计算器。这给了我一个错误

我正在为我用python玩的游戏创建一个balistics计算器。这给了我一个错误,python,Python,好的,所以基本上显示的代码只用于计算游戏中子弹达到某个伤害值的距离,使用线性插值。现在我最近修改了它,使伤害乘数乘以范围本身。但是,它随后开始给我这个错误: Traceback (most recent call last): File "main.py", line 18, in <module> R = M((u-L)*(b-a)/(u-v)+a) TypeError: 'float' object is not callable 回溯(最近一次

好的,所以基本上显示的代码只用于计算游戏中子弹达到某个伤害值的距离,使用线性插值。现在我最近修改了它,使伤害乘数乘以范围本身。但是,它随后开始给我这个错误:

Traceback (most recent call last):
  File "main.py", line 18, in <module>
    R = M((u-L)*(b-a)/(u-v)+a)
TypeError: 'float' object is not callable
回溯(最近一次呼叫最后一次):
文件“main.py”,第18行,在
R=M((u-L)*(b-a)/(u-v)+a)
TypeError:“float”对象不可调用
你能找出这是什么原因吗?我该怎么解决?这是密码

#u = max dmg
#v = min dmg
#a = max dmg range
#b = min dmg range
#L = specific damage
#R = specific range
#M = damage multiplier
#ROC is (v-u)(b-a)
#(R-a)(v-u)/(b-a) + u = L is function for damage at specific range
#(u-L)(b-a)/(u-v) + a = R is for finding range at specific damage

u = float(input("Max Damage: "))
v = float(input("Min Damage: "))
a = float(input("Max Damage Distance (The LOWER Stud Value): "))
b = float(input("Min Damage Distance (The HIGHER Stud Value): "))
L = float(input("Damage: "))
M = float(input("Damage Multiplier: "))
R = M((u-L)*(b-a)/(u-v)+a)

if R < a:
  L = M*u
elif R > b:
  L = M*v

print(L, "Damage at", R, "Studs")
#u=max dmg
#v=最小dmg
#a=最大dmg范围
#b=最小dmg范围
#L=特定损坏
#R=特定范围
#M=损伤乘数
#中华民国是(v-u)(b-a)
#(R-a)(v-u)/(b-a)+u=L是特定范围内的损伤函数
#(u-L)(b-a)/(u-v)+a=R用于确定特定损伤的范围
u=浮动(输入(“最大损坏:”)
v=浮动(输入(“最小损坏:”)
a=浮动(输入(“最大损坏距离(下部螺柱值):”)
b=浮动(输入(“最小损坏距离(较高的螺柱值):”)
L=浮动(输入(“损坏:”)
M=浮动(输入(“损害乘数:”)
R=M((u-L)*(b-a)/(u-v)+a)
如果Rb:
L=M*v
打印(L,“损坏位置”,R,“螺柱”)

错误提示您试图调用浮点值。实际上,表达式
M((u-L)*(b-a)/(u-v)+a)
意味着用参数调用M
(u-L)*(b-a)/(u-v)+a
。我猜你是想用M乘以这个值。在这种情况下,您应该键入
R=M*((u-L)*(b-a)/(u-v)+a)
M((u-L)*(b-a)/(u-v)+a)
中M后面的括号,它被解释为在M上调用某个对象,这是一种基本数据类型。用
M*((u-L)*(b-a)/(u-v)+a)
替换它可以解决您的所有问题。

使用此代码
R=M((u-L)*(b-a)/(u-v)+a)
?您需要一个
*
符号进行乘法。