热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:购物车程序优化(python3.x)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了购物车程序优化(python3.x)相关的知识,希望对你有一定的参考价值。针对上次的程序进

篇首语:本文由编程笔记#小编为大家整理,主要介绍了购物车程序优化(python3.x)相关的知识,希望对你有一定的参考价值。


针对上次的程序进行了如下优化:

    1.整个程序分为两个接口,分别为商家可用户

  2.商家可以添加商品,修改价格

  3.商品信息存储在文件中,余额和已购商品也存在文件中

 

 


1 products_list=[]
2 shopping_list=[]
3 price_list=[]
4 while True:
5 role=input("请选择你以什么样的身份进入系统 1.user| 2.ower:")
6 if role==1:
7 print ("欢迎使用user身份进入系统")
8 with open("code_file/product_info",r) as h:
9 f=len(h.readlines() )
10 with open("code_file/product_info",r) as u:
11 for i in range(f):
12 single_produce=u.readline().strip(
)
13 products_list.append(single_produce)
14 with open("code_file/price_info",r) as m:
15 for i in range(f):
16 single_price=int(m.readline().strip(
))
17 price_list.append(single_price)
18 salary=input("input your salary:")
19 if salary.isdigit():
20 salary=int(salary)
21 while True:
22 for index,item in enumerate (products_list ):
23 print(index,item,price_list[index] )
24 choose_num=input("plese your choose...:")
25 if choose_num.isdigit():
26 choose_num=int(choose_num )
27 if choose_num=0:
28 if salary>=price_list[choose_num]:
29 shopping_list.append(products_list[choose_num])
30 p=products_list[choose_num]
31 salary-=price_list[choose_num]
32 print("added 33[31;1m%s33[0m into your shopcar...,your balance is 33[31;1m%s33[0m" % (p,salary ))
33 else:
34 print("your salary can not afford it....")
35 else:
36 print("now,your choose is false....")
37 elif choose_num=="q":
38 with open("code_file/bought_info",a+) as bought:
39 for bought_products in shopping_list :
40 bought.writelines(bought_products)
41 bought.writelines(
)
42 print (bought_products )
43 with open("code_file/balance_info",w) as balance:
44 balance.writelines(str(salary))
45 balance.writelines(
)
46 print("your balance is 33[31;1m%s33[0m"%salary)
47 exit()
48 elif choose_num==b:
49 break
50 else:
51 print("your input is false....,plese input agin...")
52
53 elif role==2:
54 print ("欢迎你使用商家身份进入系统")
55 while True:
56 print (‘‘‘商家可以进行的操作信息
57 0.添加商品
58 1.修改价格
59 2.读取商品的信息
60 ‘‘‘)
61 next=input("请输入你的选择:")
62 if next.isdigit():
63 next=int(next)
64 if next==0:
65 join_product=input("请输入添加的商品名称:")
66 join_price=input("请输入添加的商品价格:")
67 with open("code_file/product_info",a+) as o:
68 o.writelines(join_product)
69 o.writelines(
)
70 with open("code_file/price_info",a+) as a:
71 a.writelines(join_price)
72 a.writelines(
)
73 continue
74 elif next==1:
75 change_name=input("请输入需要修改的商品名称:")+

76 change_price=input("请输入该商品修改为多钱:")+

77 with open("code_file/price_info",r+)as o:
78 read_price=o.readlines()
79 print(read_price)
80 read_price[products_list.index(change_name)] =change_price
81 print(read_price)
82 with open("code_file/price_info",w+)as q:
83 q.writelines(read_price)
84 elif next==2:
85 with open("code_file/product_info",r)as b:
86 products_list =b.readlines()
87 for index,item in enumerate (products_list ):
88 print(index,item)
89 elif next==b:
90 break
91 elif next==q:
92 exit()
93 else:
94 print("输入错误")
95 elif role==q:
96 exit()
97 else:
98 print("输入异常")

 


推荐阅读
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
纯情利宾立2502857907
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有