我很肯定这个解决方案很简单,但不知怎么的,通常的浮动不起作用。
output = open('output.txt', 'wt')
with open('input.txt', 'r') as file:
file = file.readlines()
for x in range(0,len(file)):
if file[x][0:6] == 'NUMBER':
print(file[x][11:18])
float(file[x][11:18])打印将给我'11111‘,但浮动给我错误的ValueError:无法将字符串转换为浮动:这里正在发生的事情。我需要它作为浮动来做一些数学运算。
更新。我想是因为我想转换一个空空间。第一行将导致此错误。浮动(‘’)会产生错误。
NUMBER
*
NUMBER 111111111111111111111发布于 2017-03-03 03:26:05
@Bijoy在注释中给出的观点的一个版本:如果问题是'NUMBER'后面的字符串有时是空的,这种情况应该始终映射到浮点0.0,那么您可以使用错误捕获来编写一个特殊的float()版本。
def getfloat(s):
try:
return float(s)
except ValueError:
return 0.0这将适用于您的情况,虽然有违反直觉的行为,例如getfloat("hello world") == 0.0
https://stackoverflow.com/questions/42569281
复制相似问题