我建模的粒子通過不同的層移動,一旦移動通過層我希望它打印了一些東西。我的問題是粒子可以移回前一層並再次出來,這會觸發它再次打印,我不希望這樣。打印一次在嵌套循環
while math.sqrt((pho.pos.x)*(pho.pos.x)+(pho.pos.y)*(pho.pos.y)+(pho.pos.z)*(pho.pos.z))<10:
x=random.uniform(-j,j)
y=random.uniform(-j,j)
z=random.uniform(-j,j)
step=(x,y,z)
t=t+dt
pho.pos=pho.pos+step
print 'Step Number', t
rate(speed)
d=math.sqrt((pho.pos.x)*(pho.pos.x)+(pho.pos.y)*(pho.pos.y)+(pho.pos.z)*(pho.pos.z))
'''if d>10:
print pho.pos
print d
print 'Out of Layer 1 in',t,'steps!'
break
else:
pass'''
d=math.sqrt((pho.pos.x)*(pho.pos.x)+(pho.pos.y)*(pho.pos.y)+(pho.pos.z)*(pho.pos.z))
print pho.pos
print d
print 'Out of Layer 1 in',t,'steps!'
我不想重複的部分是最後三個報表打印,我已經試過了break語句,但是這個代碼是一個嵌套循環,當它被重新環狀它在休息前開始。