2016-05-21 15 views
0

Geben Sie an, wie oft die Zeichenfolge "hi" an einer beliebigen Stelle in der angegebenen Zeichenfolge angezeigt wird.Geben Sie eine bestimmte Anzahl von Zeichenfolgen in Python zurück.

count_hi('abc hi ho') → 1 
count_hi('ABChi hi') → 2 
count_hi('hihi') → 2 

Mein Code ist unten:

def count_hi(str): 
    sum = 0 
    count = 1 
    if "hi" in str: 
    sum = sum + count 
    count = 1 + count 
    return count and sum 

Ich versuche es mit Charakter Slicing zu tun. So kann ich testen, ob es ein "h" und "i" in einem Wort gibt und die Kombination von "h" und "i" zu "hi" zählen. So könnte "hi" am Anfang, in der Mitte und/oder am Ende eines Bündels von Wörtern oder Buchstaben und/oder alleine sein.

+0

Sie haben keine Schleife - wie könnte 'sum' und' count' etwas anderes als '0' und' 1' oder '1' und' 2' sein? Dies steht vor dem Syntaxfehler in Ihrer Funktion mit diesem unerwarteten Einzug. Außerdem maskieren Sie zwei integrierte Komponenten. – TigerhawkT3

+0

Worauf beziehen Sie sich, wenn Sie Built-Ins erwähnen? – VChocolate

+0

Google "Python integriert" für weitere Informationen. – TigerhawkT3

Antwort

3

Sie sollten count() Funktion für die Zeichenfolge verwenden.

>>> "abc hi ho".count("hi") 
1 
>>> "ABChi hi".count("hi") 
2 
0

str.count (sub [, Start [End]])

Gibt die Anzahl der nicht überlappenden Vorkommen von Teilzeichenunter im Bereich [Start, Ende]. Optionale Argumente Start und Ende werden als Slice-Notation interpretiert.

Verwandte Themen