day6 python全棧學習筆記
阿新 • • 發佈:2018-12-02
1、編碼
ascii
A :00000010 8位 一個位元組
unicode
A : 00000000 00000000 00000000 00000010 32位 4個位元組
utf-8
A : 0010 0000 8位 一個位元組
中 :00000010 00000010 00000110 24位 3個位元組
gbk
A : 00000010 8位 一個位元組
中:00000010 00000010 16位 2個位元組
1、各個編碼之間的二進位制,是不能互相識別的,會產生亂碼
2、檔案的儲存,傳輸,不能是unicode,(只能是utf-8,gbk,gb2312,acsii碼)
py3: str 在記憶體中是用unicode編碼
bytes型別
在記憶體中編碼格式為unicode,但是儲存在硬碟,和傳送檔案時的編碼格式,都是’utf-8‘,’gbk‘
因為unicode 太站流量
2、小知識點整合
#數字,字串,小資料池
# -5 ---256 用的同一個地址
#字串也有一些是在同一個資料池
li = [1,2,3]
li2 = li
print(id(li),id(li2))
i1 = 8
i2 = 8
print(i1 is i2)
s = 'alex'
s1 = s.encode('utf-8')
s2 = s.encode('gbk')
print(s1)
print(s2)
2、購物車
#商品放在貨架上 li = [ {'name':'蘋果','price':10}, {'name':'香蕉','price':20}, {'name':'橘子','price':30}, ] #看看錢多少 shopping_car = {} print('歡迎光臨老毛孩旗艦店') money = int(input('您有多少錢')) while 1: if int(money) > 0: for i,k in enumerate(li): print('序號{},商品{},價格{}'.format(i,k['name'],k['price'])) choose = input('請輸入您要購買的商品序號') if choose.isdigit() and int(choose) < len(li): num= input('請輸入購買的數量') if num.isdigit(): if int(money) > li[int(choose)]['price']*int(num): money = int(money) - li[int(choose)]['price'] * int(num) if li[int(choose)]['name'] is shopping_car: shopping_car[li[int(choose)]['name']] = shopping_car[li[int(choose)]['name']] + int(num) else: shopping_car[li[int(choose)]['name']] = int(num) print('購物車中的商品有{},您的餘額為{}'.format(shopping_car, money)) else: print('您的餘額不夠') break else: print('輸入序號!')