我的函数将字符串拆分为多行,检查第 index 行,并返回两个值之一。这是一个简化版本:
def f(text, index):
rows = text.split('\n')
row = rows[index] # <-- IndexError thrown here.
if row_meets_some_condition:
return "Yes"
else:
return "No"
调用者有时会为 index 传递一个负值(当他想使用基于文件结尾的索引时),这工作正常,除非 text haw行太少,在这种情况下,我在 row = rows[index] 行得到一个 IndexError。
除了捕获错误之外,是否有惯用的方法来检查 index 是否是 rows 的合法索引?
请您参考如下方法:
捕获 IndexError 在 Python 中非常惯用。如果您无法预见您的输入有多少行,您可以在访问列表之前检查 rows 的长度,或者只捕获 IndexError。那么我会选择第二个选项。
