python 用字典寫手機銷售系統
阿新 • • 發佈:2019-02-12
# 用字典寫手機銷售系統 ''' 手機銷售系統 手機品牌 手機價格 庫存數量 vivoX9 2798 25 iphone7(32G) 4888 31 iphone7(128G) 5668 22 iphone7P(128G) 6616 29 iphone6(16G) 3858 14 .... 功能要求: 四個選項: 1.檢視所有手機品牌 1.vivoX9 2.iphone7(32G) ...... 分支選項: 1.選擇產品序號檢視詳情(根據序號輸出產品名稱,價格,庫存) 1.購買(庫存數量-1,庫存為0時,刪除該產品) 2.返回 2.返回 2.更改產品庫存資訊 1.新增新產品(新增新產品,包括產品名稱、價格、庫存) 2.修改原有產品 輸出所有產品資訊(將產品的名稱 價格 庫存) 1.根據選擇序號進行修改 2.返回 3.移除產品庫存資訊 1.檢視所有產品,根據序號移除 2.移除所有產品 3.返回 4.退出程式 ''' # 檢視手機資訊的函式 def query_phone(type): ''' :param type: 查詢時,輸出的型別 1.輸出詳細資訊(名稱,價格,庫存) 2.輸出產品名稱 ''' for x in range(0, len(phone_list)): # 根據索引取出手機資訊字典 phone = phone_list[x] name = phone['name'] # 判斷輸出的型別 if type == 1: price = phone['price'] count = phone['count'] # 輸出詳細資訊 print('序號:%s 產品名稱:%s 產品價格:%s 產品庫存:%s'%(x, name, price, count)) else: print('序號:%s 產品名稱:%s'%(x, name)) # 購買手機的函式 def buy_phone(): if len(phone_list) <= 0: print('當前無商品資訊!') return print('1.選擇序號檢視手機詳情:') print('2.返回') num = int(input('請選擇您的操作:')) while num not in range(1, 3): num = int(input('選項有誤,請重選:')) if num == 1: # 輸入選擇產品序號 index = int(input('請輸入檢視的產品序號:')) while index not in range(0, len(phone_list)): index = int(input('序號有誤,請重選:')) # 根據index的值,取出小字典 phone = phone_list[index] # 輸出產品序號、名稱、價格、庫存 print('序號:%s 產品名稱:%s 產品價格:%s 產品庫存:%s'%(index,phone['name'],phone['price'],phone['count'])) # 是否購買 print('1.購買') print('2.返回') num = int(input('請選擇:')) while num not in range(1, 3): num = int(input('選擇錯誤,請重選:')) if num == 1: count = phone['count'] count = count - 1 if count == 0: # 手機賣完了 print('%s 已售罄,請及時補貨!'%phone['name']) phone_list.remove(phone) else: # 更改庫存量 phone['count'] = count return else: return # 更改產品資訊 def update_phone(): print('1.新增新產品') print('2.修改原有產品') print('3.返回') num = int(input('請選擇您的操作:')) while num not in range(1, 4): num = int(input('選項錯誤,請重選')) if num == 1: # 包括產品名稱、價格、庫存 name = input('請輸入新增的產品名稱:') price = input('請輸入新增的產品價格:') # 轉換為數字 count = int(input('請輸入新增的產品庫存量:')) while count <= 0: count = int(input('庫存量不能小於1,請重新輸入:')) # 將產品資訊組裝為一個小字典 phone = {'name':name, 'price':price, 'count':count} # 將小字典新增到大列表中 phone_list.append(phone) elif num == 2: if len(phone_list) <= 0: print('當前無商品資訊!') return # 查詢手機詳細資訊 query_phone(1) index = int(input('請輸入要修改的產品序號:')) while index not in range(0, len(phone_list)): index = int(input('序號有誤,請重選:')) # 根據index取出手機資訊字典 phone = phone_list[index] # 取出原來的名稱 old_name = phone['name'] phone['name'] = input('請輸入修改後的名稱(%s):'%old_name) phone['price'] = input('請輸入修改後的價格(%s):'%phone['price']) count = int(input('請輸入修改後的庫存量(%s):'%phone['count'])) # 庫存量不能為0 while count <= 0: count = int(input('庫存不能小於1,請重新輸入:')) phone['count'] = count print('修改成功!') else: # 結束函式執行 return # 宣告大列表,儲存所有手機資訊 # [{'name':'iPhone8','price':'1999','count':'1'},{'name':'iPhone8','price':'1999','count':'1'}] phone_list = [] while True: # Ctrl+d 可以快速複製貼上一行 print('1.檢視所有手機品牌') print('2.更改產品資訊') print('3.移除產品資訊') print('4.退出程式') # 選擇操作: num = int(input('選擇您的操作:')) while num not in range(1, 5): num = int(input('選項錯誤,請重選:')) if num == 1: query_phone(2) buy_phone() elif num == 2: update_phone() elif num == 3: print('移除產品資訊') else: # 結束迴圈 break