当需要检查字符串的开头或结尾时,只需使用str.stratswith()
和str.endswith()
方法就可以了,函数原型如下:
str.startswith(prefix[, start[, end]]) : 检测字符串是否以某字符开头。
str.endswith(suffix[, start[, end]]) : 检测字符串是否以某字符结尾。
参数为字符串
示例如下:
参数为元组
如需同时针对多个选项做检查,只需给stratswith()
和endswith()
提供包含可能选项的元组(tuple)即可:
再举个例子,从文本文件中或是URL中读取文本内容:
需要注意的是,同时检查多个选项时,参数必须为元组,如果刚好我们把选项指定在了列表或集合中,确保首先用tuple()
将其转换成元组。示例如下:
此外,stratswith()
和endswith()
还有两个可选参数,start
检测字符串的起始位置,end
检测字符串的结束位置。
扩展
stratswith()
和endswith()
提供了一种非常简单的方式来对字符串的前缀和后缀做基本的检查。类似的操作也可以用切片完成,但是那种方案不够优雅。例如:
可能,我们也比较倾向于使用正则表达式作为替代方案。例如:
这也行得通,但是通常对于简单的匹配来说有些过于重量级了。使用stratswith()
和endswith()
会更简单,运行得更快。
最后但同样重要的是,当stratswith()
和endswith()
和其他操作(比如常见的数据整理操作)结合起来时效果会更好。例如,下面的语句检查目录中有无出现特定的文件: