为什么“www”.count(“ww”)返回1而不是2?

在我的代码中:

>> s = 'abacaba' >> s.count('aba') >> 2 

对于上面的代码,我得到了正确的答案,因为'aba'在strings出现了2次。

但对于以下情况:

 >> s = 'www' >> s.count('ww') >> 1 

在这种情况下,我期待s.count('ww')将返回2 。 但是它返回1

为什么?

阅读文档 :

返回strings[start:end]中子string子的次数( 非重叠 )。 开始和结束的默认值以及负值的解释与切片相同。

由于“ww”首先匹配,所以从第三个“w”开始并且不匹配“ww”。

string.count(s, sub[, start[, end]])

返回strings [start:end]中子string子的次数(非重叠) 。 开始和结束的缺省值以及负值的解释与切片相同。

来源: https : //docs.python.org/2/library/string.html

试着想:

在这个词中:“abacaba”,你看到了多less个不重叠的 “aba”字? 我看到2.我也看到一个“C”。

在这个词中:“www”你看到多less不重叠的 “ww”字? 我看见1.我也看到一个“W”。

为了更好的解释,当你看到你正在删除实例。

对于“abacaba”你看到“aba”并将其删除。 现在有“caba”,你再看到“aba”并删除它。 现在你只得到“C”。 你看到“aba”两次。 对“www”也是一样,你看到“ww”一次并删除它。 现在你只看到“W”。 你只看过一次“ww”。

这说得通。