2013-07-14 72 views
0

的,我只是与Python开始,我必须定义一个函数来检查多少字符串列表中有超过2个字符或有他们的第一个和最后一个字符相同:字符串索引超出范围的错误蟒蛇

def match_ends(words): 
    count=0 
    for w in words: 
    if len(w)>=2: 
     count+=1 
    elif w[0]==w[-1]: 
     count+=1 
    return count 

我得到一个错误消息说:

elif w[0]==w[-1]: 
IndexError: string index out of range 

这是什么意思?如何纠正?

回答

3

通过编写elif w[0]==w[-1]:,换句话说,您正在从结尾索引 - 最后一个元素。也许它是一个空字符串,所以没有最后的参考要素?尝试打印字符串,以便您可以看到发生了什么。

3

您应该检查w是否为空字符串。

>>> w = '' 
>>> w[0] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: string index out of range 
1

您可能需要添加:

elif len(w)>0 and w[0]==w[-1]: 
0

在你elif的情况下,你赶上的话与LEN < 2和得到的错误。我认为,在制定这个问题上存在问题。