Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中是否有一种从字符串中读取两个浮点的方法_Python - Fatal编程技术网

Python中是否有一种从字符串中读取两个浮点的方法

Python中是否有一种从字符串中读取两个浮点的方法,python,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,和=9.6 以下是我尝试过的: with open("data.txt", "r") as f: myFile = f.read() a = myFile.splitlines(

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

5.2,4.4
2.2,7.2
3.6,6.9
我需要从每行中读取每两个浮点数,对它们进行一些计算,例如,第一行,我有5.2+4.4,然后在这一端像这样打印:x=5.2,y=4.4,和=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))
也许这会有帮助:

打开(“text.txt”,“r”)作为f:
data=[f.readlines()中i的元组(i.strip().split(“,”)]
总和=[float(i[0])+数据中i的float(i[1])]
打印(金额)
这是怎么回事

  • 我循环遍历每一行,创建一个以逗号分隔的数字元组
  • 我将元组的每个元素相加,形成一个总和数组
为了以防万一,这是一行,因为为什么不:^)

print([float(i[0])+float(i[1])表示i在[tuple(i.strip().split(“,”)中表示i在open中表示i(“text.txt”,“r”).readlines()]))

关键是数字将以字符串形式从文件中出来,因此必须先将它们转换为浮点数,然后才能添加它们

您可以这样做:

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\ucode>,是因为有一个内置函数名为
sum()

只需逐行检查并使用
ast.literal\u eval

>>> import ast
>>> line = '5.2,4.4'

>>> x, y = ast.literal_eval(line)
>>> x, y, x+y
(5.2, 4.4, 9.600000000000001)

在执行任何操作之前,请在读取文件后将数字转换为浮点。 你可以试试这个

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]

只需通过
line.split(',')
将每一行和逗号分开,然后对每个元素调用
float()
。你不知道该怎么做?这是否回答了你的问题?这将进行字符串连接,您需要将其转换为浮点数。@kwinkunks是的,对此很抱歉,在您发送之前我刚刚捕获了它,现在应该可以编辑了