【发布时间】:2015-10-30 06:27:33
【问题描述】:
我对编码很陌生,所以这可能是一个愚蠢的问题,但是当我尝试运行我的程序时,我得到了标题中提到的错误。 似乎有问题的代码是这样的:
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,您可以在此处看到。感谢您指出这一点,我已修复它,不再出现错误!
-
我冒险猜测在闭括号和开括号之间存在乘法。否则,这将是生成 TypeError 的地方。
-
在全局上下文中定义了许多变量:d、w、mass。不是问题,但也不是好的做法。
-
这些变量都是我需要在程序的各个部分使用的输入值。在全球范围内定义事物有什么不好?
标签: python python-3.x