1.获取当个字符
字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位子。
下标是从0开始依次增加的,0对应的是第一个字符:也可以是-1开始依次减少,-1代表最后一个字符
例如:'hello' -> h->(0 , -5) e ->(1 , -4) l -> (2 ,-3) l -> (3 ,-2 ) o -> (4,-1)
a.获取单个字符的语法:
字符串[下标] - 获取字符串中指定下标对应的字符
b.说明:
字符串 - 只要结果是字符串的表达式都可以,
例如:字符串子面量,字符串变量
[] - 固定写法
下标 - 需要获取的字符对应的下标;注意,这的下标不能越界
print('how are you!'[12])
IndexError: string index out of range 报错原因:下标越界
2.获取部分字符(字符串切片)
方法一:
a.语法:
字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到结束下标前为止。每次下标值加上步长取获取下一个
b.说明:
字符串 - 自要结果是字符串的表达式都可以, 例如:字符串字面量,字符串变量
[] - 固定写法
开始下标.结束下标 - 下标值 (这儿的下标可以越界,但是最好不要越界)
步长 - 必须是整数(正数和负数都行); 如果步长是正数,是从开始下标开始从前往后获取;
如果步长是负数,是从开始下标开始从后往前获取
c.注意:
当步长为正,要求开始下标对应的字符的位子必须在结束下标对应的位子的前面,否则结果是空的!
当步长为负,要求开始下标对应的字符的位子必须在结束下标对应的位子的后面,否则结果是空串!
不管怎么取,结束下标一定取不到!
str1 = 'hello python'
print('结果1:', str1[0:-1:2]) # 从前往后取
print('结果2:', str1[-1:0:-2]) # 从后往前取
print('结果3:', str1[-1:-100:-1]) # 结束下标越界
print('结果4:', str1[100:-100:-1]) # 下标越界
练习:获取一个字符串中所有下标是奇数的字符(顺序)
num = '123456'
print('123456的奇数(顺序):', num[0:100:2])
方法二:省略步长
字符串[开始下标:结束下标] - 步长就是1;从开始下标到结束下标前为止,一个一个的取!
print('when i was young!'[2:6])
方法三:(省略开始下标和结束下标)
a.省略开始下标
字符串[:结束下标:步长] - 当步长是正数,从字符串的第一个字符开始取到结束下标前为止;
当步长是负数,从字符串的最后一个字符开始取到结束下标前为止
b.省略结束下标
字符串[开始下标::步长] - 当步长是正数,从开始下标开始取到字符串最后一个字符位置;
当步数是负数,从开始下标开始取到字符串的第一个字符为止
str3 = 'how do you do!'
print(str3[:6], str3[:6:-1])
print(str3[2:],str3[2::-1])
print(str3[:])
print(str3[::-1]) # 让字符串倒序
网友评论