Python3基础编程:第3章:使用字符串

tech2023-09-25  90

使用字符串

1 字符串基本操作2 设置字符串3 字符串的方法3.1 center3.2 find3.3 join3.4 lower3.5 replace3.6 split3.7 strip3.8 translate

1 字符串基本操作

所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串。但是字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。

2 设置字符串

字符串格式设置运算符——百分号。 与c语言中的printf类似,%左边指定一个字符串(格式字符串),并在右边指定要设置其格式的值。在指定要设置其格式的值时,可以使用单个值(如字符串或者数字),可使用元组(如果要设置多个值的格式),还可以使用字典。

>format = "hello, %s.%s enough for ya?" >values = ('world', 'Hot') >format % values 'hello, world.Hot enough for ya?'

其中%s称为转换说明符,指出要将值插入的位置。如果指定的值不是字符串,将使用str将其转换成字符串。

模版字符串:

>from string import Template >tmp1=Template("Hello, $who! $what enough for ya?") >tmp1.substitute(who="Mars", what="Dusty") 'Hello, Mars! Dusty enough for ya?'

最简单情况下,替换字段没有名称或将索引作名称。

>"{},{} and {}".format("first", "second", "thrid") 'first,second and thrid'

还可使用索引:

>"{2},{0} and {1}".format("second", "thrid", "first") 'first,second and thrid'

命名字段工作原理:

>from math import pi >"{name} is approximately {value:0.2f}.".format(value = pi, name="pi") 'pi is approximately 3.14.'

如果变量与替换字段同名,还可以使用一种简写,即使用f字符串——在字符串前面加上f:

>from math import e >f"Euler's constant is roughly {e}." "Euler's constant is roughly 2.718281828459045."

3 字符串的方法

仅介绍常见的一些方法

3.1 center

该方法通过在两边添加填充字符让字符串居中

>"The Middle by Jimmy Eat World".center(39) ' The Middle by Jimmy Eat World '

3.2 find

该方法在字符串中查找字串,如果找到字串就返回字串第一个字的索引,否则返回-1:

>a="The Middle by Jimmy Eat World" >a.find("by") 11 >a.find("aa") -1

注意:find方法可指定起点和终点,分别为第二个和第三个参数。

3.3 join

该方法用于合并序列的元素:

>a=['1','2','3','4'] >b='+' >b.join(a) '1+2+3+4'

3.4 lower

返回字符串的小写版本:

>a="The Middle by Jimmy Eat World" >a.lower() 'the middle by jimmy eat world'

3.5 replace

该方法将指定子串替换为另一个字符串并返回替换后的结果

>a="The Middle by Jimmy Eat World" >a.replace('by','to') 'The Middle to Jimmy Eat World'

3.6 split

该方法将字符串拆分为序列。

>c="1+2+3+4" >c.split('+') ['1', '2', '3', '4']

3.7 strip

该方法将字符串开头和末尾的空白(不包括中间的空白)删除,并返回删除后的结果。

>d=" The Middle by Jimmy Eat World " >d.strip() 'The Middle by Jimmy Eat World'

也可指定要删除的字符,但只能删除开头和末尾的相应字符

>d="*****!!! The *Middle !by !!Jimmy **Eat World***!!!!!" >d.strip('*!') ' The *Middle !by !!Jimmy **Eat World'

3.8 translate

该方法也是进行字符串的特定部分替换,但不同的是它只能进行单字符替换,相比于replace的优势在于能够同时替换多个字符,效率更高。但使用前必须创建一个转换表,简单举例:

>table = str.maketrans('cs','kz') >'this is an increadible test'.translate(table) 'thiz iz an inkreadible tezt'
最新回复(0)