python 字符串详解

字符串拼接

1.字符串之间的拼接
(1)拼接字符串常量
将两个字符串紧挨着写在一起
在这里插入图片描述
(2)拼接字符串变量
使用+运算符不仅可以拼接常量还可以拼接变量
在这里插入图片描述
在这里插入图片描述
2.字符串和数字的拼接
python 不允许直接拼接数字和字符串,所以我们必须先将数字转换成字符串。可以借助 str() 和 repr() 函数将数字转换为字符串,它们的使用格式为:str(obj) repr(obj),obj 表示要转换的对象。
在这里插入图片描述
补充:str() 和 repr() 的区别
str() 和 repr() 函数虽然都可以将数据转换成字符串,但它们之间是有区别的:
(1)str() 用于将数据转换成适合人类阅读的字符串形式。
(2)repr() 用于将数据转换成适合解释器阅读的字符串形式(python 表达式的形式),适合在开发和调试阶段使用,如果没有等价的语法,则会发生 SyntaxError 异常。
在这里插入图片描述
从运行结果可以看出,str() 保留了字符串最原始的样子,而 repr() 使用引号将字符串包围起来,这就是 python 字符串的表达式形式。

字符串切片

从本质上讲,字符串是由多个字符构成的,字符之间是有顺序的,这个顺序号就称为索引(index)。python 允许通过索引来操作字符串中的单个或者多个字符,比如获取指定索引处的字符,返回指定字符的索引值等。
1.获取单个字符
知道字符串名字以后,在方括号[ ]中使用索引即可访问对应的字符,具体的语法格式为:strname[index]
strname 表示字符串名字,index 表示索引值。另外python 允许从字符串的两端使用索引,使用方法同序列。
在这里插入图片描述
2.获取多个字符
使用[ ]除了可以获取单个字符外,还可以指定一个范围来获取多个字符,也就是一个子串或者片段,具体格式为:
strname[start : end : step]
注意:end表示要截取的最后一个字符所在的索引,截取时不包含该字符。

获取字符串长度或字节数

1.统计字符串的长度
len 函数的基本语法格式为:len(string)
其中 string 用于指定要进行长度统计的字符串。
在这里插入图片描述
2.统计字符串的字节数
在 python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节。
我们可以通过使用 encode() 方法,将字符串进行编码后再获取它的字节数。
在这里插入图片描述

字符串的分割

split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。该方法的基本语法格式如下:
str.split(sep,maxsplit)
str:表示要进行分割的字符串;
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,即空字符,包括空格、换行符\n、制表符\t等;
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
在这里插入图片描述

字符串的合并

join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用来将列表(或元组)中包含的多个字符串采用固定的分隔符连接成一个字符串。join() 方法的语法格式如下:
newstr = str.join(iterable)
newstr:表示合并后生成的新字符串;
str:用于指定合并时的分隔符;
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
在这里插入图片描述

字符串的统计

