常用字符串相关方法

前面我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们,比如说:

s1='Hello,''World'
print(s1) #Hello,World

还有一种方式是使用 "+"的方式,比较简单

s1='Hello,'+ 'World'
print(s1)
#Hello,World

还有使用字符串拼接数字,因为Python不允许直接拼接,所以要将数字转换成字符串

s1 = "这是数字: "
p = 99.8
#字符串直接拼接数值,程序报错
print(s1 + p)
#使用str()将数值转换成字符串
print(s1 + str(p))
#使用repr()将数值转换成字符串
print(s1 + repr(p))

str() 和 repr() 函数都可以将数字转换成字符串,其中 str 是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。此外,repr 还有一个功能,它会以 Python 表达式的形式来表示值

st = "I will play my fife"
print (st)
print(repr(st))
I will play my fife
'I will play my fife'

通过上面的输出结果可以看出,如果直接使用 print() 函数输出字符串,将只能看到字符串的内容,没有引号;但如果先使用 repr() 函数对字符串进行处理,然后再使用 print() 执行输出,将可以看到带引号的字符串,这就是 Python 字符串的表达式形式

截取字符串字符串切片

字符串本质上就是由多个字符组成的,Python 允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。

string[index]

这里的 string 表示要截取的字符串,index 表示索引值。Python 规定,字符串中第一个字符的索引为 0、第二个字符的索引为 1,后面各字符依此类推。此外,Python 也允许从后面开始计算索引,最后一个字符的索引为 -1,倒数第二个字符的索引为 -2。

str2=' www.iqi.com 123 34'

print(str2[3])#w
print(str2[-2])#3

除可获取单个字符之外,Python 也可以在方括号中使用范围来获取字符串的中间“一段”(被称为子串),其基本语法格式为:

string[start : end : step]

此格式中,各参数的含义如下:

扫描二维码关注公众号,回复: 7139504 查看本文章

       string:要截取的字符串;

       start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;

       end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;

       step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。

str2=' www.iqi.com 123 34'

print(str2[3:9:2])#wii
print(str2[-6::2])#133
print(str2[:-3])# www.iqi.com 123
# 获取s中从索引5处到结束的子串
print(s[5: ]) 
# 获取s中从倒数第6个字符到结束的子串
print(s[-6: ]) 
# 获取s中从开始到索引5处的子串
print(s[: 5]) 
# 获取s中从开始到倒数第6个字符的子串
print(s[: -6])

此外,Python 字符串还支持用 in 运算符判断是否包含某个子串。例如如下代码:

print('iqi' in str2) #True
print('iqi12' in str2) #False

还可使用全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。例如如下代码:

print(min(str2)) #最小值空格
print(max(str2))#最大值 w

分割字符串 split( )方法

split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。该方法的基本语法格式如下:

str.split(sep,maxsplit)

此方法中各部分参数的含义分别是:

     str:表示要进行分割的字符串;

     sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。

     maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。

在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。

str2=' www.iqi.com.123 34 @163'

print(str2.split())#采用默认分隔符空格分割 ['www.iqi.com.123', '34', '@163']
print(str2.split(' ',2))#采用默认分隔符分割两次 ['', 'www.iqi.com.123', '34 @163']
print(str2.split('.'))#采用.分隔符 [' www', 'iqi', 'com', '123 34 @163']
print(str2.split('.',2))#采用.分隔符分割两次 [' www', 'iqi', 'com.123 34 @163']

 join()方法:合并字符串

join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用来将列表(或元组)中包含的多个字符串连接成一个字符串

使用 join() 方法合并字符串时,它会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。

newstr = str.join(iterable)

此方法中各参数的含义如下:

newstr:表示合并后生成的新字符串;

str:用于指定合并时的分隔符;

iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供

newstr='.'.join(("1","2","3"))
print(newstr)
print(type(newstr))

1.2.3
<class 'str'>

count()方法:统计字符串出现的次数

count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。

count 方法的语法格式如下:

str.count(sub[,start[,end]])

此方法中,各参数的具体含义如下:

      str:表示原字符串;

      sub:表示要检索的字符串;

      start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;

      end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。

str2=' www.iqi.com.123 34 @163'

print(str2.count(' '))#打印空格数量 3

find()方法:检测字符串中是否包含某子串

find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。

find() 方法的语法格式如下:

str.find(sub[,start[,end]])

此格式中各参数的含义如下:

     str:表示原字符串;

     sub:表示要检索的目标字符串;

     start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;

     end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。

str2=' www.iqi.com.123 34 @163'

print(str2.find('.'))#索引为4
print(str2.find(' '))#索引为 0
print(str2.find('iqi',2,-6))#索引为 5
print(str2.find(' ',3,30))#索引为 16
print(str2.find('54')) #没找到返回-1

注意,Python还提供了 rfind() 方法,与 find() 方法最大的不同在于,rfind() 是从字符串右边开始检索。例如:

str2=' www.iqi.com.123 34 @163'

print(str2.rfind('.'))#索引为12

index()方法:检测字符串中是否包含某子串

同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。

index() 方法的语法格式如下:

str.index(sub[,start[,end]])

此格式中各参数的含义分别是:

      str:表示原字符串;

      sub:表示要检索的子字符串;

      start:表示检索开始的起始位置,如果不指定,默认从头开始检索;

      end:表示检索的结束位置,如果不指定,默认一直检索到结尾。

str2=' www.iqi.com.123 34 @163'

print(str2.index('.'))# 4
print(str2.index('.',5,-6))# 8
print(str2.index('.',5,20))# 8

同 find() 和 rfind() 一样,字符串变量还具有 rindex() 方法,其作用和 index() 方法类似,不同之处在于它是从右边开始检索,例如:

str2=' www.iqi.com.123 34 @163'

print(str2.rindex('.'))# 12

去除字符串中空格(删除指定字符)的3种方法

用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。

这里的特殊字符,指的是制表符(\t)、回车符(\r)、换行符(\n)等

Python中,字符串变量提供了 3 种方法来删除字符串中多余的空格和特殊字符,它们分别是:

     strip():删除字符串前后(左右两侧)的空格或特殊字符。

     lstrip():删除字符串前面(左边)的空格或特殊字符。

     rstrip():删除字符串后面(右边)的空格或特殊字符。


注意,Python 的 str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身。

Python strip()方法

strip() 方法用于删除字符串左右两个的空格和特殊字符,该方法的语法格式为:

str.strip([chars])

其中,str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符

str2=" www.iqi.com.123 123@\n\t"

print(str2.strip("\n"))  # " www.iqi.com.123 123@"
print(str2.lstrip()) # "www.iqi.com.123 123@"
print(str2.rstrip()) # " www.iqi.com.123 123@"

猜你喜欢

转载自www.cnblogs.com/jzxs/p/11437767.html