python3 ValueError:无法将字符串转换为float,value=float(value)无效

2024-04-20 09:09:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python命令有一个问题。我想让我的程序从我的文件中读取一行,在这里我没有问题。问题是当我必须转换成一个浮点数(我需要浮点数来计算一些等式)。我的计划是:

f=open('coeff.txt')
lines=f.readlines()

k1=lines[0]

k1 = float(k1)


k2=lines[1]

k2 = float(k2)


k3=lines[2]

k3 = float(k3)

k4=lines[3]

k4 = float(k4)

文件呢系数.txt是:

^{pr2}$

即1.2*10^(-1),6*10^(-34),1.13*10^(-4),6.9*10^(-16)

我得到了一个错误:

ValueError: could not convert string to float: '6.00*1e-34\n'

(obviously that this error is referred to each line.

你能帮帮我吗?在


Tags: 文件to命令程序txtk2k1open
2条回答

Python不知道如何将'6.00*1e-34\n'解释为float。在实际使用数据之前,必须先清理数据。在

最终,您将希望每行都采用如下格式: 6.00e-34

仔细观察,似乎唯一的区别是在结尾的^ {CD3>},中间的^ {CD4}}。在

您可以通过调用^{}方法来除去字符串(\n)末尾的newline character,并使用空字符串replace*1来获得上述格式。在

val = '6.00*1e-34\n'
cleaned_val = val.strip().replace('*1', '')
print(float(cleaned_val))
>>> 6e-34

编辑:似乎换行符的出现并不重要,因此只需要替换字符串中的*1部分。不管怎样,我还是把它留在里面。在

你的问题是接线员*

相关问题 更多 >