4 回答
TA贡献1884条经验 获得超4个赞
关键是数字将以字符串形式从文件中出来,因此您必须先将它们转换为浮点数,然后才能添加它们。
你可以这样做:
with open("data.txt", "r") as f:
for line in f:
x, y = line.split(',')
sum_ = float(x) + float(y)
print('x= {}, y= {}, sum= {}'.format(x, y, sum_))
我之所以这么称呼它,sum_是因为有一个名为 的内置函数sum()。
TA贡献1858条经验 获得超8个赞
也许这可以帮助:
with open("text.txt", "r") as f:
data = [tuple(i.strip().split(",")) for i in f.readlines()]
sums = [float(i[0])+float(i[1]) for i in data]
print(sums)
这里发生了什么?
我循环遍历每一行,创建一个由逗号分隔的数字元组
我将元组的每个元素加在一起制作一个总和数组
如果您想要的话,这里有一个衬里,因为为什么不呢:^)
print([float(i[0])+float(i[1]) for i in [tuple(i.strip().split(",")) for i in open("text.txt", "r").readlines()]])
TA贡献1854条经验 获得超8个赞
只需越过线路并使用ast.literal_eval:
>>> import ast
>>> line = '5.2,4.4'
>>> x, y = ast.literal_eval(line)
>>> x, y, x+y
(5.2, 4.4, 9.600000000000001)
TA贡献1794条经验 获得超8个赞
在读取文件后执行任何操作之前将数字转换为浮点数。你可以试试这个
f = open("data.txt", "r")
r = [x.split(",") for x in [line.rstrip('\n') for line in f]]
print(r)
#[['5.2', '4.4'], ['2.2', '7.2'],['3.6','6.9']]
results = [float(x[0]) + float(x[1]) for x in r]
print(results)
#[9.6, 9.4, 10.5]
添加回答
举报