如何修复使用Python拆分字符串时列表索引超出范围的错误消息



我目前正在处理一个包含mx+b形式的线性表达式的字符串,并返回一个包含斜率(m(和垂直截距(b(作为浮点值的列表。

如果字符串同时包含m和b(即5x+3(,则程序运行良好。但是,如果字符串只包含m(即,5x(,则它不起作用。

我有

IndexError: list index out of range.  

我知道问题是什么,但我想我仍然缺乏纠正它的技能。我想联系一下,看看我能做些什么来解决它。

def getLinearParameters(mx_plus_b):
equation_values = mx_plus_b.split("+")
m = equation_values[0][:-1]
b = equation_values[1]
return [float(m), float(b)]
print(getLinearParameters("5x"))

您可以使用try-except。except捕获异常并处理异常
这样尝试:

def getLinearParameters(mx_plus_b):
equation_values = mx_plus_b.split("+")
m = equation_values[0][:-1]
try:
b = equation_values[1]
except:
b = 0
return [float(m), float(b)]
print(getLinearParameters("5x"))

避免使用try-except块来修复错误,因为这是创可贴,而不是正确的解决方案。相反,使用if-else语句:

def getLinearParameters(mx_plus_b):
equation_values = mx_plus_b.split("+")
m = equation_values[0][:-1]

if len(equation_values) > 1:
b = equation_values[1]
else:
b = 0

return [float(m), float(b)]
print(getLinearParameters("5x"))

您需要将代码放入Try并添加catch以防发生异常并进行处理

try:
#Statments
except IndexError:
#Error occurred
#Do something

例如,在except中,可以添加默认值。

相关内容

  • 没有找到相关文章