################################## 類比購物車 ##################################salare = 0 #餘額goods_list = [] #商品列表signal_goods_list = [] #單個商品listgoods_cart = [] #購物車列表username = "admin"password = "admin"while True: _username = input("使用者名稱:") _password = input("密 碼:") if username != _username or password != _password: print("\033[31m 使用者名稱或密碼錯誤,請重新輸入。。。\033[0m") continue elif username == _username and password == _password: while True: print("操作說明:\n" "a 查看商品列表\n" "b 查看已購商品\n" "c 進行儲值\n" "d 結束購物\n") operator_type = input("\033[31m 請選擇操作類型:\033[0m") if operator_type == 'a': while True: with open("goods_list.txt", "r") as f: # 擷取商品列表 signal_goods = f.readline().strip() # 讀取字串去掉空格 print("商品列表".center(50, '*')) index = 0 goods_list = [] while signal_goods: index += 1 nPos = signal_goods.index(':') # 擷取標識位 signal_goods_list.append(signal_goods[:nPos]) signal_goods_list.append(signal_goods[nPos + 1:]) print(index, signal_goods[:nPos], signal_goods[nPos + 1:]) goods_list.append(signal_goods_list) signal_goods = f.readline().strip() signal_goods_list = [] # 清空列表 with open("balance.txt", "r") as f: salare = f.readline() if salare == '' or salare == '0': print("\033[31m 您當前餘額為0 如需購物,請到儲值中心進行儲值。。。\033[0m") break else: print("您當前餘額為 \033[31m %s \033[0m,請開始購物。。。" %salare) shopindex = input("請輸入所購商品編號(返回上級菜單請輸入‘b’):") if shopindex.isdigit(): shopindex = int(shopindex) print(shopindex) print(len(goods_list)) if shopindex > len(goods_list): print("\033[31m 您選購的商品不存在,請重新選擇。。。\033[0m") continue if int(salare) < int(goods_list[shopindex-1][1]): print("\033[31m 您當前餘額為不足,請到儲值中心進行儲值。。。\033[0m") break; else: salare = int(salare) - int(goods_list[shopindex-1][1]) print("當前餘額為:\033[31m %s \033[0m" %salare) with open("balance.txt","w") as f: f.write(str(salare)) #goods_cart.append(goods_list[shopindex-1][0]) with open("goods_cart.txt", "a") as f: f.write(goods_list[shopindex-1][0]) f.write("\n") else: break; elif operator_type == 'b': while True: with open("goods_cart.txt","r") as f: #先讀取看看購物車有沒有資料 signal_goods = [] signal_goods = f.readline().strip() if signal_goods == '': print("\033[31m 購物車中還沒有商品。。。\033[0m") shopindex = input("\033[31m返回上級菜單請輸入‘b’: \033[0m") if shopindex == 'b': break; else: print("已購商品列表".center(50, '*')) while signal_goods: print(signal_goods) signal_goods = f.readline().strip() shopindex = input("返回上級菜單請輸入‘b’:") if shopindex == 'b': break; elif operator_type == 'c': print("歡迎來到儲值中心".center(50,'*')) salare = input("請輸入儲值金額:") print("您已經儲值成功,請繼續購物。。。") f = open("balance.txt", "r") balance = f.readline().strip() if balance == '' or f.readline() == '0': f.close() f = open("balance.txt", "w") f.write(salare) f.close() else: balance = int(balance) + int(salare) with open("balance.txt", "w") as f: f.write(str(balance)) elif operator_type == 'd': with open("goods_cart.txt","r") as f: print("已購商品列表".center(50, '*')) shopped = f.readline().strip() while shopped: print(shopped) shopped = f.readline().strip() with open("balance.txt", "r") as f: print("當前餘額 \033[31m %s \033[0m" %f.readline()) exit()