![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 1. 2 ''' 3 knowledge_point: 4 1.练习if...else; 5 2.练习while; 6 3.练习列表的切片取值; 7 8 requirements: 9 购物车: 10 1.程序启动后,输入工资,打印商品列表 11 2.提示用户根据商品编号购买产品 12 3.选择商品后检测余额是否足够,扣款或提醒余额不足 13 4.随时退出,退出时打印已经购买的商品和余额 14 15 code: 16 ''' 17 product_li = [ 18 ("mac pro", 12000), 19 ("hp", 5000), 20 ("iphone", 6000), 21 ("huawei", 5000), 22 ("gopro", 4000) 23 ] 24 salary = input("input salary: ") 25 shopping_li = [] 26 if salary.isdigit(): 27 salary = int(salary) 28 while True: 29 for i, item in enumerate(product_li): 30 print(i+1, item) 31 choice_num = input('输入编号购买:') 32 if choice_num.isdigit(): 33 choice_num = int(choice_num) 34 if choice_num <= len(product_li) and choice_num >= 0: 35 paid_price = product_li[choice_num-1][1] 36 if paid_price <= salary: 37 paid_item = product_li[choice_num - 1] 38 print("you can pay") 39 shopping_li.append(paid_item) 40 salary -= paid_price 41 print("surplus is \033[32;1m{}\033[0m".format(salary)) 42 else: 43 print('\033[41;1m not enough money {}\033[0m'.format(salary)) 44 else: 45 print("product is not exist") 46 elif choice_num == "q": 47 # print("exited") 48 print('---------shopping_list_as_follows-------------') 49 for p in shopping_li: 50 print(p) 51 print("current balance is {}".format(salary)) 52 exit() #退出 53 else: 54 print("invalid choice")