一个很low的购物车系统还花了我一下午时间

购物车的要求

有一两个入口

  用户入口:

    1.商品信息存在文件里

    2.已购商品余额记录

  商家入口

    2.可添加商品,修改商品

用户入口

俩个文件一个product.txt商品信息   一个历史购买数据

用户输入本想加一个判断历史购买是否由余额然后直接输入余额  ,但是if判断好像返回不了返回值

 1 # Author:Zhiyu Su
 2
 3 shopping_list=[]
 4 f=open(‘product.txt‘,‘r‘,encoding=‘utf-8‘)
 5 product_list=eval(f.read())
 6
 7 l = open(‘历史购买数据.txt‘, ‘r‘, encoding=‘utf-8‘).read()
 8
 9
10
11 salary = l
12 print(‘以前购物余额‘,salary)
13
14 salary = input("input your salay")
15 if salary.isdigit():#字符串形式的数字返回为真
16     salary = int(salary)
17     while True:
18         for index,item in enumerate(product_list):#enumerate 取元素的下标
19
20             #print(product_list.index(item),item)
21             print(index,item)
22         user_choice = input("选择》》》》》》》》")
23         if user_choice.isdigit():
24             user_choice=int(user_choice)
25             if user_choice < len(product_list) and user_choice >=0:
26                 p_item = product_list[user_choice]
27                 if p_item[1] <= salary:#买的起
28                     shopping_list.append(p_item)
29                     print(shopping_list)
30                     salary-= p_item[1]
31                     print("added%s into shopping cart your crent balance is \033[31;1m%s\033[0m" %(p_item,salary))  #字体红色 \033[31;1m**\033[0m
32                 else:
33                     print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m"%salary)
34             else:
35                 print("不存在[%s]"% user_choice)
36         elif user_choice == ‘q‘:
37             print("-----------shopping list--------------")
38             for p in shopping_list:
39                 print(p)
40             print("your current balance:",salary)
41             k = open(‘历史购买数据.txt‘, ‘w‘, encoding=‘utf-8‘)
42             k.write(str(salary))
43             k.write(str(p))
44             k.close()
45             exit()
46         else:
47             print("sojdioj")
48 f.close()

商家入口

有待完善的地方:修改完毕之后保存两个文件一个是使用文档,一个是备份。文档以w模式写   而备份以追加模式写再加每次存写的日期 ,如果文档丢失按最接的时间拷贝到使用文本里(这里配备时间可能需要用到正则 )

 1 # Author:Zhiyu Su
 2
 3
 4
 5
 6 f =  open(‘product.txt‘,‘r‘,encoding=‘utf-8‘)
 7
 8
 9 data = eval(f.read())
10 f_new =  open(‘product.txt‘,‘w‘,encoding=‘utf-8‘)
11 # for i in data:
12 #     print(i)
13
14 for index,item in enumerate(data):#enumerate 取元素的下标
15        print(index,item)
16 Choice = input(‘你要修改商品按x你要添加商品按t>>>>‘)
17 if Choice ==‘x‘:
18     choice = int(input("选择要修改的商品号》》》"))
19     if choice <len(data):
20         print(data[choice])
21         choice2 = input(‘修改名称按--m--还是修价格按--q-->>>‘)
22         if choice2 ==‘m‘:
23             choice3 = input("你要修改的商品名称>>>>>")
24             data[choice][0]=choice3
25             print(data)
26             f_new.write(str(data))
27         elif choice2 == ‘q‘:
28             choice4 = input("你要修改的商品名称>>>>>")
29             data[choice][1] = choice4
30             print(data)
31             f_new.write(str(data))
32 elif Choice == ‘t‘:       #添加功能
33     App = input(‘商品名称>>>>>>‘)
34     end = input(‘商品价格>>>>>>‘)
35     data.append([App,end])
36     f_new.write(str(data))
37 else:
38     print(‘兄弟只有t和x‘)
39 f.close()
40 f_new.close()
				
时间: 2024-11-07 16:47:03

一个很low的购物车系统还花了我一下午时间的相关文章

一个很low的验证局域网内的机器中永恒之蓝病毒的方法

