读取文件并进行数学运算

Reading a file and doing math

我研究这个已经有一段时间了。我进步了一小步,但卡住了。

txt 文件包含如下所示的浮点值,例如:

2921.492649999950 5520.499056604050 2670.121720935130 -3.54035405410219 4.39482975106974 -5.18433931744563
1975.765991528470 6361.404021360910 1343.558197474950 -4.29247850018471 2.56997398564163 -5.80254821596864

我的代码应该做的是读取一行中的前三个数字,将它们平方,然后相加,然后对同一行的下三个数字执行相同的操作线.

示例: 第一行有:a b -c, d, -e, -f => a^2 + b^2 + c^2 = 变量 1

=> d^2 + e^2 + f^2 = 变量 2

然后对下一行重复,然后对文件中的每一行重复。

我正在尝试针对一个非常简单的案例执行此操作,因为我很难理解如何处理从文件中读取和操作数据。我迷失了 int、floats、str 和错误消息等

我的程序正在做的是逐位读取每个(浮点)数字,而不是我想要的整个十进制数字,需要一些帮助。

我需要保留数字的所有小数位。

谢谢

fp = open('ISS TEST Numbers.txt', "r")

line = fp.readline()
print( float(line[0])**2)
n = 0
while n <= len(line):
    print(len(line))
    cnt = 1

    print( float(line[0])**2 + float(line[1])**2 + float(line[2])**2 )
    print(float(line[6]) ** 2 + float(line[8]) ** 2 + float(line[10]) ** 2)

    while line:
        print(line.strip())
        line = fp.readline()

        cnt += 1
        n = n + 1
fp.close()

您可以使用

打开和阅读文件
with open('ISS TEST Numbers.txt', "r") as in_file : text_numbers = in_file.read()

然后从字符串中提取数字,为每一行创建一个数字列表

num_by_line = [[float(num) for num in line.split()] 
                for line in text_numbers.split("\n")]

最后您可以遍历每个列表,对平方求和

variables = [[sum(list_num[3*y+x]**2 for x in range(3)) 
              for y in range(len(list_num)//3)]
              for list_num in num_by_line]

使用我们获得的示例文件打印variables

[[46140579.14257951, 58.72600952769815], [46176261.00626936, 58.69970376006354]]