[英]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.