前面学了列表和字典,今天我们看一个和列表相似的类型元祖。
预习:
简单购物车
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
‘apple‘:10,
‘tesla‘:100000,
‘mac‘:3000,
‘lenovo‘:30000,
‘chicken‘:10,
}
一、元组(tuple)
为何要有元组?===>存多个值,对比列表来说,元组不可变,主要是用来读
定义:与列表类型相似,只不过[]换成(),元组是不可变类型所以可以当做字典的key
1 t=(1,[1,3],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2))) 2 print(type(t))
元组所以可以当做字典的key
1 #元组可以作为字典的key 2 d={(1,2,3):‘egon‘} 3 print(d,type(d),d[(1,2,3)])
常用方法:
1 #为何要有元组,存放多个值,元组不可变,更多的是用来做查询 2 t=(1,[1,3],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2))) 3 print(type(t)) 4 5 #元组可以作为字典的key 6 d={(1,2,3):‘egon‘} 7 print(d,type(d),d[(1,2,3)]) 8 9 # 索引 10 goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘) 11 print(goods.index(‘iphone‘)) 12 print(goods.count(‘iphone‘)) #统计 13 14 #切片 15 goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘) 16 print(goods[1:3]) 17 18 # 长度 19 print(len(goods)) 20 21 #in: 22 goods=(‘iphone‘,‘lenovo‘,‘sanxing‘,‘suoyi‘) 23 print(‘iphone‘ in goods) 24 25 #补充:元组本身是不可变的,但是内部的元素可以是可变类型 26 t=(1,[‘a‘,‘b‘],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2))) 27 t[1][0]=‘A‘ 28 print(t) 29 # t[1]=‘aaaaaaaaaaaa‘ #报错
补充:元组本身是不可变的,但是内部的元素可以是可变类型
1 t=(1,[‘a‘,‘b‘],‘sss‘,(1,2)) #t=tuple((1,[1,3],‘sss‘,(1,2))) 2 t[1][0]=‘A‘ 3 print(t) 4 # t[1]=‘aaaaaaaaaaaa‘ #报错
二、赋值
1 x=10 2 3 #链式赋值 4 a=b=c=d=e=f=10 5 print(a,b,c,d,e,f) 6 7 #增量赋值 8 x+=1 9 x-=1 10 ... 11 12 #两个值得互换 13 x=10 14 y=‘a‘ 15 #法一 16 temp=x 17 x=y 18 y=temp 19 print(x,y) 20 #法二 21 x,y=y,x 22 print(x,y) 23 24 25 #值的解压 26 msg=‘hello‘ 27 l=[1,2,3] 28 29 a,b,c,d,e=msg 30 print(a,b,c,d,e) 31 32 a,_,_,_,e=msg 33 a,*_,e=msg 34 print(a) 35 print(e) 36 37 dic={‘a‘:1,‘b‘:2,‘c‘:3} 38 x,y,z=dic 39 print(x,y,z)
预习解答:
1 msg_dic = {‘apple‘:10,‘tesla‘:100000,‘mac‘:3000,‘lenovo‘:30000,‘chicken‘:10,} 2 shop_card = [] 3 while True: 4 for item in msg_dic: 5 print(‘{}:{}‘.format(item,msg_dic[item])) 6 7 goods=input(‘商品名: ‘).strip() 8 if len(goods) == 0 : 9 print("没有输入商品名称!") 10 continue 11 if not goods in msg_dic : 12 print("本商城没有此商品!") 13 continue 14 15 num = input(‘购买个数: ‘).strip() 16 if len(num) == 0 : 17 print("没有输入商品数量!") 18 continue 19 if not num.isdigit() : 20 print("商品数量格式输入有误!") 21 continue 22 23 shop_card.append((goods,msg_dic[goods],num)) 24 print(shop_card)
小知识点:
in可用范围:
字符串:子字符串
列表:元素
元组:元素
字典:key
时间: 2024-11-08 18:23:43