Python 字符串未按预期转换为浮点

Python 字符串未按预期转换为浮点,python,floating-point,Python,Floating Point,我在将str转换为float时遇到了一个问题。我确实喜欢,但这次它不起作用,因为我有以下格式的数字: 5.50000e+000 5.50000e+001 5.50000e+002 5.50000e+003 如果我更改了格式(例如使用5.555500),它可以正常工作。回溯仅表示: Traceback (most recent call last): File "phresREADER.py", line 27, in <module> tra = float(stri

我在将
str
转换为
float
时遇到了一个问题。我确实喜欢,但这次它不起作用,因为我有以下格式的数字:

5.50000e+000 5.50000e+001 5.50000e+002 5.50000e+003 
如果我更改了格式(例如使用
5.555500
),它可以正常工作。回溯仅表示:

Traceback (most recent call last):
  File "phresREADER.py", line 27, in <module>
    tra = float(stri)
ValueError: could not convert string to float:
当我打印平均能量时,我得到

['5.50000e+000','5.50000e+001','5.50000e+002','5.50000e+003','\n']


答案在KOJIRO的评论中,您在其中一个列表单元格中有一个
'\n'

因此,当迭代尝试将
'\n'
转换为浮动时,它会引发
值错误

请尝试以下代码:

avg_energySTR = "5.50000e+000 5.50000e+001 5.50000e+002 5.50000e+003"
avg_energySTR = [str(i) for i in avg_energySTR.split()]
avg_energy = []
for stri in avg_energySTR:
        tra = float(stri)
        avg_energy.append(tra)
print (avg_energy)
您也可以只在以下位置拆分:

avg_energySTR = "5.50000e+000 5.50000e+001 5.50000e+002 5.50000e+003 \n"
avg_energy = []
for stri in avg_energySTR.split():
       .......
更改:

avg_energySTR = [str(i) for i in my_line.split(' ')]
致:


从注释中可以看出,行的末尾似乎有额外的空格。如果您使用默认的分割算法(不传递任何参数,或者传递
None
),那么尾部的空格将被忽略。

float(“5.50000e+000”)
对我有效。python 2.7也对我有效,您能向我们展示您的输出/跟踪吗?刚刚在控制台上对Python2.7和Python3.3
float(“5.50000e+000”)进行了测试
输出
5.5
float(5.50000e+000)
输出
5.5
,甚至只需输入
5.50000e+000
输出
5.5
@user3254025在
之前添加
打印(avg_energySTR)
,以循环并发布所获得的内容。执行
拆分()
不带参数:可能您的空白不仅仅是
'
字符。或者只是
avg_energy=[avg_energySTR.split()中stri的浮点(stri)]
avg_energySTR = [str(i) for i in my_line.split(' ')]
avg_energySTR = my_line.split()