1 '''
2 #作业二:请闭眼写出购物车程序
3 goods = [
4 {"name": "电脑", "price": 1999},
5 {"name": "鼠标", "price": 10},
6 {"name": "游艇", "price": 20},
7 {"name": "美女", "price": 998},
8 ]
9 #需求:
10 用户名和密码存放于文件中,格式为:jack|123
11 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序
12 允许用户根据商品编号购买商品
13 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
14 可随时退出,退出时,打印已购买商品和余额
15
16 '''
17 shopping_car = []
18 flag = False
19 num = 1
20
21 while num < 4:
22 name = input("请输入用户名:")
23 password = int(input("请输入密码:"))
24 with open('msg.txt', encoding='utf-8') as f:
25 for line in f:
26 if name == line.split('|')[0] and password == int(line.split('|')[1]) :
27 salary = int(input("请输入您的总资产:"))
28 with open('goods.txt',encoding='utf-8') as g:
29 i = 1
30 goods = []
31 for line in g:
32 dic = eval(line)
33 print('商品编号:',i , dic['name'],'----->',dic['price'])
34 goods.append(dic)
35 i += 1
36
37 while True:
38 num = input('选择商品序列号[按q 退出]:')
39 if num != 'q':
40 num = int(num)
41 if goods[num - 1]['price'] < salary:
42 salary = salary - goods[num - 1]['price']
43 shopping_car.append(goods[num - 1]['name'])
44 else:
45 print("你的余额不足,请充值")
46 salary = input('输入充值额度[按q 退出]:')
47 if salary == 'q':
48 break
49 else:
50 salary = int(salary)
51 continue
52
53 else:
54 print('谢谢惠顾')
55 break
56 print('你的余额:', salary)
57 print('购买的商品:', shopping_car)
58
59 flag = True
60 break
61 elif num < 3:
62 print("输入有误,请重新输入!")
63 elif num == 3:
64 print("刷新重试")
65 if flag:
66 break
67 num += 1
msg.txt:
jack|123
goods.txt
{"name": "电脑", "price": 1999}
{"name": "鼠标", "price": 10}
{"name": "游艇", "price": 20}
{"name": "美女", "price": 998}