2015-10-17 93 views
0

我想計算字符串s中發生「bob」的次數。我寫的代碼是:python - 計算字符串失敗的連續字母集合的程序

s = 'qwbobthghdeerxybobhjkhgkjgbob' 
num = 0 
count = 0 
for char in s: 
    if char == 'b': 
     letter = s[num+1] 
     if letter == 'o': 
      letter = s[num+2] 
      if letter == 'b': 
        count = count + 1 
    num += 1 
print('Number of times bob occurs is:' + str(count)) 

運行代碼給出了錯誤:

Traceback (most recent call last): 
    File "C:/Python27/practice.py", line 6, in <module> 
    letter = s[num+1] 
IndexError: string index out of range 

變量num的殼價值出來作爲

>>>num 
28 

這怎麼可能?

回答

3

它具有內置功能count簡單:

s = 'qwbobthghdeerxybobhjkhgkjgbob' 
s.count('bob') 
2

如前所述,計數給你答案。

與您的代碼給指數超出範圍的問題,因爲當它到達字符串s,此代碼的最後「B」:

letter = s[num+1] 

嘗試

letter = s[28+1] 

,讓你

letter = s[29] 

因此發生異常。

一個簡單的解決方法是在字符串中剩餘的字符少於3個字符時停止檢查。

2

count方法返回obj在變量中出現的次數。

S = 'qwbobthghdeerxybobhjkhgkjgbob'

打印s.count( '鮑勃')