購物車程序新版
阿新 • • 發佈:2017-09-19
ber odin utf-8 lar 再次 inf 顯示 python swd
需求如下:
1、啟動程序後,輸入用戶名密碼後,如果是第一次登錄,讓用戶輸入工資
,然後打印商品列表
2、允許用戶根據商品編號購買商品
3、用戶選擇商品後,檢測余額是否夠,夠就直接扣款,不夠就提醒
4、可隨時退出,退出時,打印已購買商品和余額
5、在用戶使用過程中, 關鍵輸出,如余額,商品已加入購物車等消息,
需高亮顯示
6、用戶下一次登錄後,輸入用戶名密碼,直接回到上次的狀態,即上次消
費的余額什麽的還是那些,再次登錄可繼續購買
7、允許查詢之前的消費記錄
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time : 2017/9/17 13:024 # @Author : lichuan 5 # @File : file_test.py 6 7 8 9 ‘‘‘ 10 1、啟動程序後,輸入用戶名密碼後,如果是第一次登錄,讓用戶輸入工資 11 ,然後打印商品列表 12 2、允許用戶根據商品編號購買商品 13 3、用戶選擇商品後,檢測余額是否夠,夠就直接扣款,不夠就提醒 14 4、可隨時退出,退出時,打印已購買商品和余額 15 5、在用戶使用過程中, 關鍵輸出,如余額,商品已加入購物車等消息, 16 需高亮顯示 17 6、用戶下一次登錄後,輸入用戶名密碼,直接回到上次的狀態,即上次消 18費的余額什麽的還是那些,再次登錄可繼續購買 19 7、允許查詢之前的消費記錄 20 ‘‘‘ 21 shop_list={ 22 ‘apple‘ : 7888, 23 ‘xiaomi‘ : 2000, 24 ‘huawei‘ : 2500, 25 ‘meizu‘ : 1800 26 } 27 28 FLAG_TAG=True 29 30 31 while FLAG_TAG: 32 user_name=input("please input your username:").strip() 33 passwd=input("please input your passwd:").strip() 34 35 with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as a_read,open(‘a.txt‘,‘r+‘,encoding=‘utf-8‘) as a_write: 36 for i in a_read: 37 #print(i) 38 # userinfo = {} 39 i=eval(i) 40 buy_list = {} 41 ago_buy_list=i["buy_list"] 42 43 if i["username"] == user_name and i[‘passwd‘] == passwd: 44 if len(i[‘buy_list‘]) != 0: 45 print("\033[1m 上次消費記錄: %s " % str(i["buy_list"]) +‘\033[0m‘ ) 46 print("\033[1m salary: %d" % i[‘salary‘] + ‘\033[0m‘) 47 while True: 48 if i[‘salary‘] == 0 : 49 s=input("please input your salary:").strip() 50 #如果不為數字或者數字為0,則重新輸入 51 if (not s.isdigit()) or int(s) == 0: 52 print("wrong input,try again!") 53 continue 54 55 i[‘salary‘]=int(s) 56 FLAG_TAG=False 57 58 #da==打印商品列表 59 count=0 60 buy=[] 61 for s in shop_list: 62 print("%d,%s %d" %(count,s,shop_list[s])) 63 buy.append(s) 64 count+=1 65 p=input("q==exit,please input your number:").strip() 66 67 if p == ‘q‘: 68 FLAG_TAG=False 69 print("\033[1m salary: %d" % i[‘salary‘] + ‘\033[0m‘) 70 print("\033[1m 已購買商品: %s " % str(buy_list) + ‘\033[0m‘) 71 break 72 elif p.isdigit() and int(p) < count: 73 p=int(p) 74 if buy[p] in buy_list and i[‘salary‘] >= shop_list[buy[p]]: 75 buy_list[buy[p]]+=1 76 i[‘salary‘] = i[‘salary‘] - shop_list[buy[p]] 77 print("\033[1m salary: %d" % i[‘salary‘]+‘\033[0m‘) 78 print("\033[1m %s 已加入購物車" % buy[p]+‘\033[0m‘) 79 continue 80 elif i[‘salary‘] >= shop_list[buy[p]] : 81 buy_list[buy[p]]=1 82 i[‘salary‘]=i[‘salary‘]-shop_list[buy[p]] 83 print("\033[1m salary: %d" % i[‘salary‘]+‘\033[0m‘) 84 print("\033[1m %s 已加入購物車" % buy[p] + ‘\033[0m‘) 85 else: 86 print("余額不足,請選擇別的商品!") 87 print("\033[1m salary: %d" % i[‘salary‘] +‘\033[0m‘) 88 continue 89 else: 90 print("wrong input , try again!") 91 continue 92 93 if len(buy_list) != 0: 94 ago_buy_list=buy_list 95 i[‘buy_list‘] = ago_buy_list 96 a_write.write(str(i)+‘\n‘) 97 98 #根據輸入判斷,用戶密碼錯誤且輸入不是‘q‘或者’g‘的,重新循環,輸入用戶名密碼 99 if FLAG_TAG: 100 print("username or passwd is wrong,try again please!") 101 c=input("q==exit,g=continue:").strip() 102 if c == ‘q‘: 103 FLAG_TAG=False 104 break 105 elif c == ‘g‘: 106 continue 107 108 109 # a_write.write(str(i)+‘\n‘) 110 111 # for wares in shop_list: 112 # print(wares) 113 FLAG_TAG=False
購物車程序新版