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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值