1.下标(索引)
一次获取容器中的一个数据
1, 下标(索引), 是数据在容器(字符串, 列表, 元组)中的位置, 编号
2, 一般来说,使用的是正数下标, 从 0 开始
3, 作用: 可以通过下标来获取具体位置的数据.
4, 语法: 容器[下标]
5, Python 中是支持负数下标, -1 表示最后一个位置的数据
str1 = 'abcdefg'# 需求: 打印输出字符串中的 a 字符
print(str1[0]) # a
print(str1[-7]) # a# 需求: 打印输出字符串中 最后一个字符(-1)
print(str1[-1]) # g# 需求: 打印输出 下标为 3 的位置的字符
print(str1[3]) # d
2.切片
一次性获取容器中的多个数据
1,作用:使用切片操作, 可以一次性获取容器中的多个数据(多个数据之间存在一定的规律,数据的下标是 等差数列(相邻的两个数字之间的差值是一样的))
2, 语法: 容器[start:end:step]
- start 表示开始位置的下标
- end 表示结束位置的下标,但是 end 所对应的下标位置的数据是不能取到的
- step 步长,表示的意思就是相邻两个坐标的差值
- Eg:start, start+step, start+step*2, ...,end(取不到)
my_str = 'abcdefg'# 需求1 : 打印字符串中 abc 字符 start 0, end 3, step 1
print(my_str[0:3:1]) # abc
# 1.1 如果步长是 1, 可以省略不写
print(my_str[0:3]) # abc
# 1.2 如果 start 开始位置的下标为 0, 可以不写,但是冒号不能少
print(my_str[:3]) # abc# 需求 2: 打印字符串中的 efg , start 4, end 7, step 1
print(my_str[4: 7]) # efg
# 2.1 如果取到最后一个字符, end 可以不写,但是冒号不能少
print(my_str[4:]) # efg# 需求 3: 打印字符串中的 aceg , start 0, end 7(最后), 步长 2
print(my_str[::2]) # aceg# 练习: cf
print(my_str[2:6:3]) # cf# 特殊情况, 步长为 -1, 反转(逆序) 字符串
print(my_str[::-1]) # gfedcba
print(my_str[-1:-4:-1]) # gfe
print(my_str[-1:-4:-2]) # ge
总结:
- 如果步长是1,setp可省略(冒号可省略)
- 如果开始位置为0,start可省略(冒号不可省略)
- 如果取到最后一个字符,end可省略(冒号不可省略)
- 如果步长为负数,则将字符串逆序数
未完待续。。。