2016-10-08 87 views
0

我正在編寫一個程序來打開並讀取一個txt文件並遍歷每一行循環。將第2列和第4列的值相乘並將其分配給第5列。「TypeError:只能連接元組(而不是」浮點「)爲元組」

A 500.00 A 84.15 ? 

B 648.80 B 77.61 ? 

C 342.23 B 39.00 ? 

這是我寫的代碼的一部分,

for line in infile: 
    a,b,c,d = line.split() 
    e = eval(b) + eval(d) 

    print("{0:20}${1:20}{2:20}${3:20}{4:20}".format(a,b,c,d,e),file=outfile) 

我一直得到錯誤使用 「EVAL」 相乘這些數字說,

File "C:/Users/hee lim/Desktop/readfile2.py", line 19, in main e = eval(b) + eval(d) TypeError: can only concatenate tuple (not "float") to tuple

我的祕密字符串轉換爲數字。 我不明白它爲什麼會標記錯誤。

謝謝你的幫助。

+0

請填寫您的完整代碼。 –

+0

@TilakMadichetti我相信你的意思是_paste_。 –

回答

1

看着這個信息,我只能告訴大家,通過bevald返回的值是floattuple類型。你不能在floattuple上做+。例如:

>>> 5.0 + (2 ,3) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unsupported operand type(s) for +: 'float' and 'tuple' 

要進行調試,在for循環的開始添加print line看到什麼值,所籌集的錯誤。

+0

非常感謝你!!!當我使用你的代碼進行調試時,我發現在我的原始txt文件中有一個錯字「1400」,python將它識別爲一個元組。 – heej

相關問題