"TypeError: can only concatenate tuple (not "浮") to tuple"



我正在编写一个程序来打开和读取一个txt文件,并通过每行循环。将第二列和第四列中的值相乘,并将其分配给第五列。

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)

我一直得到错误提示,

文件"C:/Users/hee lim/Desktop/readfile2.py",第19行,在main中E = eval(b) + eval(d)TypeError:只能将元组(不是"float")连接到元组

我将字符串转换成数字,使用"eval"将这些数字相乘。我不明白为什么它标记了一个错误。

谢谢你的帮助。

看这个信息,我只能看出bdeval返回的值是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,以查看它引发错误的值。

在我的例子中,我得到了这个错误,因为我错误地删除了一个索引在我的for循环试图枚举。

Before(无错误)for i, item in enumerate(items):

后(错误)for item in enumerate(items):

相关内容

最新更新