首页 理论教育 Python字符串操作:格式化符号和函数使用示例

Python字符串操作:格式化符号和函数使用示例

时间:2023-10-27 理论教育 版权反馈
【摘要】:Python用字符串来表示和存储文本,用单引号、双引号和三引号作字符串的界定符。表2-4 字符串格式化符号使用格式化操作符的具体例子如下所示。Python提供了很多字符串函数,可以完成对字符串的各种操作。

Python字符串操作:格式化符号和函数使用示例

Python用字符串来表示和存储文本,用单引号双引号和三引号作字符串的界定符。其中单引号和双引号作界定符的作用基本相同,三引号通常用作包含多行文本字符串的界定符,如: 

978-7-111-53989-6-Chapter02-38.jpg

Python中有三类字符串:通常意义字符串、原始字符串和Unicode 字符串。

通常意义字符串即用单引号、双引号和三引号界定的文本,如: 

978-7-111-53989-6-Chapter02-39.jpg

原始字符串是以R或r开始的字符串,不对其中的转义字符进行转义(常见的转义字符有:\n 换行、\\反斜杠、\t 制表、\'单引号、\r 回车、\"双引号)。在原始字符串中,所有的字符都是直接按照字面的意思来使用,即没有转义和不能打印的字符。如: 

978-7-111-53989-6-Chapter02-40.jpg

由于变量ss指向的是原始字符串,所以print输出时“\n”没有转义为换行。 

Unicode是书写国际文本的标准方法,如果文件中含有非英语文本,就必须使用Unicode字符串。Unicode字符串是以U或u开始的字符串,如: 

978-7-111-53989-6-Chapter02-41.jpg

978-7-111-53989-6-Chapter02-42.jpg

如果把一个普通字符串和一个Unicode字符串做连接处理,Python会在连接操作前先把普通字符串转换为Unicode字符串,如: 

978-7-111-53989-6-Chapter02-43.jpg

1如果字符串的前面有u或者U,则表示该字符串为Unicode原始字符串

1.创建字符串变量 

可以使用直接赋值的方法,创建字符串变量,如: 

978-7-111-53989-6-Chapter02-44.jpg

注意:字符串创建后就不能改变,如果想改变变量引用的字符串,只能创建新的字符串,然后使用变量引用新的字符串。    

2.字符串操作符 

字符串支持表2-2中的所有序列操作符,如: 

(1)取字符串中某个字符 

978-7-111-53989-6-Chapter02-45.jpg

也可以使用反向索引

978-7-111-53989-6-Chapter02-46.jpg

(2)取字符串中的子字符串

978-7-111-53989-6-Chapter02-47.jpg

978-7-111-53989-6-Chapter02-48.jpg

切片时,从开始索引对应的元素开始取,取至结束索引—l对应的元素。通常采用的是正向索引来获取字符串的字串,有时也采取反向索引操作,如:

978-7-111-53989-6-Chapter02-49.jpg

增加第3个参数,可切取不连续的子字符串,如:

978-7-111-53989-6-Chapter02-50.jpg

(3)字符串重复

978-7-111-53989-6-Chapter02-51.jpg

(4)字符串连接

978-7-111-53989-6-Chapter02-52.jpg

Python也允许在源码中把几个字符串连在一起写,以此来构建字符串。

978-7-111-53989-6-Chapter02-53.jpg

5)成员操作符(in,not in)

978-7-111-53989-6-Chapter02-54.jpg

3.格式化操作符(%) 

Python的字符串格式化分为两种,一种是“%”形式类似C语言的printf函数,另外一种是C#形式的“{0}.format”形式。虽然Python的设计者曾经谈及%格式将逐渐消失,但%格式存在于大量的Python代码中,即使到了Python 3.4,%格式依旧存在于大量的Python标准库中,所以本节以经典的%格式进行讲解。 

格式化操作符的使用格式为: 

格式化模板 % 转换参数列表 

其中格式化模板由普通字符和包含%的格式化符号组成,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。各符号的意义见表2-4。 

2-4 字符串格式化符号

978-7-111-53989-6-Chapter02-55.jpg

使用格式化操作符的具体例子如下所示。

978-7-111-53989-6-Chapter02-56.jpg

978-7-111-53989-6-Chapter02-57.jpg

可以用如下辅助符号,对格式进行进一步的控制

978-7-111-53989-6-Chapter02-58.jpg

说明: 

(1)flags可以是+、-、' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。 

(2)width表示显示宽度。 

(3)precision表示小数点后精度。 

具体的格式化操作符的辅助符见表2-5。 

2-5 格式化操作符辅助符 

978-7-111-53989-6-Chapter02-59.jpg

使用格式化操作符的辅助符号的具体例子如下所示

978-7-111-53989-6-Chapter02-60.jpg

注意:表2-5中的m.n分别表示宽度和小数位数,可以用*来动态地代入这两个量,例如

978-7-111-53989-6-Chapter02-61.jpg

综上所述,Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。 

4.比较操作符 

