博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写代码:购物车程序
阅读量:4485 次
发布时间:2019-06-08

本文共 7496 字,大约阅读时间需要 24 分钟。

以下购物车程序v1版本,是先基本功能要求:

 
1 # enconding: utf-8  2 # 数据结构:  3 # goods = [  4 # {"name": "电脑", "price": 1999},  5 # {"name": "鼠标", "price": 10},  6 # {"name": "游艇", "price": 20},  7 # {"name": "美女", "price": 998},  8 # ......  9 # ] 10 # 11 # 功能要求: 12 # 基础要求: 13 # 14 # 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 15 # 16 # 2、允许用户根据商品编号购买商品 17 # 18 # 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 19 # 20 # 4、可随时退出,退出时,打印已购买商品和余额 21 # 22 # 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 23 # 24 # 25 # 扩展需求: 26 # 27 # 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 28 # 29 # 2、允许查询之前的消费记录 30  31 goods = [ 32     {
"name": "电脑", "price": 1999}, 33 {
"name": "鼠标", "price": 10}, 34 {
"name": "游艇", "price": 20}, 35 {
"name": "美女", "price": 998}, 36 ] 37 38 account = {
"alex": "123", "emily": "123", "yanfu": "123"} 39 40 username = input("请输入用户名: ").strip() 41 password = input("请输入密码: ").strip() 42 list_all = [] # 存放所有商品 43 shopping_list = [] # 空列表,存放购买的商品 44 45 if username not in account or password != account[username]: 46 print("用户名密码有错误,请检查后再试!") 47 exit() 48 49 salary = input("请输入你的工资: ") 50 if salary.isdigit() is True: 51 salary = int(salary) 52 else: 53 print("工资非数字,请从新输入: ") 54 55 while True: 56 for info in goods: 57 list_all.append([info['name'], info['price']]) # 把商品信息添加到列表 58 59 while True: 60 print("可选商品如下:") 61 for index, i in enumerate(list_all): # index作为下标索引 62 print(index, i) 63 user_choice = input("请输入你要购买的商品:") 64 if user_choice == "n": 65 if shopping_list is None: 66 print("购物车为空") 67 else: 68 print("---------购物车-----------") 69 for s_index, s in enumerate(shopping_list): 70 print(s_index, s) 71 print("-------------------------") 72 elif user_choice.isdigit(): 73 user_choice = int(user_choice) 74 if user_choice < len(list_all) and user_choice >= 0: 75 product_choice = list_all[user_choice] 76 if product_choice[1] < salary: 77 shopping_list.append(product_choice) # 买得起,就放入购物车 78 salary -= product_choice[1] 79 print( 80 "添加\033[33;1m{}\033[0m到您的购物车,您剩余工资为 \033[33;1m{}\033[0m".format( 81 product_choice, salary)) 82 else: 83 print( 84 "\033[41;1m你的余额只剩{}\033[0m, 商品不能添加购物车".format(salary)) 85 print("---------购物车-----------") 86 for s_index, s in enumerate(shopping_list): 87 print(s_index, s) 88 print("你的余额为:\033[31;1m{}\033[0m".format(salary)) 89 print("-------------------------") 90 else: 91 print("没有这个商品,请检查从新输入。") 92 elif user_choice == "q": 93 print("---------购物车-----------") 94 for s_index, s in enumerate(shopping_list): 95 print(s_index, s) 96 print("\033[31;1m你的余额为{}\033[0m".format(salary)) 97 exit() 98 99 else:100 print("输入错误")
 

以下是购物车程序v2版本,实现扩展需求,但还有很多方面需要完善。

