回顾:
什么是变量?,有什么用?
可以变化的量, 就是个容器,多次变化,方便后续使用,
前面介绍了哪些数据类型?
bool, str, int, float
用什么函数查看数据的类型?
a = "hello"
print(type(a))
到了这一步,,我们认识了哪些数据类型呢?
int 整型(整数), float 浮点型(小数), bool布尔型(True False),str 字符串
上面的四种数据类型,有一个是卧底,你能发现吗?
提示, 东北虎,猎豹, 獾, 西伯利亚狼 哪一个区别其他动物
是的,没错,
就是他,西伯利亚狼
区别是什么呢?
他群居,有秩序
那么在回来看着几个数据类型
int, float, bool, str 这几个数据类型,那个像狼呢?
是的就是他 str
str_0 = "hello world"
我们可以发现字符串里面可以有多个字符, 同时每个字符呢,都有一个下标,什么是下标呢,就是每个字符的 编号,就跟我们上学时,是不是每个学生都有一个学号,通过学号,我就能找到你这个人
如下所示:
那么我们知道字符串这个数据类型,可以存储多个元素, 还有下标,那么我们叫这种数据类型叫什么呢?
是的,就叫做有序序列类型 序列代表他可以存多个值里面的每一个字符都可以看做一个值,有序是他有顺序,也就是有下标
那么我们怎么通过下标获取字符串里面的值呢?
str_0 = "hello world"
print(str_0[0]) # 获取下标为0 的值 格式就是变量[下标]
print(str_0[1])
print(str_0[2])
print(str_0[3])
print(str_0[4])
结果如下:
上面讲了正向下标,除此之外还有反向下标,就是从右到左递增,效果如下:
同理可利用反向下标获取该下标的值
str_0 = "hello world"
print(str_0[-11]) # 获取下标为-11 的值 格式就是变量[下标]
print(str_0[-10])
print(str_0[-9])
print(str_0[-8])
print(str_0[-7])
结果如下:
上面这个通过下标获取序列里面的值,这个就叫做索引
值得注意的是有一种情况叫做下标越界,什么叫做下标越界呢,简单来说就是我序列里面的下标只有10个下标,但是你获取值是通过下标12, 15等等这些没有的下标去获取,
那序列只能说:臣妾做不到啊
如下:
str_0 = "hello world"
print(str_0[-12])
报错如下:
前面我们讲了有序序列数据类型的索引,我们再来讲讲他的另一个概念-切片
什么是切片呢?你可以这样理解, 你手里有一把手术刀,你用你魔法般的手法,把有序序列这个数据,想怎么切成几段,就切成几段,然后从中获取自己想要的值
如下图所示
str_0 = "hello world"
a=str_0[2:6]#左闭右开,获取下标2-5的值
print(a, len(a))
b=str_0[3:11]#获取下标3-10的值
print(b)
c=str_0[-8:11]#获取下标3-10的值
print(c)
d=str_0[-8:]#获取下标3-10的值
print(d)
e=str_0[:7]#获取下标6前所有的值
print(e)
f=str_0[:]#获取所有的值
print(f)
g=str_0[::2]#获取步长为2的值
print(g)
h=str_0[::3]#获取步长为3的值
print(h)
i=str_0[::-1]#反向获取所有的值
print(i)
结果
序列有三个概念
索引, 切片, 步长
前面介绍的都是字符串这个有序的序列类型
有序的序列类型还有两个
列表和元组
列表这个有序的序列类型用法如下
list_0=['hello','world',23,2.5,["李白",1]]
print(list_0[1])#打印下标1的值
print(list_0[::-1])#反向打印所有的值
print(list_0[-1][1])#嵌套打印列表里面1这个值
元组也是属于有序的序列类型
具体用法如下
tuple_1=(1,2,3,4,5,6,7,8,9)#元组是用小括号包裹的多个值
#针对一个数据的情况下, 如果不加逗号就是字符串,如果后面加了一个逗号就是元组
tuple_2=("李白",)
print(type(tuple_2))
结果:
上面就是一些序列类型的使用,其他比如列表和元组,他们使用索引,还有切片和步长都是和前面讲的字符串一样的