在Python中可以用标准的比较操作符来比较字符串的大小。字符串比较大小是从左至右依次比较字符串中字符的ASCII值的大小。标准的比较操作符见表2-6。 

2-6 标准的比较操作符

978-7-111-53989-6-Chapter02-62.jpg

Python 3不再支持<>操作符,而Python 2既支持!=也支持< >。

字符串比较的例子如下: 

978-7-111-53989-6-Chapter02-63.jpg(www.xing528.com)

5.字符串内建函数 

字符串的内建函数实际是字符串对象的方法,使用格式为“字符串对象名.函数名()”。 

Python提供了很多字符串函数,可以完成对字符串的各种操作。下面按照操作需求对这些函数进行讲解。 

(1)字符串去空格(strip,lstrip,rstrip) 

strip去掉字符串左侧和右侧的空格(包括空格键、Tab键和回车键),lstrip去掉字符串左侧的空格,rstrip 去掉字符串右侧的空格。 

例: 

978-7-111-53989-6-Chapter02-64.jpg

如果在strip、lstrip、rstrip函数的参数中给出特定字符串,这三个函数也可以完成删除特殊字符的功能。 

978-7-111-53989-6-Chapter02-65.jpg

2)连接字符串(join) 

除了使用操作符“+”实现字符串连接功能,也可以使用join函数连接字符串,如:

978-7-111-53989-6-Chapter02-66.jpg

例中join函数的参数为列表,列表的知识将在下一小节中讲解。 

使用join函数和“+”连接字符串的区别在于,join将所有字符串连接在一起后,生成一个新的字符串对象,而“+”则每连接两个字符串就需要产生一个新的字符串对象,所以在需要连接多个子字符串时,一般使用join函数。当然也可以使用字符串格式化操作符“%”,将多个字符串连接在一起,如: 

978-7-111-53989-6-Chapter02-67.jpg

使用字符串格式化操作符“%”进行字符串连接效率高、可读性好,并且可以自动将非字符串的对象转换为字符串后连接,如: 

978-7-111-53989-6-Chapter02-68.jpg

同样的连接,使用join函数时会报错:

978-7-111-53989-6-Chapter02-69.jpg

使用“+”操作符也会报错

978-7-111-53989-6-Chapter02-70.jpg

3)分割和组合(split,rsplit,splitline)

split函数的使用格式为: 

978-7-111-53989-6-Chapter02-71.jpg

功能:以str为分隔符切片string,如果指定num,则仅分割num个子字符串。

978-7-111-53989-6-Chapter02-72.jpg

rsplit函数与split基本相同,区别在于当num<string.count(str)时,split是从左向右分割子字符串,而rsplit是从右向左分割子字符串。 

978-7-111-53989-6-Chapter02-73.jpg

splitline函数的使用格式为:

978-7-111-53989-6-Chapter02-74.jpg

功能:按照行切片string,返回一个以各行内容为元素的列表,如果指定num,则仅切片num行。 

978-7-111-53989-6-Chapter02-75.jpg

4)查找字符串(find、index)

find函数的使用格式为: 

978-7-111-53989-6-Chapter02-76.jpg

功能:检测str是否包含在string中,如果用beg和end指定范围,则会检查是否包含在指定范围内,如果是,返回开始的索引值,否则返回-1。  例如: 

978-7-111-53989-6-Chapter02-77.jpg

index函数的使用格式为:

978-7-111-53989-6-Chapter02-78.jpg

功能:与find函数基本相同,只是如果在string中找不到str会报告异常。

例: 

978-7-111-53989-6-Chapter02-79.jpg

5)统计子字符串出现次数(count)

count函数使用的格式为: 

978-7-111-53989-6-Chapter02-80.jpg

功能:统计str在string中的出现次数,如果用beg和end指定范围,则返回指定范围内str出现的次数。 

例: 

978-7-111-53989-6-Chapter02-81.jpg

6)替换子字符串(replace

replace函数使用的格式为: 

978-7-111-53989-6-Chapter02-82.jpg

功能:把字符串中的字符串str1替换成str2,如果num指定,则替换次数不超过num次。 

例: 

978-7-111-53989-6-Chapter02-83.jpg

(7)字符串的测试、判断函数 

string.startswith(str[,beg[,end]]) 检查是否以str开头,如果指定beg和end,则在指定范围内查找。 

string.endswith(str[,beg[,end]]) 检查是否以str结尾,如果指定beg和end,则在指定范围内查找。 

string.isalnum()检查是否全是字母和数字,并至少有一个字符。 

string.isalpha()检查是否全是字母,并至少有一个字符。 

string.isdigit()检查是否全是数字,并至少有一个字符。 

string.isspace()检查是否全是空白字符,并至少有一个字符。 

string.islower()检查是否全是小写。 

string.isupper()检查是否全是大写。 

string.istitle()检查是否首字母大写。 

例: 

978-7-111-53989-6-Chapter02-84.jpg

可使用capitalize函数将字符串的首字符改成大写,如:

978-7-111-53989-6-Chapter02-85.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