• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
百里丶落云
Gee,gee,baby,baby
            管理     
购物车项目 复杂版本.待简化
  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
年与时驰,意与日去,遂成枯落, 多不接世,悲守穷庐,将复何及。
posted on 2018-12-24 08:45  百里丶落云  阅读(280)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3