Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';浮动';对象在Python中不可调用_Python_Python 3.x - Fatal编程技术网

类型错误:';浮动';对象在Python中不可调用

类型错误:';浮动';对象在Python中不可调用,python,python-3.x,Python,Python 3.x,我对编码相当陌生,所以这可能是一个愚蠢的问题,但当我尝试运行我的程序时,我会遇到标题中提到的错误。 似乎是问题所在的代码位是: def branch(replicas): ER = d * 0.5 * w N0 = len(replicas) newReplicas = [] ##### Error on this line for j in range( len(replicas) ): replica = replicas[j]

我对编码相当陌生,所以这可能是一个愚蠢的问题,但当我尝试运行我的程序时,我会遇到标题中提到的错误。 似乎是问题所在的代码位是:

def branch(replicas):
    ER = d * 0.5 * w
    N0 = len(replicas)
    newReplicas = []   ##### Error on this line 

    for j in range( len(replicas) ):

        replica = replicas[j]

        r2 = 0

        for x in replica:

            r2 += x * x

            V = 0.5 * mass * w**2 * r2

            W = exp(-(V - ER) / rootT)

            mn = int(W + random.uniform(0,1))

            if mn >= 3:

                newReplicas.append( replica )

                newReplicas.append( replica )

                newReplicas.append( replica )

            elif mn == 2:    

                newReplicas.append( replica )

                newReplicas.append( replica )

            elif mn == 1:

                newReplicas.append( replica )

    replicas = newReplicas
    N1 = len(replicas)
    ER = ER + ((hbar/deltaT)(1-(N1/N0)))

任何帮助都将不胜感激。提前谢谢

我想你的问题就在这里

ER = ER + ((hbar/deltaT)(1-(N1/N0)))
我想你想要的是这个

ER = ER + ((hbar/deltaT)*(1-(N1/N0)))
Python认为您想要的是调用通过计算

hbar/deltaT
1-(N1/N0)
所以如果

然后它认为您试图调用它创建的float对象,在本例中,它将是一个值为2.0的float对象,参数为求值结果

hbar/deltaT
1-(N1/N0)
因为float对象是不可调用的,所以这不起作用,并引发异常

基本上,您可以通过将乘法运算符放在

(hbar/deltaT)

((hbar/deltaT)*(1-(N1/N0)))

这就是我认为你想要做的。除非你不想做乘法

你的最后一行应该做什么?最后一行应该修改一个变量ER,我在这里可以看到的块前面的一行中定义了这个变量。谢谢你指出这一点,我已经修复了它,不再得到错误!我冒昧地猜测,在闭括号和开括号之间有一个乘法。否则,将在那里生成TypeError。在全局上下文中定义了许多变量:d、w、mass。这不是问题,但也不是好的做法。这些变量都是我需要在程序的各个部分使用的输入值。在全球范围内定义事物有什么坏处?