2017-01-23 11 views
0

質問:テキストファイルからデータを読み込み、関数を呼び出してデータを使用したい。しかし、私はのためのループ内の関数のCp(T)に呼び出されたときのラインで、この出力ラインを読みたいPythonのテキストファイルからデータを読み込み、後で関数で使用する

f1 = open('file.dat', 'r') 
for x in (raw.strip().split() for raw in f1): 
    print x[0],x[1] 

def cp(T): 
    Tc=647. 
    tau=Tc/T 
    sum1 = 0.0 
    n3=3.00632 
    for i in range(1,5): 
      num1=((x[1]*tau)**2.)*math.exp(-x[1]*tau) 
      den1=(1.-math.exp(-x[1]*tau))**2. 
      sum1=sum1+((x[0]*num1)/den1) 
    return Ra*(1.+n3+sum1) 

********************************************** 
Output: 
0.97315 3.53734222 
1.27950 7.74073708 
0.96956 9.24437796 
0.24873 27.5075105 

:私のコードは次のようになります。たとえば、i = 1の場合、x [0]は0.97315、y [0]は3.53と、i = 2のときはx [1] = 1.27950、y [1] = 7.740737、そうです。私の質問がはっきりしていることを願っています 誰かが関数内のデータを呼び出す方法を手伝ってもらえますか?

答えて

0

あなたの質問を完全に理解しているかどうかは完全にはわかりませんが、この行に沿って何かを探していると思いますか?

def cp(T, filename): 
    Tc = 647. 
    tau = Tc/T 
    sum1 = 0.0 
    n3 = 3.00632 

    results = [] 
    file = open(filename, 'r') 
    for x in (raw.strip().split() for raw in file): 
     num1 = ((x[1] * tau) ** 2.) * math.exp(-x[1] * tau) 
     den1 = (1. - math.exp(-x[1] * tau)) ** 2. 
     sum1 = sum1 + ((x[0] * num1)/den1) 
     results.append(Ra * (1. + n3 + sum1)) 
    file.close() 
return results 

cp(T, 'file.dat') 
+0

はい、私はデータを行ごとにforループで読みたいと思っていました。 num1 =((x [1] * tau)** 2)* math.exp(-x [1] * tau) TypeError:1つの要素を持つ整数配列のみが、インデックス – user274219

+0

私は何が間違っているか知っています。 τ= Tc/Tここで、Tは他のどこかから読み込まれた配列です。その配列からTを1つの要素(行単位)として読み取る方法。 – user274219

関連する問題