为什么str.count('')和len(str)给出不同的输出?

发布于 2021-01-29 19:33:59

查看以下代码,并请解释为什么该str.count('')方法和len(str)函数给出两个不同的输出。

a=''
print(len(a))
print(a.count(''))

输出:

0
1
关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    str.count() 计算子字符串的非重叠出现次数:

    返回substring sub 的不重叠出现的次数。

    在字符串中恰好有一个这样的子字符串''出现的位置'':就在开头。因此计数 应该 返回1

    一般来说,空字符串将匹配给定字符串中的 所有位置 ,包括开始和结束处的正确 位置 ,因此计数应 始终 为长度加1:

    >>> (' ' * 100).count('')
    101
    

    这是因为空字符串被认为存在于字符串的所有字符之间。对于字符串长度2,有3个空字符串;开头是一个,两个字符之间是一个,结尾是一个。

    是的,结果是不同的,而且它们是完全正确的。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看