2012-07-29 57 views
-2

嗨,大家有一點點麻煩,蟒蛇很新,它即時嘗試計算一定的一組字符出現在一行多少次反正我可以讓它算,但它計數4即。蟒蛇字符計數請幫我我一個nooob

a = raw_input('insert pirate bob speak line line 1 - ') 
b = raw_input('insert pirate bob speak line line 2 - ') 
c = raw_input('insert pirate bob speak line line 3 - ') 

IM試圖讓噸至指望有多少次出現在一個句子,但只有當雙出現問題RR是當我推出全電碼與1.yarrrr harrr 的neccesary輸入我夥計們 和rrrrum一瓶 它計算雙RS的大寫金額,我只是想知道有多少是句子包含雙R

+0

顯示你想怎麼算rr'的'的發生。此外,「rrrr''有多少次出現 - 2次或3次? – 2012-07-29 01:28:35

+0

向我們顯示您的代碼,以便我們可以告訴您錯誤的詳細信息。這個想法是使用循環。 – neo 2012-07-29 01:29:37

+0

你的循環部分在哪裏?或計算字母r的部分? – neo 2012-07-29 01:39:21

回答

1

如果你想每行中找到一個單一的RR:

import re 
myline = 'harrrr!' 
matches = re.findall('(rr+)',myline) 
if matches: 
    print "exactly",len(matches)," rr was found" 

說明:

要了解更多關於正則表達式,類型 幫助(重新)

這個特殊的正則表達式表示: 搜索在一條線上的所有組,包含兩個或更多「的r

如果你要搜索RR-S,但不是RRRS,使用方法:

re.findall('(?:[^|[^r])(rr)(?:[^r]|$)', 'harrrarrr') 

這稍微有點困難(搜索所有那些'rr',它們之前有一個不是r的字符,或者行開始於那裏,後面跟着一個不是r的字符,或者行結束在那裏,而不是關心這些以下和前面的字符)

一般情況下,你可以提高你的「控制流」由:

import re 
while True: #forever or at least until break-[up], you know, love-style forever;) 
    line = raw_input("Howdy? ") 
    if line: # if the user actually typed in something 
     matches = re.findall('(rr+)',line) 
     if matches: 
      print "exactly",len(matches)," rr was found" 
     else: 
      print "you'rrre NOT a pirrate!" 
    else: 
     break #quit