Python 字符串变量还可以使用 startswith() 和endswith() 方法。
startswith()方法
startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。此方法的语法格式如下:
str.startswith(sub[,start[,end]])
此格式中各个参数的具体含义如下:
str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。
【例 1】判断“c.biancheng.net”是否以“c”子串开头。
>>> str = "c.biancheng.net" >>> str.startswith("c") True
【例 2】
>>> str = "c.biancheng.net" >>> str.startswith("http") False
【例 3】从指定位置开始检索。
>>> str = "c.biancheng.net" >>> str.startswith("b",2) True
endswith()方法
endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。该方法的语法格式如下:
str.endswith(sub[,start[,end]])
此格式中各参数的含义如下:
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。
【例 4】检索“c.biancheng.net”是否以“net”结束。
>>> str = "c.biancheng.net" >>> str.endswith("net") True
同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。
index() 方法的语法格式如下:
str.index(sub[,start[,end]])
此格式中各参数的含义分别是:
str:表示原字符串;
sub:表示要检索的子字符串;
start:表示检索开始的起始位置,如果不指定,默认从头开始检索;
end:表示检索的结束位置,如果不指定,默认一直检索到结尾。
【例 1】用 index() 方法检索“c.biancheng.net”中首次出现“.”的位置索引。
>>> str = "c.biancheng.net" >>> str.index('.') 1
【例 2】当检索失败时,index()会抛出异常。
>>> str = "c.biancheng.net" >>> str.index('z') Traceback (most recent call last): File "", line 1, in str.index('z') ValueError: substring not found
同 find() 和 rfind() 一样,字符串变量还具有 rindex() 方法,其作用和 index() 方法类似,不同之处在于它是从右边开始检索,例如:
>>> str = "c.biancheng.net" >>> str.rindex('.') 11
find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。
find() 方法的语法格式如下:
str.find(sub[,start[,end]])
此格式中各参数的含义如下:
str:表示原字符串;
sub:表示要检索的目标字符串;
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。
【例 1】用 find() 方法检索 “c.biancheng.net” 中首次出现 “.” 的位置索引。
>>> str = "c.biancheng.net" >>> str.find('.') 1
【例 2】手动指定起始索引的位置。
>>> str = "c.biancheng.net" >>> str.find('.',2) 11
【例 3】手动指定起始索引和结束索引的位置。
>>> str = "c.biancheng.net" >>> str.find('.',2,-4) -1
位于索引(2,-4)之间的字符串为“biancheng”,由于其不包含“.”,因此 find() 方法的返回值为 -1。
注意,Python 还提供了 rfind() 方法,与 find() 方法不同在于,rfind() 是从字符串右边开始检索。例如:
>>> str = "c.biancheng.net" >>> str.rfind('.') 11