簡體   English   中英

Python IndexError:字符串索引超出范圍

[英]Python IndexError: string index out of range

有人可以幫我為什么說:“ IndexError:超出范圍的字符串索引”當我將“ letterCount + = 1”添加到第一個時,它會導致此錯誤,而無法正常工作。

目的是計算s中的“ bob”。

謝謝!

s = 'oobobodobooobobobobabobbobbobobbobbobhbxbobbk'

vowelCount = 0
letterCount = 0
pointer = s

for pointer in s:  
    print(pointer)
    if pointer == 'b':
        print (str(letterCount) + '. betű B' )

        if (s[letterCount+1] + s[letterCount+2]) == str('ob') :
           vowelCount += 1
           letterCount += 1
           print( str(vowelCount) + '. BOB megtalálva')
        else:
           print('Nem OB jön utána')
           letterCount += 1
    else:      
        print(str(letterCount) + '. betű nem B')
        letterCount += 1

print ("Number of times bob occurs is: " + str(vowelCount))

您需要使用以下方法檢查字符串的長度:

letterCount+2 <= len(s) 

s = 'oobobodobooobobobobabobbobbobobbobbobhbxbobbk'

vowelCount = 0
letterCount = 0
pointer = s

for pointer in s:  
    print(pointer)
    if pointer == 'b':
        print (str(letterCount) + '. betű B' )

        if (letterCount+2 <= len(s) and (s[letterCount+1] + s[letterCount+2]) == str('ob')) :
           vowelCount += 1
           letterCount += 1
           print( str(vowelCount) + '. BOB megtalálva')
        else:
           print('Nem OB jön utána')
           letterCount += 1
    else:      
        print(str(letterCount) + '. betű nem B')
        letterCount += 1

print ("Number of times bob occurs is: " + str(vowelCount))

希望以下代碼對您有用。

s = 'oobobodobooobobobobabobbobbobobbobbobhbxbobbk'

vowelCount = 0

letterCount = 0

pointer = s

print len(s)

for pointer in s:

    if pointer == 'b':

        if (len(s) != letterCount+1 and len(s) != letterCount+2):

            if (s[letterCount+1] + s[letterCount+2]) == str('ob'):

                vowelCount += 1

                letterCount += 1

                print(str(vowelCount) + '. BOB')

            else:

                letterCount += 1
    else:

        letterCount += 1


print ("Number of times bob occurs is: " + str(vowelCount))

在此語句中,我要檢查字符串的len的字母數。 它僅在字符串末尾匹配。

或者您可以使用枚舉器檢查字符串中單詞的len

for i, _ in enumerate(s): #i here is the index, equal to "i in 
range(len(s))"

if s[i:i+3] == 'bob': #Check the current char + the next three chars. bob += 1 print('Number of times bob occurs is: ' + str(bob))
The final solution.

s = 'obbobbbocbobbogboobm'

vowelCount = 0
letterCount = 0
pointer = s

for pointer in s:  
    print(pointer)
    if pointer == 'b':
        print (str(letterCount) + '. betű B' )

        if (len(s)-2 > letterCount):      
            print('van utána két betű')
            if (s[letterCount+1] + s[letterCount+2]) == str('ob') :
               vowelCount += 1
               letterCount += 1
               print( str(vowelCount) + '. BOB megtalálva')
            else:
               print('Nem OB jön utána')
               letterCount += 1
        else:
           print('nincs utána két betű')           
           break
    else:      
        print(str(letterCount) + '. betű nem B')
        letterCount += 1

print ("Number of times bob occurs is: " + str(vowelCount))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM