1 # -*- coding: utf-8 -*- 2 # @Time : 2018/12/23 13:46 3 # @Author : Endless-cloud 4 # @Site : 5 # @File : 重写购物车项目.py 6 # @Software: PyCharm 7 ''' 8 0 首先声明在任何地方输入q 或者Q 退出系统 9 1 首先读取文件夹中的账号密码 Y 继续, N 继续输入账号密码 10 2 让用户判断查询消费记录 输入C 或者c , Y 2.1 ,N 3 11 2.1 打印消费,余额 12 3 打印余额,让用户判断是否输入 金额 ,Y 继续 , N 继续 13 3.1 余额充值 ,提示充值成功 ,继续4 14 4 打印系统商品列表 15 5 让用户输入 想要选择的商品编号 (扩展.商品名称) 16 6 打印用户购买的商品名字 ,以及账户余额 17 7 询问客户是否继续购买商品 Y , N 18 7.1 走流程4 ,5 , 6 19 7.2 走流程 0 20 8 如果推出系统打印出客户已经购买的所有物品 , 以及余下金额 21 # 所有余额,商品内容用特殊字标注 22 ''' 23 """ 24 准备 : 25 描述 函数名称 26 1 存储基础属性 __init__ 27 28 描述 名称 类型 29 1 已经购买的商品列表 shop_listshop list 30 2 存储用户的账号密码 popmsg dict 31 3 存储用户的余额 ymoney str->int 32 """ 33 34 35 class shop(object): 36 def __init__(self): 37 self.shop_listshop = [] 38 self.popmsg = { # 待升级用读取txt 39 'wzh': '123' 40 } 41 self.ymoney = '' 42 self.goodgifts = [ 43 {"name": "电脑", "price": 1999}, 44 {"name": "鼠标", "price": 10}, 45 {"name": "游艇", "price": 20}, 46 {"name": "美女", "price": 998}, 47 ] 48 self.msg ='' 49 50 # 如果用户输入q 那么 退出系统 51 def close(self, char): 52 if char.upper() == 'Q': 53 self.save() 54 quit() 55 56 # 登录, 有3次判断机会,如果用完了退出系统 57 def login(self): 58 count = 3 59 while 0 < count: 60 61 username = input('请输入username') 62 password = input('请输入password') 63 with open('login.txt', 'r', encoding='utf-8') as f: 64 l = f.readlines() # readlines返回list 65 neirong = eval(l[0]) 66 67 if neirong.get(username) == password: # 利用字典的get()获取password判断 68 print('欢迎进入购物系统') 69 break 70 71 elif neirong.get(username) != password: 72 count = count - 1 73 print('你还有%s次机会' % (count)) 74 else: 75 print('机会用完') 76 exit() 77 78 # 打开money.txt ,读取第一行 ,利用readline() 获取内容(str). 在str 类型转换int类型,然后返回salay 79 def money(self): 80 with open('money.txt', 'r', encoding='utf-8') as f: 81 salay = int(f.readline()) 82 return salay 83 84 # 根据用户的金额进行判断充值, 85 def money_chioce(self, salay): 86 print('你当前的余额为' + str(salay) + '元') 87 88 chongzhi = input('是否充值1键 ,或直接消费其他除q,c键 ,,输入q退出,c进入已经购买列表') 89 if chongzhi == '1': 90 jine = int(input('请输入充值金额')) 91 if jine <= 0: 92 endsalay = salay + int(jine) 93 salay = salay + int(jine) 94 print('最少充值1元') 95 96 97 elif jine > 0: 98 print('感谢你的充值') 99 endsalay = salay + int(jine) 100 with open('money.txt', 'w', encoding='utf-8') as f: 101 f.writelines(str(endsalay)) 102 print('你当前的余额为' + str(endsalay)) 103 self.close(chongzhi) 104 elif chongzhi=='c': 105 self.look_pay_list() 106 print('当前余额为%s'%(self.money())) 107 elif chongzhi=='q': 108 self.close(chongzhi) 109 110 # 让用户输入c ,打印出来列表中的商品 111 def look_pay_list(self): 112 with open('shaop.txt', 'r', encoding='utf-8') as f: 113 print('%s %s %s' % ('编号', '名字', '数量')) 114 ll = f.readlines() 115 if len(ll)==0: 116 print('当前没有任何内容') 117 else: 118 s = (eval([i for i in ll][0]) ) 119 # print(type(s)) 120 # print(type(eval([i for i in ll][0])[0])) 121 122 for i, j in enumerate(s): 123 print(str(i) + ' ' + j['name'] + ' ' + str(j['number'])) 124 # print(type(j)) 125 126 127 # 128 def goods(self): 129 goods = self.goodgifts 130 titie1 = '购物系统' 131 print(titie1.center(50, '*')) 132 print('%s %s %s' % ('编号', '名字', '金额')) 133 for i, j in enumerate(goods): 134 print('%s %s %s' % (i + 1, j['name'], j['price'])) 135 def txt_goods(self): 136 with open('shaop.txt', 'r', encoding='utf-8') as f: 137 self.msg=f.readlines() 138 l =eval(self.msg[0]) 139 self.shop_listshop =l 140 # print(type(self.shop_listshop[0])) 141 # print(self.msg) 142 # print(l) 143 # print(type(l[0])) 144 145 def chiose_goods(self): 146 147 while True: 148 chiose2 = input('请输入购买的商品编号') 149 if chiose2 == 'q': 150 self.close(chiose2) 151 elif chiose2=='c': 152 self.look_pay_list() 153 elif int(chiose2) in [i + 1 for i, j in enumerate(self.goodgifts)]: 154 print('你购买的物品是%s ,花了%s' % (self.goodgifts[int(chiose2) - 1]['name'], self.goodgifts[int(chiose2) - 1]['price'])) 155 goots_dic = [self.goodgifts[int(chiose2) - 1]][0] 156 if self.goodgifts[int(chiose2) - 1]['name'] in [j['name'] for i, j in enumerate(self.shop_listshop)]: 157 self.shop_listshop[int(chiose2) - 1]['number'] = self.shop_listshop[int(chiose2) - 1]['number'] + 1 158 print('yes') 159 else: 160 161 self.shop_listshop.append(goots_dic) 162 self.shop_listshop[int(chiose2) - 1]['number'] = 1 163 print('no') 164 elif chiose2 not in [i + 1 for i, j in enumerate(self.goodgifts)]: 165 print('没有这个商品编号') 166 print(self.shop_listshop) 167 168 def save(self): 169 with open('shaop.txt', 'w', encoding='utf-8') as f: 170 f.writelines(str(self.shop_listshop)) 171 self.look_pay_list() 172 173 174 shop = shop() 175 176 shop.login() 177 178 l = shop.money() 179 shop.money_chioce(l) 180 shop.goods() 181 shop.chiose_goods()
With great power comes great responsibility
年与时驰,意与日去,遂成枯落,
多不接世,悲守穷庐,将复何及。