count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。count 方法的语法格式如下:
str.count(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
end:指定检索的终止位置(指定end时必须同时指定start),如果不指定,则表示一直检索到结尾。
在这里插入图片描述

查找是否包含子串(1)

find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引,反之,则返回 -1。find() 方法的语法格式如下:
str.find(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的目标字符串;
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
end:表示结束检索的结束位置(指定end时必须同时指定start),如果不指定,则默认一直检索到结尾。
在这里插入图片描述
注意,python 还提供了 rfind() 方法,与 find() 方法最大的不同在于,rfind() 是从字符串右边开始检索。
在这里插入图片描述

查找是否包含子串(2)

同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串。不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。index() 方法的语法格式如下:
str.index(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的子字符串;
start:表示检索开始的起始位置,如果不指定,默认从头开始检索;
end:表示检索的结束位置(指定end时必须同时指定start),如果不指定,默认一直检索到结尾。
在这里插入图片描述

字符串的对齐

python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法。
1.ljust()
ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。ljust() 方法的基本格式如下:
str.ljust(width[, fillchar])
str:表示要进行填充的字符串;
width:表示包括 S 本身长度在内,字符串要占的总长度;
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。
在这里插入图片描述
2.rjust()
rjust() 和 ljust() 方法类似,唯一的不同在于,rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。rjust() 方法的基本格式如下:
str.rjust(width[, fillchar])
其中各个参数的含义和 ljust() 完全相同,所以这里不再重复描述。
在这里插入图片描述
3.center()
center() 字符串方法与 ljust() 和 rjust() 的用法类似,但它让文本居中,而不是左对齐或右对齐。center() 方法的基本格式如下:
str.center(width[, fillchar])
其中各个参数的含义和 ljust()、rjust() 方法相同。
在这里插入图片描述

以指定字符开头结尾

1.startswith()
startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True。反之返回 False。此方法的语法格式如下:
str.startswith(sub[,start[,end]])
str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引(指定end时必须同时指定start),如果不指定,则默认一直检索在结束。
在这里插入图片描述
2.endswith()
endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True。反之则返回 False。该方法的语法格式如下:
str.endswith(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索开始时的起始位置索引,如果不指定,默认从头开始检索。
end:指定检索的结束位置索引(指定end时必须同时指定start),如果不指定,默认一直检索到结束。
在这里插入图片描述

字符串大小写转换

python 中,为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。
1.title()方法
title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写。转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。title() 方法的语法格式如下:
str.title()
其中,str 表示要进行转换的字符串。
在这里插入图片描述
2. lower()方法
lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。lower() 方法的语法格式如下:
str.lower()
其中,str 表示要进行转换的字符串。
在这里插入图片描述
3.upper()方法
upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串,反之,则返回原字符串。upper() 方法的语法格式如下:
str.upper()
其中,str 表示要进行转换的字符串。
在这里插入图片描述

去除字符串中空格

用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。
这里的特殊字符,指的是制表符 \t 回车符 \r 换行符 \n 等。
1.strip()方法
strip() 方法用于删除字符串左右两侧的空格和特殊字符,该方法的语法格式为:
str.strip([chars])
其中,str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。
在这里插入图片描述
分析运行结果不难看出,通过 strip() 确实能够删除字符串左右两侧的空格和特殊字符,但并没有真正改变字符串本身。
2.lstrip()方法
lstrip() 方法用于去掉字符串前面(左边)的空格和特殊字符。该方法的语法格式如下:
str.lstrip([chars])
其中,str 和 chars 参数的含义,分别同 strip() 语法格式中的 str 和 chars 完全相同。
在这里插入图片描述
3. rstrip()方法
rstrip() 方法用于删除字符串后面(右边)的空格和特殊字符,其语法格式为:
str.rstrip([chars])
str 和 chars 参数的含义和前面 2 种方法语法格式中的参数完全相同。
在这里插入图片描述

格式化输出

自 python 2.6 版本开始,字符串类型(str)提供了 format() 方法对字符串进行格式化,format() 方法的语法格式如下:
str.format(args)
此方法中,str 用于指定字符串的显示样式,args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割。
在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语法格式为:
{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }
注意,格式中用 [] 括起来的参数都是可选参数,即可以使用,也可以不使用。各个参数的含义如下:
index:指定:后边设置的格式要作用到 args 中第几个数据,数据的索引值从 0 开始。如果省略此选项,则会根据 args 中数据的先后顺序自动分配。
fill:指定空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)。
align:指定数据的对齐方式,具体的对齐方式如表 1 所示
在这里插入图片描述
sign:指定有无符号数,此参数的值以及对应的含义如表 2 所示。
在这里插入图片描述
width:指定输出数据时所占的宽度。
.precision:指定保留的小数位数。
type:指定输出数据的具体类型,如表 3 所示。
在这里插入图片描述
在这里插入图片描述

字符串编码转换

我们知道,最早的字符串编码是 ASCII 编码,它仅仅对 10 个数字、26 个大小写英文字母以及一些特殊字符进行了编码。ASCII 码做多只能表示 256 个符号,每个字符只需要占用 1 个字节。
随着信息技术的发展,各国的文字都需要进行编码,于是相继出现了 GBK、GB2312、UTF-8 编码等,其中 GBK 和 GB2312 是我国制定的中文编码标准,规定英文字符母占用 1 个字节,中文字符占用 2 个字节。而 UTF-8 是国际通用的编码格式,它包含了全世界所有国家需要用到的字符,其规定英文字符占用 1 个字节,中文字符占用 3 个字节。
python 3.x 默认采用 UTF-8 编码格式,有效地解决了中文乱码的问题。
在 python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。
1.encode()方法
encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。encode() 方法的语法格式如下:
str.encode([encoding=“utf-8”][,errors=“strict”])
注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。该方法各个参数的含义如表 1 所示。
在这里插入图片描述
在这里插入图片描述
2.decode()方法
和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码” decode() 方法的语法格式如下:
bytes.decode([encoding=“utf-8”][,errors=“strict”])
该方法中各参数的含义如表 2 所示。
在这里插入图片描述
在这里插入图片描述

帮助函数

1.dir() 方法
python dir() 函数用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等,它的用法为:
dir(obj)
obj 表示要查看的对象。obj 可以不写,此时 dir() 会列出当前范围内的变量、方法和定义的类型。
【实例】使用 dir() 查看字符串类型(str)支持的所有方法:
在这里插入图片描述
2.help() 方法
python help() 函数用来查看某个函数或者模块的帮助文档,它的用法为:
help(obj)
obj 表示要查看的对象。obj 可以不写,此时 help() 会进入帮助子程序。
【实例】使用 help() 查看 str 类型中 lower() 函数的用法:

在这里插入图片描述
可以看到,lower() 函数用来将字符串中的字母转换为小写形式,并返回一个新的字符串。
注意,使用 help() 查看某个函数的用法时,函数名后边不能带括号,例如将上面的命令写作help(str.lower())就是错误的。
感谢这篇文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值