作業-購物車程序
阿新 • • 發佈:2017-05-21
購物 範圍 pen enum product gbk false 數據 sum
# 購物車程序:
# 1、啟動程序後,輸入用戶名密碼後,如果是第一次登錄,讓用戶輸入工資,然後打印商品列表
# 2、允許用戶根據商品編號購買商品
# 3、用戶選擇商品後,檢測余額是否夠,夠就直接扣款,不夠就提醒
# 4、可隨時退出,退出時,打印已購買商品和余額
# 5、在用戶使用過程中, 關鍵輸出,如余額,商品已加入購物車等消息,需高亮顯示
# 6、用戶下一次登錄後,輸入用戶名密碼,直接回到上次的狀態,即上次消費的余額什麽的還是那些,再次登錄可繼續購買
# 7、允許查詢之前的消費記錄
保存用戶、密碼、余額的文件(user1.txt)
{‘alex‘: [‘zs123‘, 0], ‘zs‘: [‘zs123‘, 0], ‘ls‘: [‘zs123‘, 0]}
保存已購商品信息的文件(shopping_car.txt)
{‘alex‘: [], ‘zs‘: [], ‘ls‘: []}
代碼如下:
#定義商品列表 product=[ ("Iphone 7 Plus","6500"), ("MacBook ","9900"), ("Apple Watch","3500"), ("BOOK","110"), ("1T hard disk","360"), ] #打開兩個文件1、存放用戶名、密碼、余額的文件,2、存放已購商品列表文件 with open("user1.txt","r+",encoding="gbk") as user1, open("shopping_car.txt","r+",encoding="gbk") as shopping_car: user1_str = user1.readline() #將用戶密碼文件轉換為字符串 user1_dic = eval(user1_str) #將用戶密碼的字符串轉換為字典 shopping_car_str = shopping_car.readline() #將購物車文件轉換為字符串 shopping_car_dic = eval(shopping_car_str) #將購物車的字符串轉換為字典 #定義一個空的購物車 shopping_new = []#輸入用戶名: user = input("請輸入用戶名:>") #如果用戶名在保存用戶的字典中,則執行下面代碼: if user in user1_dic: passwd = input("請輸入密碼:>>") #如果密碼輸入正確則執行下列代碼: if passwd == user1_dic[user][0]: if shopping_car_dic[user]: #列表有數據就是True,然後執行下面內容: salary = user1_dic[user][1] shopping_list = shopping_car_dic[user] print("您的余額為:\033[31;1m%s\033[0m"%salary) #查詢之前的消費記錄 print_list = input("選擇是否查詢消費記錄y/n") if print_list == "y": print("----上次消費記錄----") print(shopping_list) user_list = shopping_car_dic[user] sum = 0 for i in user_list: num = i[1] sum += int(num) print("上次總計消費金額:\033[31;1m%s\033[0m"%sum) else: pass wages = int(input("請輸入工資:>>>")) else: #列表無數據就是False, wages = int(input("請輸入工資:>>>")) while True: for index,product_list in enumerate(product): print(index,product_list) choice = input("請選擇購買商品編號>>>") if choice.isdigit(): choice = int(choice) if choice <=4 and choice >=0: shopping_new.append(product[choice]) if wages >= int(product[choice][1]): wages -= int(product[choice][1]) print("您的余額為:>>>\033[31;1m%s\033[0m"%wages) elif wages < int(product[choice][1]): print("您的余額不足,余額為:>>>\033[31;1m%s\033[0m"%wages) else: print("您輸入的編號超出範圍") elif choice == "q": print("----購買商品列表----") print(shopping_new) print("您的余額為:>>>\033[31;1m%s\033[0m"%wages) #將購物列表寫入文件中。 shopping_car_dic[user].extend(shopping_new) shopping_car.seek(0) shopping_car.write(str(shopping_car_dic)) #將余額寫入文件中。 user1.seek(0) user1_dic[user][1]=wages user1.write(str(user1_dic)) print("\033[31;1m商品已經放入購物車\033[0m") exit() #如果密碼輸入不正確則顯示密碼錯誤: else: #密碼不匹配 print("輸入密碼錯誤") #如果用戶名不在用戶的字典中,則執行下面代碼: elif user not in user1_dic: print("輸入用戶名不存在")
作業-購物車程序