Day06 小知识点总结; 编码

上次作业

 1 '''
 2 1. 元素分类
 3     有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,
 4     将小于 66 的值保存至第二个key的值中。
 5 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
 6 '''
 7 li = [11,22,33,44,55,66,77,88,99,90]
 8 li_higher = []
 9 li_lower = []
10 dic = {}
11 for i in li:
12     if i == 66:
13         continue
14     elif i > 66:
15         li_higher.append(i)
16     else:
17         li_lower.append(i)
18 dic.setdefault('k1',li_higher)
19 dic.setdefault('k2',li_lower)
20 print(dic)
21 
22 '''
23 2. 输出商品列表,用户输入序号,显示用户选中的商品
24     商品 li = ["手机", "电脑", '鼠标垫', '游艇']
25 要求:1:页面显示 序号 + 商品名称,如:
26           1 手机
27            2 电脑
28 29      2: 用户输入选择的商品序号,然后打印商品名称
30      3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
31      4:用户输入Q或者q,退出程序。
32 
33 '''
34 li = ["手机", "电脑", '鼠标垫', '游艇']
35 for i in li:
36     print('{}\t{}'.format(li.index(i) + 1,i))
37 flag = True
38 #要有标志位
39 while flag:    
40     choice = input('请输入选择的商品序号或按Q退出: ')
41     if choice.isdigit():
42         choice = int(choice)
43         #判断输入数字是否在索引范围内
44         if choice > 0 and choice <= len(li):
45             print(li[choice + 1])
46     elif choice.upper() == 'Q':
47         break
48     else:
49         print('请输入数字')

1. 小知识点总结

 1 # 1. python2与python3的区别
 2 python2
 3 print()  print 'abc'    #print时可以不加括号
 4 range()  xrange(): 为生成器
 5 raw_input()
 6 
 7 python3
 8 print('abc')
 9 range()
10 input()
11 
12 # 2.  = 赋值 == 比较值是否相等   is 比较,比较的是内存地址  id(内容)即内存地址
13 li2 = li1
14 print(id(li1),id(li2))    #是相同的
15 
16 # 3. 对于数字,字符串 有小数据池的概念
17 数字的范围 -5 -- 256
18 字符串:1,不能有特殊字符
19        2,s*20 还是同一个地址,s*21以后都是两个地址
20 i1 = 6
21 i2 = 6
22 print(id(i1),id(i2))
23 i1 = 300
24 i2 = 300
25 print(id(i1),id(i2))
26 
27 #剩下的 list dict tuple set没有小数据池的概念
28 l1 = [1,]
29 l2 = [1,]
30 print(l1 is l2)

2. 编码

 1 '''ascii
 2     A : 00000010  8位 一个字节
 3 unicode    
 4     A : 00000000 00000001 00000010 00000100 32位  四个字节
 5     中:00000000 00000001 00000010 00000110 32位  四个字节
 6 utf-8     
 7     A :  00100000 8位 一个字节
 8     中 :  00000001 00000010 00000110 24位 三个字节
 9 gbk       
10     A : 00000110  8位 一个字节
11     中  : 00000010 00000110 16位 两个字节
12 1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
13 2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,ascii等)
14 
15 py3:
16     str 在内存中是用unicode编码。
17         bytes类型 后面要加个b
18         对于英文:
19              str  :表现形式:s = 'alex'
20                     编码方式: 010101010  unicode
21             bytes :表现形式:s = b'alex'
22                     编码方式: 000101010  utf-8 gbk。。。。
23 
24         对于中文:
25              str  :表现形式:s = '中国'
26                     编码方式: 010101010  unicode
27             bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32'
28                     编码方式: 000101010  utf-8 gbk。。。。
29 '''
30 
31 s1 = 'alex'
32 # encode 编码,如何将str --> bytes
33 s11 = s1.encode('utf-8')
34 s11 = s1.encode('gbk')
35 print(s11)
36 s2 = '中国'
37 s22 = s2.encode('utf-8')
38 s22 = s2.encode('gbk')
39 print(s22)
将str转化为bytes
用encode编码将py3中的unicode形式转化为utf-8或gbk形式
ps: encode编码
decode解码

猜你喜欢

转载自www.cnblogs.com/chen43/p/12238642.html