为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2023-10-11 15:38:01
我正在读取一个文本文件,其中每行包含两个用逗号分隔的浮点数(x,y),如下所示:5.2,4.42.2,7.23.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))
查看完整描述

4 回答

?
慕村9548890

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()。


查看完整回答
反对 回复 2023-10-11
?
猛跑小猪

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()]])



查看完整回答
反对 回复 2023-10-11
?
哔哔one

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)


查看完整回答
反对 回复 2023-10-11
?
幕布斯7119047

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]


查看完整回答
反对 回复 2023-10-11
  • 4 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信