计算 Python 中的子串 - 更有效的方法?

Counting substrings in Python - more efficient approach?

所以我已经学习 Python 几个月了。我遇到了一个练习,希望你计算一个子字符串在一个字符串中出现了多少次。我进行了搜索,但找不到我正在寻找的确切答案。这是我写的代码,它是功能性的。但是,由于异常,它确实需要一秒钟。我选择使用 string.index 因为 string.find 中的 -1 值在某些情况下会弄乱起点。在不导入其他模块等的情况下,更有效的方法是什么。例如更基础的Python,比如我写的代码

word = "banana"
sub = "ba"
start = 0
ix = 0
count = 0
end = None

if end is None:
    end = len(word)
while start < end:
    if sub in word:
        try:
            ix = word.index(sub, start, end)
        except:
            break
        ix += 1
        start = ix + 1
        count += 1
print(count)

谢谢!

你可以这样做:

'banana'.count('ba')

字符串计数方法的文档说:

Return the number of non-overlapping occurrences of substring sub in string S[start:end]. Optional arguments start and end are interpreted as in slice notation.

示例输出:

>>> 'banana'.count('ba')
1
>>> 'banana'.count('na')
2