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解碼