python是如何开始工作的?

python是如何开始工作的?,python,string,Python,String,我无法理解该方法的行为 如果我执行“hello”.startswith(“”)则返回True。理想情况下,它不会以空字符串开头 >>> "hello".startswith("") True 文件规定: 如果字符串以前缀开头,则返回True,否则返回False前缀也可以是要查找的前缀元组 那么函数是如何工作的呢?字符串p是字符串s的前缀,如果s=p+x,那么空字符串是所有字符串的前缀(就像0,s=0+s)。str.startswith()可以在Python代码中表示为: d

我无法理解该方法的行为

如果我执行
“hello”.startswith(“”)
则返回True。理想情况下,它不会以空字符串开头

>>> "hello".startswith("")
True
文件规定:

如果字符串以前缀开头,则返回
True
,否则返回
False
<代码>前缀也可以是要查找的前缀元组


那么函数是如何工作的呢?

字符串
p
是字符串
s
的前缀,如果
s=p+x
,那么空字符串是所有字符串的前缀(就像0,
s=0+s
)。

str.startswith()
可以在Python代码中表示为:

 def startswith(source, prefix):
    return source[:len(prefix)] == prefix
它测试源字符串的第一个
len(前缀)
字符是否等于前缀。如果传入长度为零的前缀,则表示将测试前0个字符。长度为0的字符串始终等于任何其他长度为0的字符串

请注意,这也适用于其他字符串测试:

>>> s = 'foobar'
>>> '' in s
True
>>> s.endswith('')
True
>>> s.find('')
0
>>> s.index('')
0
>>> s.count('')
7
>>> s.replace('', ' -> ')
' -> f -> o -> o -> b -> a -> r -> '

最后两个演示,计算空字符串或用其他内容替换空字符串,表明您可以在输入字符串的每个位置找到空字符串。

所有字符串都以空字符串开头,though@cricket_007从技术上讲,对于任意数量的空字符串:)@pvg:Python只计算一次空字符串,幸运的是……)试试
str.count()
,你会发现在任何给定的输入字符串
s
中都有
len(s)+1
空字符串。最坏情况下的时间复杂度是O(n),其中n是字符串的长度,O(m)是前缀的平均长度?@elMowgli:
O(m)
最坏情况,不需要检查超过m个字符,就可以知道它是否是前缀。