1. 程式人生 > >python 用字典寫手機銷售系統

python 用字典寫手機銷售系統

# 用字典寫手機銷售系統
'''
手機銷售系統
   手機品牌   手機價格   庫存數量
    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