读取文件并进行数学运算
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]]
我研究这个已经有一段时间了。我进步了一小步,但卡住了。
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]]