要求:
1、需要可以動態獲取所有商品
2、購買的時候需要打印可用的餘額
3、購買結束之後需要打印購物清單及餘額
一、代碼部分
product_list = [('Iphone',5800),('Ipad',5800),('Mac Pro',12800),('Bike',800),('Book',80)] #定義商品列表 shooping_list = [] #定義購物車 salary = input("請輸入你的工資:") if salary.isdigit(): #判斷用戶輸入是否爲整數類型 salary = int(salary) #強制將結果轉換爲整數類型 while True: #當結果爲真的話 for product_num in product_list: #開始獲取商品數組對應的序列數值 print(product_list.index(product_num),product_num) user_chose = input("請輸入您想要購買的商品序號:") if user_chose.isdigit(): #判斷用戶輸入.需要分析一下用戶輸入的可能性:①輸入正確的商品序號進行購買商品②用戶輸入“q”來進行退出購買③用戶輸入的是除了商品序號以外的其他字符 user_chose = int(user_chose) #將用戶輸入強制轉換爲整數類型 if user_chose < len(product_list) and user_chose > -1: #判斷一下用戶輸入的數值範圍。len(product_list)意思爲數組的序號數值,否則打印商品不存在 pop_num = product_list[user_chose] #獲取用戶輸入對應的商品數組 if pop_num[1] <= salary: #將工資與商品價格進行對比,買的起將會把商品加入至購物車,否則將打印餘額不足。 shooping_list.append(pop_num) #將購買的商品加入至購物車 salary -= pop_num[1] #進行扣除購買商品所需的款項,等同於salary =salary - pop_num[1] print("你已經購買了 %s , 你的工資還剩餘\033[31;1m%s\033[0m"%(pop_num,salary)) #進行格式化輸出,%s分別表示獲取輸出的對象pop_num和salary else: print("\033[33;1m您的餘額還剩 %s,還買個毛線。\033[0m"%salary) else: print("您輸入的商品%s不存在。") elif user_chose == 'q': print("----------Shooping Info------------") for pop_list in shooping_list: print (pop_list) print("\033[31;1m您現在還剩餘:%s\033[0m"%salary) exit() else: print("\033[31;1m您輸入錯了,請重新輸入。\033[0m")
二、程序運行如下: