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. 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)
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解码