1. 程式人生 > >Python全棧學習Day6

Python全棧學習Day6

昨日內容複習

1

  dic['age'] = 21

2

dic.setdefault()

pop() 有返回值,按key刪除,預設返回none
clear()清空字典
del()按key刪除無返回值
popitem()隨機刪除,有返回值,返回元祖

update()把一個字典覆蓋到另一個字典

dic.keys()迴圈列印
dic.values()列印索引值
dic.items()列印鍵值對
dic.get(key,none)

練習題


將1-5放到一個key,6-10放到另一個key

li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
dic = {'small':[], 'big':[]}
for i in li:
    if i < 6:
        dic['small'].append(i)
    else:
        dic['big'].append(i)
print(dic)

在這裡插入圖片描述
二 購物車
輸入商品列表,使用者輸入序號,顯示使用者選中的商品
商品 li = [“手機”, “電腦”, “滑鼠墊”, “遊艇”]
要求:1,頁面顯示 序號+商品名稱,如
1 手機
2 電腦
……
2,使用者輸入選擇的商品序號,然後列印商品名稱
3,如果使用者輸入的商品序號有錯,則提示輸入有誤,並重新輸入
4,使用者輸入Q或q退出程式

while 1:
    li = ["手機",  "電腦", "滑鼠墊", "遊艇"]
    for i in li:
        print('{}\t{}'.format(li.index(i)+1, i))
    num_of_choice = input('請輸入選擇的商品序號:輸入Q或q則退出')
    if num_of_choice.isdigit():
        num_of_choice = int(num_of_choice)
        if 0 < num_of_choice <= len(li):
            print(li[num_of_choice-1])
        else:
            print('請輸入正確的商品編號!')
    elif num_of_choice.upper() == 'Q':
        break
    else:
        print('請輸入正確的商品編號!')

購物車第二版

 # 把貨物放在貨架上
li = [
    {'name': '蘋果', 'price': 10},
    {'name': '西瓜', 'price': 50},
    {'name': '香蕉', 'price': 15},
]
shopping_car = {}
print('歡迎光臨')
money = input('你有多少錢?')
if money.isdigit() and int(money) > 0:
    while 1:
        for i, k in enumerate(li):
            print('序號{}, 商品{}, 價格{}'.format(i, k['name'], k['price']))
        choose = input('請輸入您要購買的商品序號:')
        if choose.isdigit() and 0 <= 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'] in 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('請輸入正確商品序號')

今日:小知識點總結

一 python2與python3的區別

print方法
python 2 不用加()也可以加()
python 3 必須加()
range
python2中有xrange()插入器
python3中只有range
input
python2 raw_input()
python3 input()

二 = == 與 is

=
賦值
==
比較值是否相等
is
比較記憶體地址即ID

數字 字串 小資料池

數字
在-5~256中建立數字至開闢一個空間
字串
1 含有特殊字元不會公用一個記憶體
2 str20公用一個地址,str21以後開闢兩個地址,str只能一個字元

編碼

ASCII
一個字元佔八位,一個位元組
UNICODE
32位,四個位元組
字母: 八位 A:
中文: 24位,三個位元組
GBK
字母: 一個位元組,八位
中文: 兩個位元組,十六位
關係
1 各個編碼之間的二進位制,不能互相識別
2 檔案的儲存和傳輸不能是unicode 只能是(utf-8或utf-16或gbk,gb2312,ASCII等)

Python 3

str在記憶體中使用UNICODE儲存的
問題:UNICODE空間大,需轉化

bytes型別與str型別

類似字串,但不是以UNICODE編碼(與str區別)
str:
表現形式 s = ‘mashengde’
編碼形式;UNICODE
bytes:
表現形式:s = b’mashengde’
編碼形式;utf-8或GBK
對於中文
str:
表現形式 s = ‘中國’
編碼形式;UNICODE
bytes:
表現形式:s = b’x\e91\e91\e01\e21\31\e32’
編碼形式:utf-8
如何將STR轉換成Bytes

s1 = 'mashengde'
s2 = s1.encode()
print(type(s2))

中文

s1 = '馬聖德'
s2 = s1.encode()
print(s2)

在這裡插入圖片描述