Python 3 - 检查查找索引是否返回错误

时间:2016-02-05 18:57:27

标签: python loops python-3.x pattern-matching

我正在尝试迭代代码以基本上创建带有模式的find()函数。我想检查string [index + 1]是否返回一个IndexError(如果超出界限则返回斜杠),以便知道是继续迭代字符串还是返回第一次出现的索引。我尝试了几个不同的东西,因为它在我创建的类中,我不断收到属性错误。以下是我尝试的一些事情:

with self.assertRaises(IndexError):
                p[ind + 1]
                print(ind - len(p))
if not p[ind + 1]:

2 个答案:

答案 0 :(得分:2)

您可以使用len()功能。

if 0 <= ind < len(p):
    ...  # p[ind] exist

len()返回字符串的长度,字符串中最大的索引是len()-1(因为索引是从0计算的)。您可能也不想使用否定索引,因为它会从结尾获取元素(例如,'abc'[-1]将返回'c'

答案 1 :(得分:0)

您可以使用raises_error = (index + 1 >= len(p))raises_error = (not p[index + 1:])对其进行测试。我相信,第一个很容易理解。第二个将检查p[index + 1:]以查看它是否为空。空列表的布尔值为False。如果没有p[index + 1]这样的事情,就会发生这种情况。然后我们用not反转它。