这一篇文章主要是总结字符串的常用用法
(1)字符串拼接
字符串的拼接指的是将多个字符串连成一个新的字符串,如例:
s1="hello "'world'
print(s1)
print(type(s1))
s2="hello"
s3="world"
s4=s2+s3
print(s3)
a=123
b=345
c=str(a)+str(b)
print(c)
s1="hello"
s2=12345
s3=s1+repr(s2)
print(s3)
输出结果:
hello world
<class 'str'>
world
123345
hello12345
(2)字符串分割
字符串的分割指的是将字符串按照一定分割方式,分割成多个子字符串,需要用得到的是split() 方法。
spilt()将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符)
作为方法的返回值反馈回来。基本语法格式如下:
str.split(sep,maxsplit)
1、str:表示要进行分割的字符串;
2、sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
3、maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
注意:在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
s="hello world 你好,nihao "
s1=s.split()
print(s1)
s2=s.split('w')
print(s2)
s3=s.split(' ',5)
print(s3)
运算结果为:
['hello', 'world', '你好,nihao']
['hello ', 'orld 你好,nihao ']
['hello', 'world', '你好,nihao', '']
(3)字符串合并
字符串的合并即是字符串分割的逆运算,使用 join() 方法合并字符串;
join()函数会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。
例如,字符串“www.iloveyou.python.net”就可以看做是通过分隔符“.”将 ['www','iloveyou','python','net']
列表合并为一个字符串的结果。
newstr = str.join(iterable),各参数的含义如下:
1、newstr:表示合并后生成的新字符串;
2、str:用于指定合并时的分隔符;
3、iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
例子:
list = ['i','loveyou','python','net']
newlist= '.'.join(list)
print(newlist)
运算结果如下:
i.loveyou.python.net
(4)字符串的count函数
count()用于检索指定字符串在另一字符串中出现的次数。
如果检索的字符串不存在,则返回 0,否则返回出现的次数。
语法格式:str.count(sub,[start],[end])
各参数的具体含义如下:
1.str:表示原字符串;
2.sub:表示要检索的字符串;
3.start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
4.end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。
例子:
newlist="www.nihao.com.cn"
count_number=newlist.count('.',1,10)
print(count_number)
运算结果如下:
2
(5)字符串中的find函数
find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;
反之,则返回 -1。语法格式如下:
str.find(sub,[start],[end]])
此格式中各参数的含义如下:
1.str:表示原字符串;
2.sub:表示要检索的目标字符串;
3.start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
4.end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。
例子:
newlist="www.nihao.com.cn"
find_return_value=newlist.find('.',1,10)
print(find_return_value)
运算结果为:
3
注意,python提供了 rfind() 方法,与 find() 方法最大的不同在于,rfind() 是从字符串右边开始检索。
(6)字符串中的index函数
同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,其不同点在于,当指定的字符串不存在时,
index() 方法会抛出异常。其语法格式如下:
str.index(sub,[start],[end])
此格式中各参数的含义分别是:
1.str:表示原字符串;
2.sub:表示要检索的子字符串;
3.start:表示检索开始的起始位置,如果不指定,默认从头开始检索;
4.end:表示检索的结束位置,如果不指定,默认一直检索到结尾。
字符串变量还具有 rindex() 方法,其作用和 index() 方法类似,不同之处在于它是从右边开始检索;
(7)字符串的startswith()方法
startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。其语法格式如下:
str.startswith(sub[,start[,end]])
各个参数的具体含义如下:
1.str:表示原字符串;
2.sub:要检索的子串;
3.start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
4.end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。
(8)字符串的endswith()方法
endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。其语法格式如下:
str.endswith(sub,[start][end])
各参数的含义如下:
1.str:表示原字符串;
2.sub:表示要检索的字符串;
3.start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
4.end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。
(9)字符串大小写转换函数
1.首字母大写title() ;
将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。
其语法格式如下: str.title()
2.字母全部大写lower()
将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。
其语法格式如下:str.lower()
3.字母全部小写upper() :
将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串;反之,则返回原字符串。
upper() 方法的语法格式如下:str.upper()
(10)去除字符串中的特殊字符(空格等)
我们在输入数据的时候,往往会无意中输入多余的空格,尤其是在一些特殊的要求中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符(如制表符(\t)、回车符(\r)、换行符(\n)等。)
python字符串变量提供了 3 种方法来删除字符串中多余的空格和特殊字符,它们分别是:
1.strip():删除字符串前后(左右两侧)的空格或特殊字符。
2.lstrip():删除字符串前面(左边)的空格或特殊字符。
3.rstrip():删除字符串后面(右边)的空格或特殊字符。
注意:Python 的 str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身。
三个方法的语法格式分别为:
str.strip([chars]) str.lstrip([chars]) str.rstrip([chars])
其中,str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。
(11)字符串的格式化输出
需要用到format函数,其中数据的格式化输出与C语言中的基本一致
(12)字符串编码转换
encode() 方法用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
encode() 方法的语法格式如下:
str.encode([encoding="utf-8"][,errors="strict"])
注意:格式中用 [] 括起来的参数为可选参数,即可以使用 [] 中的参数,也可以不使用。
其中的参数errors(默认值为strict)指定错误处理方式,其可选择值可以是:
1.strict:遇到非法字符就抛出异常。
2.ignore:忽略非法字符。
3.replace:用“?”替换非法字符。
4.xmlcharrefreplace:使用 xml 的字符引用。
和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,即“解码”。
decode() 方法的语法格式如下:
bytes.decode([encoding="utf-8"][,errors="strict"])
参数的定义和上面的encoding一致。
注意:默认情况下:encoding均是UTF-8,即国际上普遍的标准,数字和字母均为一个字符,汉字为三个字符;
PS:
当然,还有很多的字符串处理方法,就类似于C++容器中的函数一样,如果需要查看字符串中有哪些处理方法,可以使用dirt(str)来查看所有的方法:
dir(str)
也可以使用help,查看方法的具体用法和帮助
help(str.lstrip)
来源:https://blog.csdn.net/qq_25018077/article/details/100118516