Python内置的startswith()字符串处理数可以帮助我们判断一个字符串中是否以某一特定的前缀字符串开始,并返回逻辑值:True或False。
同时,该函数提供了可选的两个参数,分别用于指定在字符串中搜索的起始位置和停止位置。
startswith()函数的语法格式如下:
string_object.startswith(prefix,start,end)
各参数的含义如下:
prefix: 要搜索的字符串前缀,可以是元组或字符串,且是大小写敏感的。
start: 可选参数,用于指定搜索的起始位置。
end: 可选参数,且在指定了start的前提下,才能使用该参数,用于给定搜索停止的位置。
下面使用一些例子举例讲解这个函数的使用方法。
1、使用例子1
test_str = "翔宇亭IT乐园的文章贵在专业"
rtn_result = test_str.startswith("翔宇亭")
print(rtn_result)
rtn_result = test_str.startswith("IT")
print(rtn_result)
输出:
True
False
在没有指定第2个和第3个参数时,startswith()函数默认从开始位置开始搜索。
在Python 3.8.2中的执行情况:
2、使用例子2
test_str = "搜索翔宇亭IT乐园,发现更多乐趣。"
rtn_result = test_str.startswith("翔宇亭", 2)
print(rtn_result)
这里指定了start参数,则从索引为2的位置(即“翔”字开始的位置)开始搜索。
在Python3.8.2中的执行情况如下图所示:
3、使用例子3
test_str = "搜索翔宇亭IT乐园,site:biye5u.com"
rtn_result = test_str.startswith("翔宇亭", 1, 5)
print(rtn_result)
这里同时指定了start参数和end参数,则从索引位置1到索引位置5进行搜索。
在Python3.8.2中的执行情况如下图所示:
4、使用例子4
test_str = "搜索翔宇亭IT乐园"
rtn_result = test_str.startswith("百度")
print(rtn_result)
在Python3.8.2中的执行情况如下图所示:
5、后面两个参数使用负数的情况
虽然官方文档中没有明确指出负数情况,但是基于Python中字符串切片处理的原则,很多字符串处理函数中可以使用负数来指定索引位置。负数即从字符串尾部往前确定的索引位置。
test_str = "翔宇亭IT乐园"
rtn_result = test_str.startswith("IT", -4)
print(rtn_result)
rtn_result = test_str.startswith("IT", -3)
print(rtn_result)
rtn_result = test_str.startswith("IT", -5, -2)
print(rtn_result)
rtn_result = test_str.startswith("IT", -4, -2)
print(rtn_result)
以上例子在Python3.8.2中运行情况如下图所示:
6、大小写敏感
test_str = "翔宇亭IT乐园"
search_str = "it"
rtn_result = test_str.startswith(search_str, 3)
print(rtn_result)
rtn_result = test_str.startswith(search_str.upper(), 3)
print(rtn_result)
在Python3.8.2中的执行情况如下图所示:
这个例子中,使用到了Python中的另外一个函数upper(),该函数的作用是将字符串中的英文字母都变成大写形式。
从这里可以看出,第一个输出False,认为指定的开始位置不是"it"字符串,第2个输出True,因为将待搜索字符串变为大写后,可以在指定位置找到了。