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