【发布时间】:2016-01-30 08:50:57
【问题描述】:
我正在尝试读取包含大量值的文本文件。所以首先我将所有值附加到我的列表中,我的任务是找到这些值的总和。
在附加时,我会执行以下操作:lst.append(float(values))。
我收到一个错误,因为值列表中有 DNE 这样的字母字符串。
那么如果value == 'DNE' 我该如何忽略它,让程序只关注浮点值并添加它。
添加我知道它是sum(lst),只是想知道如何忽略'DNE'
【问题讨论】:
我正在尝试读取包含大量值的文本文件。所以首先我将所有值附加到我的列表中,我的任务是找到这些值的总和。
在附加时,我会执行以下操作:lst.append(float(values))。
我收到一个错误,因为值列表中有 DNE 这样的字母字符串。
那么如果value == 'DNE' 我该如何忽略它,让程序只关注浮点值并添加它。
添加我知道它是sum(lst),只是想知道如何忽略'DNE'
【问题讨论】:
使用try/except 并忽略无法将值转换为浮点数时引发的特定异常:
try:
lst.append(float(values))
except ValueError as exc:
pass
【讨论】:
当尝试将字符串转换为数值时,您将收到 ValueError 异常,因为这是不允许的。
您需要将 append() 调用包装在 try-except 块中以捕获这些错误并以适当的方式处理它们:
一个简单的块:
try:
lst.append(float(value))
except ValueError:
print "Cannot convert String to Float!"
应该够了。
【讨论】: