语句"ai=GEH“没有将GEH的值赋给列表。为什么会这样呢?如果有人能告诉我我做错了什么,我将不胜感激。
代码:-
import os, sys
global rec
def interpret_string(s):
if not isinstance(s, str):
return str(s)
if s.isdigit():
return int(s)
try:
return float(s)
except ValueError:
return s
f= open("turn.prn","r")
f1=open('turn.out', 'a')
if f.mode == 'r':
fl = f.readlines()
i = 0
a = [0.0] * 1000
rec = [0] * 1000
for x in fl:
vol = interpret_string(x[90:96])
ul1 = interpret_string(x[32:40])
ul2 = interpret_string(x[41:49])
if vol != str(x[90:96]):
if vol > 0 and ul1 > 0:
Diff = (((ul1 - vol) / ul1) ** 2) ** 0.5
GEH = (((2 * (ul1-vol)**2))/(ul1+vol))**0.5
if GEH > 0.0 :
a[i]=GEH
rec[i] = i
i=i+1
print(i,a[i],rec[i],GEH)
f.close()
f1.close()问候
栅格
发布于 2017-04-25 14:09:59
如果现在没有可能测试它,但是由于您似乎希望有一个包含" None“值(如果If不匹配)和"GEH”(如果匹配)的列表,我将使用"else“-语句并附加None。
import os, sys
global rec
def interpret_string(s):
if not isinstance(s, str):
return str(s)
if s.isdigit():
return int(s)
try:
return float(s)
except ValueError:
return s
f= open("turn.prn","r")
f1=open('turn.out', 'a')
if f.mode == 'r':
fl = f.readlines()
i = 0
a = [0.0] * 1000
rec = [0] * 1000
for x in fl:
vol = interpret_string(x[90:96])
ul1 = interpret_string(x[32:40])
ul2 = interpret_string(x[41:49])
if vol != str(x[90:96]):
if vol > 0 and ul1 > 0:
prin = false # This will trigger the print only if the if-
# condition is met
Diff = (((ul1 - vol) / ul1) ** 2) ** 0.5
GEH = (((2 * (ul1-vol)**2))/(ul1+vol))**0.5
if GEH > 0.0 :
a.append(GEH)
prin = true
else :
a.append(None)
rec[i] = i
i=i+1
if prin :
print(i,a[i],rec[i],GEH)
f.close()
f1.close()很抱歉打印出乱七八糟的"if“--这是我能想到的最简单的方法;)。正如我所说的,我不能测试,但我认为这可以工作。
https://stackoverflow.com/questions/43600099
复制相似问题