昨日内容回顾:
列表:增删改查
查找:切片问题
删除; 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 ifmoney.isdigit():11 saving =int(money)12 for i inproduct_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 ifmoney.isdigit():18 saving =int(money)19 whileTrue:20 for i,v in enumerate(product_list,1):#加1默认从1开始,不然从0开始
21 print(i,"____",v)22
23 choice = input("选择购买商品的编号[退出:q]")24
25 ifchoice.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]
35 else:36 print("余额不足,还剩%s"%saving)37
38 else:39 print("编码不存在")40
41 elif choice == "q":42
43 print("您已经购买如下商品:")44
45 for i inshopping_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) #打印键值对