python中使用[]来截取字符串,语法:

字符串[起始位置:结束位置]

一、起始位置:结束位置

先看几个例子:

s = 'python'
print(s)            #输出 python 直接输出字符串
#从前面截取
print(s[1])         #输出 y 根据下标取字符
print(s[:])         #输出 python 从头取到尾 
print(s[1:])        #输出 ython 从下标1开始,取到结尾
print(s[0:2])       #输出 py 从下标0开始,取到下标2,顾头不顾尾,所有不包含下标2
print(s[0:100])     #输出 python 结束位置即使超出字符串实际长度,也不影响正常切片操作
#从后面截取
print(s[-1])        #输出 n 根据下标取字符
print(s[-1:-3])     #无输出,切片要遵循从左向右切的规则
print(s[-3:-1])     #输出 ho 从下标-3开始,取到下标-1,顾头不顾尾,所有不包含下标-1

这里有几项需要注意:

1、根据下标取字符时,下标不能超出索引。

2、顾头不顾尾:截取字符串时,包含头部但不包含结尾。

举例:字符串截取是按下标来截取的,我们都知道,下标是从0开始的,但上面这个例子print(s[0:2])套入上面的语法,就是从下标0开始,截取到下标为2的字符,因为不含结尾字符,故这里输出的是py,而不是pyt。

3、使用切片时,结束位置即使超出字符串实际长度也不影响切片的结果。如print(s[0:100])输出结果python。

4、从左向右:必须遵循从左向右切的规则。

 举例:print(s[-1:-3])从下标-1开始,取到下标-3,从上图可看出,从-1至-3是从右向左的顺序,故什么都取不出来。print(s[-3:-1])从左到右截取,输出ho。

二、步长

表示截取字符串每步的长度,默认为1,不能为0,语法格式:

字符串[起始位置:结束位置:步长]

先看个图

下面开始操作:

s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#从前面截
print(s[0:10:1])     #输出ABCDEFGHIJ,从左向右,取出下标0-10的值,因为顾头不顾尾,最终取出ABCDEFGHIJ
print(s[0:10:2])     #输出ACEGI,因为这里的步长是2,每两位取1个字符,最终取出ACEGI
print(s[0:10:3])     #输出ADGJ,同理,步长是3,每三位取1个字符,最终取出ADGJ
#从后面截
print(s[-20:-10:1])  #输出GHIJKLMNOP,步长默认是1,故这里步长可写可不写
print(s[-10:-20:-1]) #输出QPONMLKJIH,- 表示反方向,即从右向左切,根据倒序下标,-10至-20为QPONMLKJIHG,此时右边是开头,左边是结尾,参考顾头不顾尾,最终取出QPONMLKJIH
print(s[-10:-20:-2]) #输出QOMKI,同理,反方向步长为2,每两位取1个字符,最终取出QOMKI
print(s[-10:-20:-3]) #输出QNKH

 

版权声明:本文为xujiecnblogs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xujiecnblogs/p/16732743.html