【发布时间】:2014-10-27 23:29:03
【问题描述】:
以下代码有问题:
for n in range(0,i)+range(i+1,len(XY_pos)): # excludes i==n
if distance(XY_temp,i,n)<sigma:
XY_temp[i]=XY_pos[i] # back to before the move
break
else:
XY_pos[i]=XY_temp[i] # move accepted
accepted_moves+=1
NUMBER.append(number(r))
# overlap condition
这部分代码是使用位于 XY_temp[i] 中的粒子移动或不移动的代码。 我用更简单的方法尝试了这种结构,它似乎可以工作,但不是在这里。 我没有任何错误消息,但我可以在结果中看到 else 之后的部分即使应该执行也不会执行。 我有人能想到一个解释,这将是热烈欢迎
我真的是 Python 的新手,所以我希望这不是一个愚蠢的问题,但是经过数小时的网络搜索和自己寻找解决方案后,我在这里提问。
我尝试在与“if”相同的标识级别上使用 break,但它似乎没有改变任何东西。
谢谢
【问题讨论】:
标签: python loops if-statement for-loop