尽管指定了适当的缩进和范围,但字符串索引超出范围

时间:2016-12-07 12:16:03

标签: python python-2.7

t = int(raw_input())
while t:
    original_arrangement = raw_input()
    no_of_pairs = 0
    for i in range(0,len(original_arrangement)):
        if original_arrangement[i]=="<" and original_arrangement[i+1]==">": 
            no_of_pairs+=1
    print "%d" %(no_of_pairs)
    t-=1

这里我得到了IndexError:

string index out of range on line 6 

我不明白为什么我这样做,因为range(0,len(original_arrangement))应该正常工作,我的索引应该从0n-1

2 个答案:

答案 0 :(得分:1)

字符串索引从0开始,以len(string)-1结束,因此当您执行original_arrangement[i+1]时,您将在上次迭代时退出索引。

s = "somerandomstringhere"

s[0]
Out[4]: 's'

len(s)
Out[5]: 20

s[len(s)]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-db5f35bae095> in <module>()
----> 1 s[len(s)]

IndexError: string index out of range 

s[19]
Out[7]: 'e'

答案 1 :(得分:0)

最大的索引是len(original_arrangement)-1,因此i+1的{​​{1}}太大了。但只需使用i=len(original_arrangement)-1

count
相关问题