新的一天!昨日内容回顾+购物车系统的初步实现+字典的概念和基本操作
昨日内容回顾:
列表:增删改查
查找:切片问题
删除; pop根据索引删除,删除的内容的值会返回
count 计数
extend 两个列表叠加,一次性追加多个值,a会变,b不会变
用c=a+b a和b都不会发生变化
index 由内容找位置
a.sort()
b=sorted(a) 实现对a的从左到右的排序
今日内容:
元组:
(12,)只有一个元素也要加 ","
a=(1,2,3,4)
print(a[1])
元组只读不能修改 其他的和列表一样
购物车系统的设计思路:
先介绍列表的嵌套:
1 #_auther_="stuwu79" 2 #date:2019/9/25 3 4 # shopping_list=["Mac","Book","bike","kindle"] 5 a = [[1,2,3],"alex",4,(2,3,4)] 6 print(a[0][1]) 7 #b=a[0] b=[1,2,3] b[1] 第6行与第7行意义相同
介绍商品列表的构建:
1 product_list = [ 2 ("Mac",9000), 3 ("kindle",800), 4 ("tesla",90000), 5 ("python book",105), 6 ("bike",3000) 7 ] 8 9 money = input("please input your saving :") 10 if money.isdigit(): 11 saving = int(money) 12 for i in product_list : #或者替换为 for i in enumerate(product_list)
print(i) 13 print(product_list.index(i),i)
for i,v in enumerate(product_list,1):
#加1默认从1开始,不然从0开始
print(i,"_______________",v)
结果:
1—————————(“Mac”,9000)
。。。。。。。。。。。。
添加一个变量V使得商品列表分成两部分
列表的赋值操作:
1 a,b=[2,3] 2 print(a) 3 print(b) 4 5 6 结果: 2 7 3
基本功能都实现:
1 #_auther_="stuwu79" 2 #date:2019/9/25 3 4 # shopping_list=["Mac","Book","bike","kindle"] 5 # a = [[1,2,3],"alex",4,(2,3,4)] 6 # print(a[0][1]) 7 #b=a[0] b=[1,2,3] b[1] 8 product_list = [ 9 ("Mac",9000), 10 ("kindle",800), 11 ("tesla",90000), 12 ("python book",105), 13 ("bike",3000) 14 ] 15 shopping_car=[] 16 money = input("please input your saving :") 17 if money.isdigit(): 18 saving = int(money) 19 while True: 20 for i,v in enumerate(product_list,1):#加1默认从1开始,不然从0开始 21 print(i,"____",v) 22 23 choice = input("选择购买商品的编号[退出:q]") 24 25 if choice.isdigit(): 26 choice = int(choice) 27 if choice > 0 and choice <= len(product_list): 28 29 p_item =product_list[choice-1] 30 31 if p_item[1] < int(money): 32 saving -= p_item[1] 33 shopping_car.append(p_item) 34 35 else : 36 print("余额不足,还剩%s"%saving) 37 38 else : 39 print("编码不存在") 40 41 elif choice == "q": 42 43 print("您已经购买如下商品:") 44 45 for i in shopping_car: 46 print(i) 47 48 print("您还剩%s元钱"%saving) 49 50 break 51 else : 52 53 print("wrong input")
查看内存地址:
id(a)
字典的概念
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据,python对key进行哈希函数运算,根据结果觉得value的存储地址,字典是无序存储,且key必须可哈希(必须是不可变类型)
键唯一
字典的创建:
dic={"name":"alex",,,,,,,,}
dic2=dict((("name","alex")))
整型和字符串类型是不可变类型
dic={"name":"alex","age":35,"hobby":"{"girl——name":"铁锤"}","is_handsome":True}
print(dic) #取出alex dic["name"] name就是键 不能用列表做键
print(dic["name"])
对字典的操作:
赋值:
dic1={'name':'alex'}
dic['age'] = 18 #(键,有则修改,无则创建)
print(dic1)
结果:{'age':18,'name':'alex'}
dic1.setdefault('age',34)
#setdefault方法尝试加入,如果 键无则创建并且加入此值且返回此值,如果 键存在则返回此键对应的原有值
查询:
查看字典中所有的键:
print(dic3.keys()) 此时取出的是keys类型可转换为list类型
list(dic3.keys())
同理:
print(dic.values()) 取值
print(dic.items()) 取出所有键值对
修改:
dic3 = {'age':18,'name':'alex','hobby':'girl'}
dic3['age']=55
print(dic3)
结果:{'age':55,'name':'alex','hobby':'girl'}
dic3.update(dic4) #将dic4加入dic3中,类似于列表的extend
#如果无相同键就全加入,如果有相同键就更新
删除:
del dic['name'] #删除指定键值对
del dic #删除整个字典
dic.clear() #删除字典的所有内容
dic.pop('age') #按键删键值对,且返回值
dic.popitem() #随机删除某个键值对且返回值
其他操作:
dic6 = dict.fromkeys(['host1','host2','host3'],'test') #初始化,使得所有host键对应的值都是test
字典的嵌套
dic={
{}
{}
{}
}
排序:
print(sorted(dic.values())) #对字典里的值进行排序
print(sorted(dic)) #对字典里的键按ascll码进行排序
print(sorted(dic.items())) #对字典的键进行
字典的遍历:
for i in dic:
pring(i) #打印出来键
for i in dic :
print(i,dic5[i]) #通过键找值然后打印出来 优先此方法
for i in dic.items() :
print(i) #打印键值对