python3常见的数据结构有:数字,字符串,列表,元组(只读列表,不可修改元素),集合,字典
字典可存储的信息量几乎不受限制,例如我们可以创建一个表示人的字典,然年存储各种信息:姓名,职业,年龄,地址,职业,其他。
创建字典:
d={"姓名":"小明","职业":"老师","身高",175}
思考:
列表可以存储数据,为什么还要学习字典呢
字典中的元素以键值对的方式存储
d={key1:value1,key2:value2}
例如d={'小明':11,'小红':14} 小明和小红是是键key, 11和14是值value
注意:
keys()获取字典的键
#keys()获取字典的键
d={"小明":95,"小红":89,"小王":90}
for k in d.keys():
print(k)
>>>
小明
小红
小王
values()获取字典的值
#values()获取字典的值
d={"小明":95,"小红":89,"小王":90}
for v in d.values():
print(v)
>>>
95
89
90
items()获取字典的键,值
#items()获取字典的键,值
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
最简单最直接的字典遍历方法
#最简单最直接的字典遍历方法
d={'小明':60,'小红':70,'小花':80}
for i in d:
print(i)
print(d[i])
>>>
小明
60
小红
70
小花
80
字典的增加
#字典的增加
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
#d字典增加小华
d={"小明":95,"小红":89,"小王":90}
d["小华"]=70
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
小华 70
字典的修改
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
#d字典修改
d={"小明":95,"小红":89,"小王":90}
d["小明"]=70
for k,v in d.items():
print(k,v)
>>>
小明 70
小红 89
小王 90
使用del()对字典的删除
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
#d字典删除
d={"小明":95,"小红":89,"小王":90}
del d["小明"]
for k,v in d.items():
print(k,v)
>>>
小红 89
小王 90
使用pop()对字典的删除
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
#使用pop删除小明
d={"小明":95,"小红":89,"小王":90}
d.pop("小明")
for k,v in d.items():
print(k,v)
>>>
小红 89
小王 90
使用clear()对字典整个删除
d={"小明":95,"小红":89,"小王":90}
for k,v in d.items():
print(k,v)
>>>
小明 95
小红 89
小王 90
#使用clear(),清空字典
d={"小明":95,"小红":89,"小王":90}
d.clear()
for k,v in d.items():
print(k,v)
>>>
使用 get() 和 d[键] 来访问值,那如果指定的键不存在呢?
#使用 get() 来获得对应的值
d={"小明":95,"小红":89,"小王":90}
student=d.get("小明")
print(student)
>>>
95
#使用 d[键] 来获取对应的值
d={"小明":95,"小红":89,"小王":90}
print(d["小明"])
>>>
95
方法get()第一个参数用于指定键,是必不可少的;第二个参数为指定键不存在时要返回的值
#方法get()第一个参数用于指定键,是必不可少的;第二个参数为指定键不存在时要返回的值
d={"小明":95,"小红":89,"小王":90}
student=d.get("小黄","没有这个人")
print(student)
>>>
没有这个人
利用学习的字典知识做一个超市购物系统
#超市购物系统
shop = {"烤鱼":5, "绿茶":3, "柠檬":3, "牛奶":4, "红茶":5, "坚果":8}
shoping_car = {}
total = 0
while True:
#1.显示商品信息
for i in shop:
print(' {} {}n'.format(i, shop[i]))
goods = input("请输入你想要购买的商品名称,退出系统请输入exit,结账请输入pay:")
#2.退出功能
if goods == "exit":
print("正在退出系统……")
print("已退出")
break
#3.结算功能
elif goods == "pay":
print("购物清单")
for key in shoping_car:
print("商品:",key,"数量:",shoping_car[key],"单价:",shop[key],"总价:",shoping_car[key]*shop[key])
total = total +shoping_car[key]+shop[key]
print("您需要支付:",total)
break
#4.选购功能
else:
if goods in shop:
goods_number = int(input("请输入购买的数量:"))
#添加到购物车
if goods in shoping_car: #判断 goods 是否是购物车的成员
shoping_car[goods] = shoping_car[goods] +goods_number
else: #首次购买
shoping_car[goods] = goods_number
else:
#提示无此商品
print("无此商品,请重新输入:")



