2016-11-09 3 views
-4

Ich muss zwei Wörter "Katze" und "Hund" aus einer Zeichenfolge zählen.Zählen von zwei Wörtern in einer Zeichenfolge

Wenn die Zähler gleich sind, würde ich gerne True else false zurückgeben.

Zum Beispiel, für die Eingabe "dogdoginincatcat" sollte meine Methode True zurückgeben.

Hier ist mein Code,

def cat_dog(str): 
    count=0 
    count1=0 
    for i in range(len(str)): 
     if str[i:i+3] == 'cat': 
     count=count+1 
     if str[i:i+3] == 'dog': 
     count1=count+1 
    if count == count1: 
     return True 
    else: 
     return False 
cat_dog('catdog') 

Antwort

1

nur eine Zeile dieses count auf einer Schnur mit zu tun:

z= "dogdoginincatcat" 

print(z.count("cat")==z.count("dog")) 
+0

Vielen Dank..Mai ich kenne den Versuch in einer anderen Sprache wie C++ .. –

+0

das ist eine ganz andere Frage. Und schon hat eine Antwort: http://stackoverflow.com/questions/22406583/count-words-in-a-string –

+0

Vielen Dank für den Link .. Noch eine Frage .. Eine andere Frage. Ich würde die Anzahl der Male, die die Zeichenfolge "Code" irgendwo in der angegebenen Zeichenfolge angezeigt wird zurückgeben, außer dass ich jeden Buchstaben für die "d" akzeptieren, so "cope" und "coee" zählen. wieder count_code ('aaacodebbb') → 1 count_code ('codexxcode') → 2 count_code ('cozexxcope') → 2 Darf ich habe die attempt..Thanks im Voraus .. –

0

Zuerst NICHT str (der String-Klasse) als Variable verwenden Name. Während Python in diesem Moment nicht weinen wird, wirst du es später bereuen.

Zweitens ist es sieht nicht wie die Zählung und count1 werden als innerhalb Blöcke der eingerückten ‚wenn‘ Aussagen, so wird der Code wie gesehen:

for i in range(len(str)) 
    if something: 
     pass 
    count = count + 1 
    if something_else: 
     pass 
    count1 = count1 + 1 
als

Andere, scheint Ihr Code Arbeit

Verwandte Themen