局域网内高发永恒之蓝病毒,但是发现并没有进行勒索加密的迹象,仅是进行了传播,不过因为病毒会将同一个子网掩码内的所有的ip地址进行一遍arp 广播,所以造成公司局域网性能下降,以及很多服务器出现无法ping通(网关不能及时响应提交的arp申请信息),或者出现ping的延迟较高的现象.暂时解决方法如下: 使用wireshark 跟踪局域网内的流量, 主要高发的arp 广播包如下: 判断是否是病毒的方法: (1)       arp包数据非常多 (2)       给不存在的ip地址发送arp数据包

一个很low的登录界面

import tkinter as tk from tkinter import messagebox import socket def receive(name=None,password=None): sk = socket.socket() # 创建客户套接字 sk.connect(('192.168.13.142', 8898)) # 尝试连接服务器 send=name+"|"+password send1=send.encode("utf-8") sk.

再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入

说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析Html,用开源的HtmlAgilityPack就很快解决问题了.我个人并不是技术特别深,所以只要是解决问题就OK了.但每一次需求并不是完全一致的,对上面那篇文章的采集,无需登录,是非常灵活的,但是这次碰到的稍微有点变态,虽然最后任务完成,但总结方案还是很low的,但觉得还是有必要分享出来,希望对以

使用MongoDB和JSP实现一个简单的购物车系统

1 问题描述 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来获取用户提交的登录信息并查询数据库,如果用户名为本小组成员的名字且密码为对应的学号时,采用JSP内置对象的方法跳转到订购页面(显示店中商品的种类和单价等目录信息):否则采用JSP动作提示用户重新登录(注:此页面上要包含前面的登录界面). (3)当顾客填好所需商品的数量并点击提交按钮时,将前面订购的商品放

一个很不错的bash脚本编写教程

转自 http://blog.chinaunix.net/uid-20328094-id-95121.html 一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其

一个很好的php分词类库

PHPAnalysis源程序下载与演示: PHP分词系统 V2.0 版下载 | PHP分词系统演示 | PHPAnalysis类API文档   原文连接地址:http://www.phpbone.com/phpanalysis/ 分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码 更广泛,并且对utf-8编码尤为方便. 由于PHPAnalysis是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内

一个优雅的报警处理系统范例

做运维的同学都知道,运维一定离不开Zabbix.Nagios之类的监控软件.目前,类似的软件在监控和数据采集方面已经做到了极致,但是在报警处理上并没有很完美的解决方案,比如,经常出现高质量报警湮没在海量报警之中等情况. 本文不探讨监控系统的配置优化,只探讨监控系统按照它的逻辑发出报警之后我们该做点什么. 报警遇到的痛点 报警风暴,高质量报警湮没在海量报警之中: 出现报警后没人认领,需要在在工作的IM群中沟通: 运维人员进行运维操作必定会引起某些报警,会给不知道真相的同学带来困惑: 海量报警恢复之

如何设置系统还原点并将电脑还原至还原点?

很多电脑系统容易出现系统崩溃,导致重装系统.重装系统就意味着需要全部重新安装软件,以及备份数据,这样就很麻烦.今天给大家分享一个办法,可以避免重装系统导致的麻烦,同样可以解决电脑系统崩溃的问题,轻松的使用电脑.那就是创建还原点.还原点:就是将系统还原一个较早的时间点,这个时间点可以由你自己把握.自己在电脑你觉得正常的情况下设置一个时间点,以后电脑出了问题就可以直接还原到这个点.例如,我在2015年11月11日将我的电脑设置了一个还原点,现在2015年12月20日,我的电脑系统进不去了,那么我就可

一个简单的情感识别系统的实现

情感识别,主要就是正和负的识别,偶尔也有中性.类别比较少,所以相对于广义的文本分类来说,看起来要简单很多,特别是很多词汇都有很强的倾向性.当然这是针对某一特定的领域.一般的话,情感识别主要用于商品评论,因为不同的商品会有不同的术语之类的专门的某一词汇,所以如果将某一领域的数据集上学到的模型应用在另一个领域的话,可能效果会不很理想. Stephan Raaijmakers等的这篇文章[1]提出的是一种基于阀值投票的方法,即使用独立的分类器去分各个类别的数据,最后使用新领域的数据对分类结果进行投票校