購物車小程序:git
1 # __author:"Cheng" 2 # date:2018/2/14 3 4 product_list = [ # 由於商品和價格這裏不許備改,因此用元組 。 5 6 ('巧克力', 128), 7 ('吹風機', 218), 8 ('自行車', 688), 9 ('掃地機器人', 1280), 10 ('筆記本電腦', 3888), # 元組最後面都要加逗號。 11 12 ] 13 # 能夠給兩個變量一塊兒賦值,例如a,b = [2,3]。分析:a和b變量分別賦值2和3 14 saving = input('存多少錢到購物卡:') # saving就是你剛剛輸入的錢,存了多少錢在你的帳戶 15 shop_car = [] # 定義一個空列表,爲下面加入該購物車做準備。 16 if saving.isdigit(): # 判斷saving是不是數字。 17 saving = int(saving) # 是的話把saving轉化爲整型。 18 while True: # 死循環,不斷打印商品列表讓用戶選擇。 19 20 for goods_num, goods in enumerate(product_list, 1): # for後面跟的goods_num和goods 能夠分別把列表中的兩個元素分別賦值 。 21 print(goods_num, '--------', goods) # enumerate的做用只有一個,那就是加序號。編號並不等於索引,二者沒關聯。 22 usr_choice = input('請選擇您要購買的商品序號【Q退出】:') # 將用戶選擇的序號賦值給usr_choice變量。 23 if usr_choice.isdigit(): # 判斷用戶是否輸入數字 24 usr_choice = int(usr_choice) # 把字符串改爲數字 25 if usr_choice > 0 and usr_choice <= len(product_list): # 判斷用戶選擇的序號是否超過商品序號或者是負數。 26 c_item = product_list[usr_choice - 1] # 這裏c_item表示用戶選擇的商品,含品名與價格。那麼爲何後面的列表索引減1,由於程序是從0開始,用戶看到的是從1開始的編號,所以要減1才符合程序所識別的正確位置(索引) 27 if c_item[1] < saving: # c_item[1]表明該商品價格,1表明所在列表的第2個元素,而此處第2個元素爲該商品價格。 28 saving -= c_item[1] # 若是商品價格不超過saving(購物卡),那麼就用購物卡金額減去商品價格。 29 shop_car.append(c_item) # 將c_item 追加至購物車。這裏c_item表示用戶選擇的商品,含品名與價格。 30 print('---------當前購物車---------') 31 for i in shop_car: 32 print(i) 33 print('餘額:%s元'%saving) 34 else: 35 print('餘額不足!當前餘額:%s元'%saving) 36 print('---------您已購買以下商品---------') 37 for i in shop_car: 38 print(i) 39 print('您還剩%s元!' % saving) 40 while True: 41 add_money = input('是否充值,「是」 請輸入充值金額,「否」 請按Q退出(回車確認):') 42 if add_money.isdigit(): 43 add_money = int(add_money) 44 new_saving = 0 45 new_saving = saving + add_money 46 saving = new_saving 47 print('充值成功,當前餘額%s元!'%saving) 48 break 49 else: 50 print('請按要求輸入!') 51 52 else: 53 print('請輸入商品範圍的序號!') # 若是選擇的序號不在所提供範圍,彈出提示。 54 55 elif usr_choice == 'q': # 若是用戶輸入q,那麼程序結束運行,打出歡迎下次光臨。 56 print('---------您已購買以下商品---------') 57 for i in shop_car: 58 print(i) 59 print('您還剩%s元!'%saving) 60 print('---------歡迎下次光臨---------') 61 break 62 else: 63 print('序號請輸入數字!') 64 65 else: 66 input('錢請輸入數字,OK?')