Python的字符串操作——索引和切片
索引: 按照位置提取元素
可以采用索引的方式来提取某一个字符(文字)
s = "我叫周杰伦"
print(s[3]) #程序员都是从0开始数,这里的3代表第4位,也就是“杰”
print(s[0]) #0就是第1位“我”
print(s[-1]) # -表示倒数,-1表示倒数第一位“伦”
切片: 从一个字符串中提取一部分内容
为了方便识别,我对下面的字符串进行位数标记
s = "我叫周杰伦,你呢?你叫周润发吗?"
print(s[3:6]) # 从索引3位置进行切片, 切到6结束, 坑: 切片拿不到第二个位置“6”的元素
# 语法: s[start:end] 从start到end进行切片,但是取不到end 。在数学中这叫做左闭又开集合,大家可以理解为[start, end)
print(s[0:5]) # 从索引开头位置进行切片, 切到5结束
print(s[:5]) # 如果start是从开头进行切片, 可以省略
print(s[6:]) # 从start开始(6)一直截取到末尾
print(s[:]) #: 如果左右两端有空白. 表示开头或者结尾
print(s[-3:-1]) # 目前还是只能从左往右切片
这里特意书写一个错误写法
print(s[-1:-3]) # 没结果, 这里是坑!!!!还不会报错!
这种写法目前是错误的。这就引出了另一个参数——step步长
在没有步长step的参数时,切片只能从左往右进行
切片: step步长
s = "我爱你"
#可以给切片添加步长来控制切片的方向
print(s[::-1]) # -表示从右往左
结果是
你爱我
语法: s[start:end:step]
从start切到end, 每step个元素出来一个元素
步长:正数代表从左向右数,负数代表从右向左数。值代表步的长短
举例:26个英文字母,
s = "abcdefghijklmnopqrstuvwxyz"
print(s[2:11:3])
print(s[2:26:3])
print(s[2::3])
print(s[-1:-10:-3])
print(s[:-10:-3])
print(s[:-26:-1])
print(s[::-1])
结果:大家好好体会其中结果的差异和左开右闭的区别
cfi
cfilorux
cfilorux
zwt
zwt
zyxwvutsrqponmlkjihgfedcb
zyxwvutsrqponmlkjihgfedcba
这个end取不到其实挺郁闷的,所以要想取到最后一位,一定要在end处写成空