1. 程式人生 > >python全棧筆記-day03-chapter2 homework2_shoppingCart

python全棧筆記-day03-chapter2 homework2_shoppingCart

#購物車程式
# 功能要求:
# 基礎要求:
# 1、啟動程式後,輸入使用者名稱密碼後,讓使用者輸入工資,然後列印商品列表
# 2、允許使用者根據商品編號購買商品
# 3、使用者選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒
# 4、可隨時退出,退出時,列印已購買商品和餘額
# 5、在使用者使用過程中,
# 關鍵輸出,如餘額,商品已加入購物車等訊息,需高亮顯示
# 擴充套件需求:
# 1、使用者下一次登入後,輸入使用者名稱密碼,直接回到上次的狀態,即上次消費的餘額什麼的還是那些,再次登入可繼續購買
# 2、允許查詢之前的消費記錄

username = 'abc'
password = '123456'

cart_all =[]
goods = [
{"name":
"電腦", "price": 1999},
{"name":
"滑鼠", "price": 10},
{"name":
"遊艇", "price": 20},
{"name":
"美女", "price": 998}
]

count = 0#記錄login次數

while True:
    cart = []
    count_goods = 0  # 記錄該次購物商品次數
    input_un = input('Username:')
    input_pw = input('Password:')

    if input_un == username and input_pw == password:
        count +=1
        if count == 1:
            salary = int (input('請輸入您的工資:'))
        else:
            print("\033[1;0m您的餘額為\033[0m", "\033[1;0m%s\033[0m" % (salary))
        print('-------------商品列表--------------')
        for index,i in enumerate(goods):
            print('%s.  %s              %s' % (index+1,i['name'],i['price']))
        exit_flag = False #標誌位
        while not exit_flag:
            purchase = input('請輸入您要購買商品的編號(q(Q):退出,c(C):查詢消費記錄):')
            if purchase.isdigit():#判斷輸入是否數字
                num = int(purchase)
                if num > 0 and num <= len(goods):#判斷輸入的數字在商品編號的範圍內
                    if salary >= goods[num - 1]['price']:#判斷工資是否足夠支付該商品
                        if count_goods == 0:
                            cart_all.append(cart)
                        cart.append(goods[num - 1])
                        count_goods += 1
                        salary -= goods[num - 1]['price']
                        print("\033[1;0m購買成功!您的餘額為\033[0m","\033[1;0m%s\033[0m"%(salary))#高亮顯示
                    else:
                        print("\033[1;0m購買失敗!您的餘額不足!\033[0m")
                else:
                    print("\033[1;0m該編號沒有對應商品\033[0m")
            elif purchase == "c" or purchase == "C":#查詢消費記錄
                if len(cart_all) == 0:
                    print("\033[1;0m消費記錄為空\033[0m")
                else:
                    num_cart_all = 0#用於規範編號
                    num_cart = 0#用於規範編號
                    print('\033[1;0m-------------消費記錄--------------\033[0m')
                    for i in cart_all:
                        num_cart_all = num_cart
                        for index, k in enumerate(i):
                            print('%s.  %s              %s' % (index+1+num_cart_all, k['name'], k['price']))
                            num_cart = index+1+num_cart_all
                    print('\033[1;0m-------------end--------------\033[0m')
            elif purchase == "q" or purchase == 'Q':
                if len(cart) != 0:
                    print('\033[1;0m-------------您已購買以下商品--------------\033[0m')
                    for index,i in enumerate(cart_all[-1]):
                        print('%s.  %s              %s' % (index+1,i['name'],i['price']))
                        exit_flag = True
                    print('\033[1;0m-------------end--------------\033[0m')
                else:
                    exit_flag = True
            else:
                print("\033[1;0m輸入錯誤\033[0m")
        print("\033[1;0m您的餘額為\033[0m","\033[1;0m%s\033[0m"%(salary))
        print("謝謝惠顧,歡迎下次光臨!")
    else:
        print('使用者名稱或密碼錯誤')