#元组就是一个不可变的列表
#1、作用:按照索引/位置存放多个值,只用于读不用于改
#2、定义:()内用逗号分隔开多个任意类型的元素
# t=(1,1,3,'aa') #t=tuple(1,1.3,'aa')
# print(t,type(t))
# x=(10,) #只有一个元素的情况下,必须加上逗号
# print(x,type(x))
# t=(1,1,3,'aa') #t=(0->值1的内存地址,1->值1.3的内存地址,1->值’aaa'的内存地址
# t[0]=111
# print(t) #报错,不可修改
# t=(1,[11,22]) #t=(0->值1的内存地址,1-值[11,22]的内存地址
# print(id(t[0]),id(t[1]))
# t[0]=1111
# t[1]=2222 #不能改
# t[1][0]=111111 #这里没有修改元组的内存地址,换句话来说,只要内存地址没有改变,元组就没有修改
# print(id(t[0]),id(t[1])) #内存地址不变
# print(t) #输出(1,[11111,222])
#3、类型转换
# print(tuple('hello')) #('h', 'e', 'l', 'l', 'o')
# print(tuple([1,2,3])) #(1, 2, 3)
# print(tuple({'a1':111,'a2':222})) #输出('a1', 'a2')
#4、内置方法
#优先掌握的操作:
#1、按索引取值(正向取,反向取):只能取
# t=('aaa','bbb','cc')
# print(t[0])
# print(t[-1])
#2、切片(顾头不顾尾,步长)
# t=('aaa','bbb','cc','ddd','eeee')
# print(t[0:3]) #('aaa', 'bbb', 'cc')
# print(t[::-1]) #反转元组,输出('eeee', 'ddd', 'cc', 'bbb', 'aaa')
#
# print(len(t)) #5
#
# print('aa' in t) #False
#5、循环
# for x in t:
# print(x)
#6、内置方法
t=(1,2,3,1)
print(t.index(3)) #返回元素的索引,找不到报错
print(t.count(1) #统计个数 输出2