1.day 05 内容回顾
dict:dic = {'name':'alex'} 增:dic['age']=21#存在就覆盖 dic.setdefault(),没有就增加 删除: pop()按照key删除,有返回值 clear 清空 del dic['name']按健删除,没有返回值 popitem()随机删除 改 update 查 dic.keys()打印所有健 dic.values()打印所有值 dic,items()打印所有键值对 for k,v in dic.items() print(k,v) dic.get(key,None)
2.作业讲解
1 ''' 2 3、元素分类 3 有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 4 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表} 5 ''' 6 # li= [11,22,33,44,55,66,77,88,99,90] 7 # dic={} 8 # l1=[] 9 # l2=[] 10 # for i in li: 11 # if i==66: 12 # continue 13 # if i>66: 14 # l1.append(i) 15 # else: 16 # l2.append(i) 17 # dic.setdefault("k1",l1) 18 # dic.setdefault("k2",l2) 19 # print(dic) 20 21 ''' 22 4、输出商品列表,用户输入序号,显示用户选中的商品 23 商品 li = ["手机", "电脑", '鼠标垫', '游艇'] 24 要求:1:页面显示 序号 + 商品名称,如: 25 1 手机 26 2 电脑 27 … 28 2: 用户输入选择的商品序号,然后打印商品名称 29 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。 30 4:用户输入Q或者q,退出程序。 31 32 ''' 33 while 1: 34 li = ["手机", "电脑", '鼠标垫', '游艇'] 35 for i in li : 36 print('{}\t\t{}'.format(li.index(i)+1,i)) 37 num_of_choice = input('请输入选择的商品序号:') 38 if num_of_choice.isdigit(): 39 num_of_choice = int(num_of_choice) 40 if num_of_choice>0 and num_of_choice<=len(i): 41 print(li[num_of_choice-1]) 42 else:print('请输入有效数字') 43 elif num_of_choice.upper()=='Q':break 44 else:print('请输入数字')
3.小知识点总结
1 ''' 2 pythoon2 python3的区别 3 4 ''' 5 #python2 6 #print() print'abc' 7 #range() xrangge()生成器 8 #raw_input() 9 10 #python3 11 #ptint(abc) 12 #range() 13 #input() 14 15 # =(赋值) ==(比较值是否相等) is 比较,比较就是内存地址 16 # li1 = [1,2,3] 17 # li2=li1 18 # print(id(li1),id(li2)) 19 # id()#测出内存地址 20 21 #数字 字符串 小数据池 22 #数字的范围 -5--256 23 #字符串:1,不能有特殊字符 24 # 2,s*20还是同一个地址,s*21以后都是两个地址 25 # i1 = 6 26 # i2 = 6 27 # print(id(i1),id(i2)) 28 29 30 #剩下的 list dict tuple set 31 #l1 = [1,] 32 #l2 = [1,] 33 #print(l1 is l2) 34 35 36 # s = 'alex' 37 # s1 = b'alex' 38 # print(s,type(s)) 39 # print(s1,type(s1)) 40 41 # s = '中国' 42 # print(s,type(s)) 43 # s1 = b'中国' 44 # print(s1,type(s1)) 45 46 # s1 = 'alex' 47 # # encode 编码,如何将str --> bytes, () 48 # # s11 = s1.encode('utf-8') 49 # s11 = s1.encode('gbk') 50 # print(s11) 51 s2 = '中国' 52 s22 = s2.encode('utf-8') 53 s22 = s2.encode('gbk') 54 print(s22)
4.编码(py3)
1 ascii 2 A : 00000010 8位 一个字节 3 4 unicode 5 A: 00000000 000000001 00000010 00000100 32位四个字节 6 中:00000000 000000001 00000010 00000110 32位四个字节 7 gdk A:00000110 8位一个字节 8 中:000000001 00000010 00000110 24位三个字节 9 10 1.各个编码之间的二进制,是不能互相识别的,会产生乱码 11 2.文件的存储,传输,不能是unicode存储的 12 13 py3: 14 str 在内存中是用unicode编码 15 bytes类型 16 对于英文: 17 str: 表现形式: s = 'alex' 18 编码方式:010101010 unicode 19 bytes:表现形式:s = b'alex' 20 编码方式:000101010 utf-8 gbk 21 对于中文: 22 str: 表现形式: s = 'alex' 23 编码方式:010101010 unicode 24 bytes:表现形式:s = b'x\e91\e91\e01\e21\e31\e32' 25 编码方式:000101010 utf-8 gbk
1 # s = 'alex' 2 # s1 = b'alex' 3 # print(s,type(s)) 4 # print(s1,type(s1)) 5 6 # s = '中国' 7 # print(s,type(s)) 8 # s1 = b'中国' 9 # print(s1,type(s1)) 10 11 # s1 = 'alex' 12 # # encode 编码,如何将str --> bytes, () 13 # # s11 = s1.encode('utf-8') 14 # s11 = s1.encode('gbk') 15 # print(s11) 16 s2 = '中国' 17 s22 = s2.encode('utf-8') 18 s22 = s2.encode('gbk') 19 print(s22)