Python中有没有一种方法可以从字符串中读取两个浮点数

我正在读取一个文本文件,其中每行包含两个用逗号分隔的浮点数(x,y),如下所示:


5.2,4.4

2.2,7.2

3.6,6.9

我需要从每行读取每两个浮点数,对它们进行一些计算,例如第一行,我有 5.2 + 4.4,然后在这一端打印它,如下所示:x = 5.2,y = 4.4 和 sum = 9.6


这是我尝试过的:


with open("data.txt", "r") as f:

    myFile = f.read()

    a = myFile.splitlines()

    (here i cant find how to read the floats to do the sum)

    print ('x= {}, y= {}, sum= {}'.format(x, y, sum))


RISEBY
浏览 144回答 4
4回答

慕村9548890

关键是数字将以字符串形式从文件中出来,因此您必须先将它们转换为浮点数,然后才能添加它们。你可以这样做: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()。

猛跑小猪

也许这可以帮助: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()]])

哔哔one

只需越过线路并使用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)

幕布斯7119047

在读取文件后执行任何操作之前将数字转换为浮点数。你可以试试这个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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python