在python中,我们定义好一个字符串,如下所示。
s = 'abcdefghijklmnop'
在python中定义个字符串然后把它赋值给一个变量。我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始。这个时候呢,我们可以通过切片的方式来截取出我们定义的字符串的一部分。使用切片的时候我们有两种方式:
1.没有步长的简单切片
语法格式是这样的:
1.首先定义一格字符串,比如叫s,然后给它赋值
2. 截取字符串中的一部分,我们用的语法是 s[ start : stop ]
注意一下: 在这里呢,start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置。
>>>s = 'spam'
>>>s[0], s[-2]
('s', 'a')
>>>s[1:3], s[1:], s[:-1]
('pa', 'pam', 'spa')
>>>
从上面我们可以知道,如果从开头截取到某个特定的位置可以用 [ : a]来表示
>>>s = 'abcdefghijklmnop'
>>>s[:8]
'abcdefgh'
如果从某一位开始截取到最后一位可以用[ a : ]来表示
>>>s[8:]
'ijklmnop'
这里有一点要说明, 在 pyhton中的字符串的索引序号可以是正数也可以是负数,从-1开始算:
>>>s[-1]
'p'
>>>s[-5]
'l'
所以我们还可以这么玩:
>>>s[-3:]
'nop'
2.有步长的切片方式
另外的一种切片方式就是,首先还是定义一格字符串的变量,然后间隔的取出我们的字符串中的字符。
语法格式:
s [start: stop: stride]
同样这里取出来的字符串的结束字符是stop结束的前一个字符
stride表示的是间隔的取出字符串
下面来看几个例子:
>>>s = 'abcdefghijklmnop'
>>>s[1:10:2]
'bdfhj'
>>>s[::2]
'acegikmo'
这个时候我们可以还可以反转字符串
>>>s[::-1]
'ponmlkjihgfedcba'
间隔逆向的取出字符串:
>>>s[::-2]
'pnljhfdb'
反方向的截取部分的字符串:
这个时候我们将步长的那个地方设置为负数,表示从右向左取字符串,步长的绝对值大于1表示间隔的取数。
开始的部分那个截取下标也要从负数计算,或者start必须大于结束的下标,因为它是从右开始的截取的。
>>>s = 'abcdefghijklmnop'
>>>s[-1:-8:-1]
'ponmlkj'
>>>s[-1:3:-2]
'pnljhf'
>>>s[10:1:-3]
'khe'
python的字符串切片就是这个样子的。