字符串基本操作
首先来知道一个名词,元素,我们称字符串内('ning')的每个值('n')为该字符的元素,后续讲列表或者元组中也是这么个意思。
按索引取值
本章开头提到数据类型的概念时说字符串是序列类型。那么也就是说字符串内每个字符(元素)都有自己的索引序号,所以我们可以通过其索引序号来确定字符串中字符的位置,并且访问该位置上的字符。
<字符串>[数值表达式]
栗子:
s = "strat"
s[数字]
尖角号为字符串,后面的中括号内的数值表达式就是索引的位置。栗子如下:
print("ting"[2])
n
print("ting"[0])
t
索引位置返回的结果就是该索引位置上的字符。正如上例所示,我们获取字符串ting中索引为0的字符,通过打印结果来看,成功拿到索引为0的字符t。
再来看一个示例:
s1 = 'https://www.cnblogs.com/editor/'
print(s1[0]) # 取索引位置为0的字符 h
print(s1[3]) # 取索引位置为3的字符 p
print(s1[-1]) # 取索引位置最后一个字符 /
上例中,我们取最后一个字符选择的索引序号是-1
,那这是什么意思呢?在Python中,字符串(或别的有序数据类型)的索引序号,可以通过左右两个方向来获取:
- 从左到右的顺序,从0开始计算,如
0、1、2......
- 从右到左的顺序,从
-1
开始计算,如-1、-2、-3.....
上图展示了字符串的索引顺序,由左到右索引从0
开始,由右到左索引从-1
开始。
字符串切(分)片
字符串(包含其他数据类型)除了能按照索引取值之外,我们还可以截取字符串中指定范围内的字符,比如从字符串abcd
中截取bc
,这种操作称为切(分)片。
有意思的是,切片在国外的一些Python书籍译本中,叫分片,而我大天朝一般亲切的称为切片,所以在别处看到分片字样其实就是指切片。
str[start_index:end_index:step]
s2 = 'ning'
print(s2[1:3])
in # 结果
print(s2[1:3:1])
in # 结果
start_index
表示索引(从左到右的顺序)开始的位置。end_index
表示索引结束的位置。step
表示取值的步长,默认为1(所以,我们可以省略不写),切记,步长的值不能为0。步长也就是说,从哪到哪,每隔几个取一个,由上图可以看出,切片[1:3]
取的是索引1,2
对应的字符,但我们的end_index
写的是3,是因为,索引1~2
取一个值b
,索引2~3
取一个值c
,步长为1则是这两个值都取。
做个练习:
str1 = '我要学Python。'
print(str1[1])
# 输出结果为'要'
str2 = 'study hard