1 # enconding: utf-8  2 import os  3   4 # 数据结构:  5 # goods = [  6 # {"name": "电脑", "price": 1999},  7 # {"name": "鼠标", "price": 10},  8 # {"name": "游艇", "price": 20},  9 # {"name": "美女", "price": 998}, 10 # ...... 11 # ] 12 # 13 # 功能要求: 14 # 基础要求: 15 # 16 # 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 17 # 18 # 2、允许用户根据商品编号购买商品 19 # 20 # 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 21 # 22 # 4、可随时退出,退出时,打印已购买商品和余额 23 # 24 # 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 25 # 26 # 27 # 扩展需求: 28 # 29 # 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 30 # 31 # 2、允许查询之前的消费记录 32  33 goods = [ 34     {
"name": "电脑", "price": 1999}, 35 {
"name": "鼠标", "price": 10}, 36 {
"name": "游艇", "price": 20}, 37 {
"name": "美女", "price": 998}, 38 ] 39 40 account = {
"alex": "123", "emily": "123", "yanfu": "123"} 41 42 username = input("请输入用户名: ").strip() 43 password = input("请输入密码: ").strip() 44 list_all = [] # 存放所有商品 45 shopping_list = [] # 空列表,存放购买的商品 46 47 if username in account and password == account[username]: 48 if os.path.getsize('{}_price.txt'.format(username)) == 0: 49 salary = input("请输入你的工资: ") 50 if salary.isdigit() is True: 51 salary = int(salary) 52 else: 53 print("工资非数字,请从新输入: ") 54 else: 55 with open('{}.txt'.format(username), 'r+', encoding='utf-8') as f, \ 56 open('{}_price.txt'.format(username), 'r', encoding='utf-8') as p: 57 f = f.read().strip() 58 k = eval(f) 59 shopping_list.append(k) 60 salary = p.read().strip() 61 salary = int(salary) 62 print('#################购物清单###############') 63 for i in shopping_list: 64 print(i) 65 print("\n") 66 print('剩余金额:{}'.format(salary)) 67 else: 68 print("用户名密码有错误,请检查后再试!") 69 exit() 70 71 while True: 72 73 for info in goods: 74 list_all.append([info['name'], info['price']]) # 把商品信息添加到列表 75 76 while True: 77 print("可选商品如下:") 78 for index, i in enumerate(list_all): # index作为下标索引 79 print(index, i) 80 user_choice = input("请输入你要购买的商品:") 81 if user_choice == "n": 82 if shopping_list is None: 83 print("购物车为空") 84 else: 85 print("---------购物车-----------") 86 for s in enumerate(shopping_list): 87 print(s) 88 print("-------------------------") 89 elif user_choice.isdigit(): 90 user_choice = int(user_choice) 91 if user_choice < len(list_all) and user_choice >= 0: 92 product_choice = list_all[user_choice] 93 if product_choice[1] < salary: 94 shopping_list.append(product_choice) # 买得起,就放入购物车 95 salary -= product_choice[1] 96 print( 97 "添加\033[33;1m{}\033[0m到您的购物车,您剩余工资为 \033[33;1m{}\033[0m".format( 98 product_choice, salary)) 99 else:100 print("\033[41;1m你的余额只剩{}\033[0m, 商品不能添加购物车".format(salary))101 print("---------购物车-----------")102 for s in enumerate(shopping_list):103 print(s)104 print("你的余额为:\033[31;1m{}\033[0m".format(salary))105 print("-------------------------")106 else:107 print("没有这个商品,请检查从新输入。")108 elif user_choice == "q":109 print("---------购物车-----------")110 for s in enumerate(shopping_list):111 print(s)112 with open("{}.txt".format(username), 'w', encoding='utf-8') as f:113 f.write(str(shopping_list[:]) + "\n")114 115 with open('{}_price.txt'.format(username), 'w', encoding='utf-8') as f:116 f.write(str(salary) + "\n")117 print("你的余额为:\033[31;1m{}\033[0m".format(salary))118 print("-------------欢迎再次光临-------------")119 exit()120 121 else:122 print("输入错误")

 

 

转载于:https://www.cnblogs.com/demilyc/p/10037022.html

你可能感兴趣的文章
ViurtualBox配置虚拟机Linux的网络环境
查看>>
VLC 媒体播放器
查看>>
\n ^ \t的使用
查看>>
css盒模型
查看>>
探索式测试:测试自动化
查看>>
make install fping
查看>>
面试笔试题
查看>>
MySql可视化工具MySQL Workbench使用教程
查看>>
个人站立会议第二阶段07
查看>>
云时代架构阅读笔记五——Web应用安全
查看>>
IOS 单击手势和cell点击冲突
查看>>
学习_HTML5_day3
查看>>
计算机网络与应用第二次笔记
查看>>
Django之ORM查询
查看>>
学习python第七天
查看>>
Flask基础(07)-->正则自定义转换器
查看>>
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
查看>>
Spring Boot构建RESTful API与单元测试
查看>>
【JavaScript你需要知道的基础知识~】
查看>>
谷歌搜索语法
查看>>