为了分析文件中的数据,我编写了以下代码。但是,当我实现代码时,它只是挂起,并没有将一些派生数据打印到屏幕上。它有什么问题,如果有的话?在
#!/usr/bin/python2.7
infile=open("ratios.dat","r")
outfile=open("corr_ratios.txt","wb")
outfile2=open("corr_ratios2.txt","wb")
data=infile.readlines()
i=0
while i < len(data):
if i+2 < len(data) and data[i+2].startswith("Model "):
outfile.write(" ")
outfile.write("\n")
i=i+2;
elif i+8 < len(data):
targetline=data[i+8]
outfile.write(targetline.split(" ")[0]+"\n")
outfile2.write(targetline.split(" ")[2]+"\n")
i=i+11;
count=0
sum=0.0
infile2=open("corr_ratios.txt","r")
data2=infile2.readlines()
for j,line in enumerate(data2):
if data2[j]!=" ":
count=count+1
sum=sum+float(data[j])
mean=sum/count
print count,sum,mean
无限循环必须发生在while循环内部。
i
初始化为0。while循环会旋转,直到我碰到数组的边界。对于每个迭代,如果i+2
没有越界,并且当前行以“Model”开头,则将i向前推进2。否则,如果i+8
不会溢出边界,则将i
提前11。因此,如果这两个条件都不是真的,while循环将永远不会终止。在我想这个街区可能还需要其他条件:
我自己的错误。我访问了代码底部最后一个if语句中sum表达式中的“data”数组,而不是“data2”数组。在
应该是:
相关问题 更多 >
编程相关推荐