python如何开始工作?

时间:2016-12-10 18:47:24

标签: python string

我无法理解str.startswith方法的行为。

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

>>> "hello".startswith("")
True

文档说明:

  

如果字符串以前缀开头,则返回True,否则返回Falseprefix也可以是要查找的前缀元组。

那么该功能如何运作?

2 个答案:

答案 0 :(得分:5)

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

 def startswith(source, prefix):
    return source[:len(prefix)] == prefix

它测试源字符串的第一个len(prefix)字符是否等于前缀。如果传入长度为零的前缀,则表示测试前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 -> '

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

答案 1 :(得分:2)

如果p,字符串s是字符串s = p + x的前缀,因此空字符串是所有字符串的前缀(它类似于0,s = 0 + s)。