2016-02-05 47 views
0

我试图遍历代码来基本上创建带有模式的find()函数。我想检查string [index + 1]是否返回一个IndexError(斜线,如果超出范围),以便知道是继续遍历字符串还是返回第一个发生的索引。我尝试了几个不同的东西,因为它在我创建的类中,我一直在收到属性错误。这里有一些我已经尝试过的东西:Python 3 - 检查索引是否返回错误

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

尝试'尝试'声明。 –

回答

2

你可以使用len()函数。

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

len()返回字符串的长度,在最大字符串索引为len()-1(因为索引从0计数)。您可能也不想使用负索引,因为它会得到从一端(例如,'abc'[-1]将返回'c'元素。

0

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