字符串(三)

2019-01-10  本文已影响30人  5f2a6061653d

字符串的索引与分片

字符串可以通过运算符[]进行索引与分片,字符串中每个字符都对应两个编号(也称下标),如下图所示。


字符串下标

在上图中,字符串str正向编号从0开始,代表第一个字符,依次往后;字符串str负向编号从-1开始,代表最后一个字符,依次往前。因为编号可正可负,所以字符串中的某个字符可以有两种方法索引,例如索引str中字符'q',具体示例如下:

str[4]
str[-9]

上述两种形式都可以索引到字符'q'。

字符串分片是指从字符串中截取部分字符并组成新的字符串,并不会对原字符串作任何改动,其语法格式如下:

[起始编号:结束编号:步长]

该语句表示从起始编号处开始,以指定步长进行截取,到结束编号的前一位结束。

接下来演示字符串的分片,如下所示。

1 str = "www.sunyu.com"
2 print(str[4:9]) # 默认步长为1
3 print(str[4:9:2]) # 设置步长为2
4 print(str[-9:-4]) # 默认步长为1
5 print(str[-9:-4:2])  # 设置步长为2
6 print(str[:]) # 整个字符串
7 print(str[:9]) # 等价于str[0:9:1]
8 print(str[4:]) # 默认到字符串尾部(包括最后一个字符)
9 print(str[:-9]) # 从第一个字符到编号为-9的字符(不包括编号为-9的字符)
10 print(str[-4:]) # 从编号为-4的字符到最后一个字符(包括最后一个字符)
11 print(str[::-2]) # 从后往前,步长为2
12 print(str[:-9]) # 从第一个字符到编号为-9的字符(不包括编号为9的字符)

运行结果如下图所示。


运行结果

在上例中,每种形式中第一个冒号两边表示分片从何处开始及到何处结束,第二个冒号后表示步长。在实际编程中,字符串的处理经常会用到分片,大家应灵活运用各种形式。

字符串的运算

除了数字类型的数据可以参与运算外,字符串也可以参与运算,如上节中字符串通过[]运算符进行索引与分片,具体如下表所示。

运算符 说明
+ 字符串连接
* 重复字符串
[] 索引字符串中的字符
[:] 对字符串进行分片
in 如果字符串中包含给定字符,返回True
not in 如果字符串中包含给定字符,返回False
r或R 原样使用字符串

接下来演示字符串的运算,如下所示。

1 str1, str2 = "隼", "鱼"
2 print(str1 + str2)
3 print(3 * (str1 + str2))
4 if "sunyu" in "sunyu.com":
5     print("sunyu is in sunyu.com")
6 else:
7     print("sunyu is not in sunyu.com")

运行结果如下图所示。


运行结果

在上例中,第2行输出两个字符串相加的结果,第3行输出两个字符串相加并重复3次的结果,第4行判断字符串sunyu .com中是否包含sunyu 。

上一篇下一篇

猜你喜欢

热点阅读