2016-05-21 3 views
0

Возвращает количество раз, когда строка «привет» появляется в любой точке данной строки.Возвращает несколько раз определенной строки в python

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

Мой код ниже:

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

Я пытаюсь сделать это с характером нарезания. Поэтому я могу проверить, есть ли «h» и «i» в слове и считая комбинацию «h» и «i», чтобы сделать «привет». Так что «привет» может быть у новичка, в середине и/или в конце кучки слов или букв и/или по себе.

+0

У вас нет цикла - как 'sum' и' count' могут быть чем-то иным, чем '0' и' 1' или '1' и' 2'? Это выше синтаксической ошибки в вашей функции, с этим неожиданным отступом. И вы также маскируете два встроенных модуля. – TigerhawkT3

+0

Что вы имеете в виду, когда упоминаете встроенные модули? – VChocolate

+0

Google «встроенный python» для получения дополнительной информации. – TigerhawkT3

ответ

3

Вы должны использовать функцию count() для строки.

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

str.count (суб [, начать [, конец]])

Возвращает количество неперекрывающихся вхождений подстроки суб в диапазоне [начало, конец]. Дополнительные аргументы start и end интерпретируются как в нотации среза.