【发布时间】:2016-03-27 15:19:13
【问题描述】:
我在windows系统中使用Ipython Notebook,python版本是2.7。
df 是 pandas DataFrame 并且仅包含超出该负载范围的 4 个值。据我所知,“除了 VauleError”将仅执行 4 次。 但是为什么下面的代码会不断地执行'except ValueError'行和'print amp_p,amp_n'呢?我不知道为什么,但最后我在'print amp_p,amp_n'之后添加了'break',然后它就可以工作了。据我了解,“除了 ValueError”应该能够打破 while 循环。
import numpy as np
from scipy import interpolate
import PitchBearing_wohler as pw
load = np.linspace(-8000,8000,num=10,endpoint=True)
result=pd.read_csv('result.csv',header=None)
result[0]
SCF=3.
D=0.
srf=1
f=interpolate.interp1d(load,result[0])
for col in df.columns:
for ind in df.index:
cycle=df[col][ind]
if cycle==0.:
pass
else:
amp_p=float(col)/2.+float(ind)
amp_n=float(ind)-float(col)/2.
while True:
try:
range_new=f(amp_p)-f(amp_n)
mean_new=(f(amp_p)+f(amp_n))/2
break
except ValueError:
print amp_p,amp_n,cycle
#break # Added after I found the while loop won't break
【问题讨论】:
标签: python