计算字符串中子字符串的所有非重叠出现次数

Mor*_*itz 0 python

我想编写一个函数来计算字符串中子字符串的所有非重叠出现次数。这是我到目前为止:

def count(substr,theStr):
    count = 0
    for i in range(len(theStr)):
        if theStr[i:i+len(substr)] == substr:           
            count = count + 1
    return count
Run Code Online (Sandbox Code Playgroud)

如您所见,我的函数只计算字符串的出现次数,而不计算不重叠的出现次数。例如,输入“ana”和“Banana”将产生2,即使“Banana”中只有一个“ana”的非重叠实例。如何扩展我的功能以使其正常工作?

sxe*_*ros 5

Python 有一个内置函数:

theStr.count(substr)
Run Code Online (Sandbox Code Playgroud)

PS:也许你想看看Python Style-Guide