2013-10-21 81 views
0

我有一個由三列組成的txt文件,第一列是整數,第二列和第三列是浮點數。我想用每個浮點數進行計算並逐行分開。我的僞低於:在一個txt文件中使用浮點數的計算

def first_function(file): 
    pogt = 0. 
    f=open(file, 'r') 
    for line in f: 
     pogt += otherFunction(first float, second float) 
     f.close 

而且,那份「對F線」保證我的pogt將在txt文件的所有行的我otherFunction計算的總和?

+0

我的問題是如何獲得第一浮子和第二浮到我的其他功能 – Tina

+1

你需要給爲更多信息你的文本是如何定義的。數字是否以空格分隔?像這樣:'18 3.14 2.17'? – justhalf

回答

0

假設你得到的值first floatsecond float正確,你的代碼是接近正確,你需要迪登(縮進的倒數)的f.close線,甚至更好,使用with,它會處理的(順便說一句,你應該做f.close()而不是f.close

並且不要使用file作爲變量名,它是Python中的保留字。

也爲你的變量使用更好的名字。

假設您的文件由空格隔開,你可以定義get_numbers如下:

def get_numbers(line): 
    [the_integer, first_float, second_float] = line.strip().split() 
    return (first_float, second_float) 

def first_function(filename): 
    the_result = 0 
    with open(filename, 'r') as f: 
     for line in f: 
      (first_float, second_float) = get_numbers(line) 
      the_result += other_function(first_float, second_float) 
+0

請注意,'f.close'不管什麼都行,除非你把它叫做 – Eevee

+0

Yap,因爲我把代碼改成使用'with',所以我忘了包含那一點。謝謝,Eevee! – justhalf

+0

我得到NameError:全局名稱'get_numbers'沒有定義 – Tina