实现:
判断用户身份
(1)商家
商品信息存在文件“商品列表”里,可以增删改
(2)顾客
1.启动程序后,让用户输入工资,然后打印商品列表(与商家所用列表同步)
2.允许用户根据商品名称购买商品
3.用户选择商品后,监测余额是否够,够就直接扣款,不够就提醒
4.已购商品与余额保存至“购物清单”文件
文件存储格式(.txt):
苹** 62**
果* 1*
正文:
1 # Author:David Liu
2 # Be Happy!
3 import time
4 info={'1':'顾客','2':'商家'}
5 for i in info:
6 print(i,info[i])
7 choice=input("请选择您的身份>>")
8 if choice=='1':
9 salary = int(input("请输入您的工资:"))
10 dict = {}
11 file = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'r').readlines()
12 for i in file:
13 (key, value) = i.strip().split(' ') # 切片,再存入字典
14 dict.setdefault(key, value)
15 for i in file:
16 print(file.index(i) + 1, i.strip()) # 自动显示序号
17 buy = []
18 money = []
19 while True:
20 file2 = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/购物清单.txt', 'a+')
21 goods = (input("请输入您想购买的商品名称:"))
22 if goods in dict:
23 if salary >= int(dict[goods]):
24 print(goods, "购买成功!")
25
26 salary = salary - int(dict[goods])
27 buy.append(goods)
28 money.append(salary)
29
30 question = input("是否继续购买?y/n")
31 if question == 'y':
32 continue
33 else:
34 file2.write('\n')
35 file2.write((time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))).center(50,'-')) # 格式化输出当前日期和时间
36 file2.write('\n')
37 file2.write('已购商品:\n')
38 for i in buy:
39 file2.write('\t')
40 file2.write(i)
41 file2.write('\n')
42 file2.write('当前余额:\n')
43 file2.write('\t')
44 file2.write(str(salary) + '¥')
45 break
46 else:
47 print("您的余额不足,无法购买!")
48 question2 = input("是否继续购买其他商品?y/n")
49 if question2 == 'y':
50 continue
51 else:
52 break
53 else:
54 print("不存在该商品!")
55 print('\n', "已退出!".center(50, '-'))
56 elif choice=='2':
57 dict = {}
58 file = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt').readlines()
59 for i in file:
60 print(i.strip())
61 res = True
62 while res:
63 que = input("是否作出修改>>(y/n)")
64 if que == 'y':
65 que2 = input("添加商品>>a,修改价格>>p,删除商品>>d")
66 if que2 == 'a':
67 while True:
68 name = input("输入商品名称>>")
69 price = input("输入商品价格>>")
70 f = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'a')
71 f.write('\n')
72 f.write(name)
73 f.write(' ')
74 f.write(price)
75 print("添加成功!")
76 f.close()
77 f = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt','r')
78 for j in f.readlines():
79 print(j.strip())
80 a = input("是否继续添加>>(y/n)")
81 if a == 'y':
82 f.close()
83 continue
84 else:
85 f.close()
86 break
87 elif que2 == 'p':
88 f = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'r')
89 for i in f.readlines():
90 (key, value) = i.strip().split(' ') # 切片,再存入字典
91 dict.setdefault(key, value)
92 print(dict.keys()) # 打印key
93 while True:
94 f = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'w')
95 goods = input("请输入商品名>>")
96 if goods in dict:
97 print("原价为:", dict.get(goods))
98 price_new = input("输入更新价格>>")
99 dict[goods] = price_new
100 print("修改成功,信息更新!")
101 for key in dict:
102 print(key, dict[key])
103 f.write(key)
104 f.write(' ')
105 f.write(dict[key])
106 f.write('\n')
107 sig = input("是否继续修改>>(y/n)")
108 if sig == 'y':
109 f.close()
110 continue
111 else:
112 f.close()
113 res == False
114 break
115 else:
116 print("输入错误!")
117 continue
118 elif que2 == 'd':
119 f = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'r+')
120 for i in f.readlines():
121 (key, value) = i.strip().split(' ') # 切片,再存入字典
122 dict.setdefault(key, value)
123 print(dict.keys()) # 打印key
124 while True:
125 f2 = open('C:/Users/David/Desktop/实验文件/第一模块:python基础/商品列表.txt', 'w')
126 goods = input("请输入要删除的商品>>")
127 if goods in dict:
128 del dict[goods]
129 print("删除成功,信息更新!")
130 for key in dict:
131 print(key, dict[key])
132 f2.write(key)
133 f2.write(' ')
134 f2.write(dict[key])
135 f2.write('\n')
136 sig = input("是否继续删除>>(y/n)")
137 if sig == 'y':
138 f2.close()
139 continue
140 else:
141 f2.close()
142 break
143 else:
144 print("输入错误!")
145 continue
146 else:
147 print('\n', "已退出!".center(50, '-'))
148 break
149 else:
150 print("输入错误!",'\n', "已退出!".center(50, '-'))
结语:
看起来长,但其实拆开,一个功能一个功能实现并不难。
要求的功能可以实现,但感觉方法太麻烦、代码不够简练、高效!
学习编程还是要自己多练习,敲的多了也就熟练了
这两天看看老师讲解,多学习。
2019年3月8日