Python---字符串

落爺英雄遲暮 提交于 2019-11-28 19:52:14

这一篇文章主要是总结字符串的常用用法

(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)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!