繁体   English   中英

pythonstartswith是如何工作的?

[英]How does python startswith work?

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

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

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

该文件指出:

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

那么该功能是如何工作的呢?

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 -> '

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM