案例:购物车小程序

 

 1 goods = [
 2         {"name": "电脑", "price": 1999},
 3         {"name": "鼠标", "price": 40},
 4         {"name": "保温杯", "price": 250},
 5         {"name": "小米手机", "price": 998},
 6         {"name": "iPhone 4s", "price": 1800},
 7         {"name": "奶茶", "price": 18},
 8         {"name": "订书机", "price": 67},
 9     ]
10 
11 usr_name = input('请输入用户名:')
12 usr_pwd = input('请输入密码:')
13 with open('users', encoding='utf-8') as f:                  # 验证账号与密码
14         lis = f.readline().split(',')
15         if usr_name in lis and usr_pwd in lis:
16             print('登陆成功'.center(30, '-'))
17             Flag = True
18             shop_car = []                                   # 空购物车
19             while Flag:
20                 print('商品列表'.center(30, '-'))
21                 for num, i in enumerate(goods):             # 打印商品列表
22                     print('%d  %s   ¥%d'.center(30)%(num, i['name'], i['price']))
23                 salary = input('请存入消费金额:')              # 存入工资
24                 if salary.isdigit():
25                     salary = int(salary)
26                     money = salary
27                     while True:
28                         try:
29                             usr_choice = input(f'请选择商品序号 结账:q (\033[5;31;2m余额:{salary}\033[0m):')   # 输入商品序号
30                             if usr_choice == 'q':
31                                 print('当前购物车'.center(30, '-'))
32                                 for i in shop_car:
33                                     print('%s  ¥%d' % (i['name'], i['price']))
34                                 print(f'\n\033[5;31;2m合计:¥{money-salary}\033[0m \033[5;31;2m余额:¥{salary}\033[0m'.center(30, '-'))
35                                 print('欢迎下次光临'.center(30, '-'))
36                                 Flag = False
37                                 break
38                             elif salary >= goods[int(usr_choice)]['price']:                     # 将商品存入购物车
39                                 salary -= goods[int(usr_choice)]['price']
40                                 shop_car.append(goods[int(usr_choice)])
41                                 print('加入购物车成功'.center(20, '*'))
42                             else:
43                                 print(f'余额不足(\033[5;31;2m余额:{salary}\033[0m)'.center(20, '*'))
44                                 new_choice = input('\n1.结账  2.充值\n请选择:')
45                                 if new_choice == '1':
46                                     print('当前购物车'.center(30, '-'))
47                                     for i in shop_car:
48                                         print('%s  ¥%d'%(i['name'], i['price']))
49                                     print(f'\n本次消费:\033[5;31;2m¥{money-salary}\033[0m 账户余额:\033[5;31;2m¥{salary}\033[0m'.center(30, '-'))
50                                     print('欢迎下次光临'.center(30, '-'))
51                                     Flag = False
52                                     break
53                                 elif new_choice == '2':
54                                     add_money = int(input('请输入充值金额:'))
55                                     salary += add_money
56                                     money += add_money
57                         except IndexError:
58                             print('\n请输入正确的商品编号!\n')
59                         except ValueError:
60                             print('\n请输入正确的商品编号!\n')
61                 else:
62                     print('\n\n请输入数字!!!\n\n')
63 
64         else:
65             print('账号或密码错误'.center(30, '-'))

 

posted @ 2018-07-20 12:48  宝露  阅读(275)  评论(0)    收藏  举报