- 零基础学Python(第2版)
- 黄传禄 张克强 赵越
- 859字
- 2025-03-22 17:27:08
6.1.5 字符串的比较
Java使用equals()比较两个字符串的内容,Python直接使用“==”“!=”操作符比较两个字符串的内容。如果所比较的两个变量的类型不相同,那么比较的内容也不相同。【例6-1】中的这段代码演示了Python中字符串的比较。
【例6-1.py】
01 # 字符串的比较 02 str1 = 1 03 str2 = "1" 04 if str1 == str2: 05 print ("相同") 06 else: 07 print ("不相同") 08 if str(str1) == str2: 09 print ("相同") 10 else: 11 print ("不相同")
【代码说明】
·第2行代码定义了1个数字类型的变量str1。
·第3行代码定义了1个字符串类型的变量str2。
·第4行代码比较str1和str2的值。由于str1和str2的类型不同,所以两者的内容也不相同。输出结果为“不相同”。
·第8行代码,把数字型的变量str1转换为字符串类型,数字1被转换为字符串“1”,然后再与str2进行比较。输出结果为“相同”。
如果要比较字符串中的一部分内容,可以先截取子串,再使用“==”操作符进行比较。如果要比较字符串的开头或结尾部分,更方便的方法是使用startswith()或endswith()函数。startswith()的声明如下所示。
startswith(substring, [,start [,end]])
【代码说明】
·参数substring是与源字符串开头部分比较的子串。
·参数start表示开始比较的位置。
·参数end表示比较结束的位置,即在start:end范围内搜索子串substring。
·如果字符串以substring开头,则返回True;否则,返回False。
endswith()的参数和返回值类似startswith()的参数和返回值,不同的是endswith()从源字符串的尾部开始搜索。下面这段代码演示了startswith()和endswith()的使用。
01 # 比较字符串的开始和结束处 02 word = "hello world" 03 print ("hello" == word[0:5]) 04 print (word.startswith("hello")) 05 print (word.endswith("ld", 6)) 06 print (word.endswith("ld", 6, 10)) 07 print (word.endswith("ld", 6, len(word)))
【代码说明】
·第3行代码先获取子串[0:5],再与“hello”进行比较。输出结果为“True”。
·第4行代码调用startswith(),比较字符串变量word的开头部分“hello”。输出结果为“True”。
·第5行代码,从字符串变量word的结尾到word[6]之间搜索子串“ld”。输出结果为“True”。
·第6行代码,从“分片”word[6:10]中搜索子串“ld”。由于搜索的字符不包括位置10所在的字符,所以在word[6:10]中搜索不到子串“ld”。输出结果为“False”。
·第7行代码,从“分片”word[6:len(word)]中搜索子串“ld”,len(word)的值为11。输出结果为“True”。
注意 startswith()、endswith()相当于分片[0:n],n是源字符串中最后一个索引。startswith()、endswith()不能用于比较源字符串中任意一部分的子串。