Python的 - 处理值误差(Python - Handling value errors)

2019-10-19 10:39发布

我运行应返回一个字符串外部函数 - 有时,然而,此函数失败和字符串是空的。 我想该行为是“如果字符串为空(即会发生错误的值),而不是打印‘?’ 串到我的CSV)。

这里是我的代码:

    outlist = output.split('\r\n') #splitting the string
    outrank1 = outlist[1][outlist[1].index(':')+1:]
    outrank2 = outlist[2][outlist[2].index(':')+1:]
    print outrank1
    print outrank2
    print str(outlist[0])
    print str(outlist[1])
    print str(outlist[2])
    csvout.writerow([str(outlist[0]), str(outrank1), str(outrank2)]) #writing,error here 

这里是我遇到的bug的一个示例:

Traceback (most recent call last):
  File "Methods.py", line 24, in <module>
    outrank2 = outlist[2][outlist[2].index(':')+1:]
ValueError: substring not found

在这种情况下,而不是错误的,我想保存一个“?” 在outrank2。 我怎样才能做到这一点?

Answer 1:

你可以包装在一个try-除

try:
  outrank2 = outlist[2][outlist[2].index(':')+1:]
except ValueError:
  outrank2 = "?"


Answer 2:

try:
    outrank1 = outlist[1][outlist[1].index(':')+1:]
except ValueError:
    outrank1 = "?"


Answer 3:

使用尝试,除了方法来检查值误差。

try:
  outrank2 = outlist[2][outlist[2].index(':')+1:]
except ValueError:
  outrank2 = "?"


文章来源: Python - Handling value errors