day2 购物车
需求:
商家入口:
1、商品列表永久保存(暂时使用存储在文件,也可以使用sqlite)里。
2、商家可以增加商品,也可以修改商品价格
买家入口:
1、购物车信息永久保存,暂时使用存储在文件,也可以使用sqlite。
2、信息包括余额以及已经购买的商品的数量。
商家代码:
products.txt: iphone 400
block 1000
bike 200
cup 50
as 35
ff 78 productM.py: #!/usr/bin/env python
#Author:windtalker
import re
products={}
f = open('products.txt','r+')
contents = f.readlines()
f.close()
for con in contents:
lcon = con.split(' ')
products[lcon[0]] = int(lcon[1].replace('\n','')) print(products) while True:
inp = input('input your set:')
linp = re.split('\s+',inp)
if inp == 'q':
break
elif len(linp) ==2 and linp[1].isdigit():
products[linp[0]] = int(linp[1])
else:
print('input error')
f = open('products.txt','r+')
f.truncate()
for k in products:
print(k,products[k])
str ='''%s %d\n''' % (k,products[k])
f.write(str)
f.close()
买家代码:
#!/usr/bin/env python
#Author:windtalker
import re
fshopping = open('shoppingcart.txt','r+')
fprodcuts=open('products.txt','r')
products={}
lines=fprodcuts.readlines()
fprodcuts.close()
for line in lines:
pro = re.split('\s+',line)
products[pro[0]] = int(pro[1]) s_line= fshopping.readline()
carts={} if not s_line:
money_inp=input('show your money:')
if money_inp.isdigit():
total_money = int(money_inp)
else:
total_money = re.split('\s+',s_line)[1]
for nextline in fshopping.readlines():
res = re.split('\s+', nextline)
carts[res[0]] = int(res[1]) while True:
#for inx,pr in enumerate(products,1):
#print(inx,pr)
pros = list(enumerate(products.items(), 0))
#prolist = list(pros)
#print(pros)
for ind,pro in pros :
#print('why')
print('%d : %s' % (ind,pro))
shop_inp = input('please shopping:')
if shop_inp == 'q':
break
elif shop_inp.isdigit() and int(shop_inp) >= 0 and int(shop_inp) < len(pros):
tmpinfo = pros[int(shop_inp)]
if tmpinfo[1][0] not in carts.keys():
carts[tmpinfo[1][0]] = 1
else:
carts[tmpinfo[1][0]] += 1
total_money -= tmpinfo[1][1]
else:
print('error input') fshopping.write('total_money %d\n'% total_money)
for k in carts:
fshopping.write('%s %d\n' % (k, carts[k])) fshopping.close()
day2 购物车的更多相关文章
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- Python之路 day2 购物车小程序1
#Author:ersa ''' 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时 ...
- Python作业day2购物车
流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 #!/usr/bin/env python # -*- co ...
- python3.x Day2 购物车程序练习
购物车程序: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. ...
- Python开发【第二章】:Python的数据类型
基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...
- Python开发【第二章】:数据类型
基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...
- Python3.5 Day2作业:购物车程序
需求: 1. 启动程序后,用户通过账号密码登录,然后打印商品列表. 2. 允许用户根据商品编号购买商品. 3. 用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒充值. 4. 可随时退出,退出 ...
- Python培训12期-day2作业-购物车
#!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...
- python基础day2作业:购物车
#功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...
随机推荐
- 要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10;
package text1; import java.util.ArrayList; import java.util.HashSet; /* * 要求产生10个随机的字符串, * 每一个字符串互相不 ...
- 安装mysql5.6
1.创建一个不能登录的的用户: 2.下载一个数据库包: wget 下载网址 3.安装相关依赖包: yum -y install make gcc-c++ cmake bison-devel ncurs ...
- day 07
# 数据类型的相互转化# 字符编码# 文件操作 # 1.哪些类型可以转化为数字# res = int('10')# print(res)# res = int('-3')# print(res)# r ...
- UVA1030 Image Is Everything
思路 如果两个面看到颜色不同,则这个正方体一定要被删掉 然后依次考虑每个面即可 注意坐标的映射 代码 #include <cstdio> #include <algorithm> ...
- ArrayList迭代器源码分析
集合的遍历 Java集合框架中容器有很多种类,如下图中: 对于有索引的List集合可以通过for循环遍历集合: List<String> list = new ArrayList<& ...
- Redis 单机版
Redis 支持单机版和集群,下面的步骤是单机版安装步骤 1. # yum install -y gcc-c++ 1.1 由于是c语言编写,所以需要安装支持组件 2. 把压缩包上传到linux服务器上 ...
- 工具类封装之--CommonUtils
/** * @file_name : CommonUtils.java * @author : * @date : 2018年3月15日 * Description: */ package cn.xx ...
- JavaScript 随意记
js 志异: <script> // ----- 1 --------- alert(new Date()) alert(+new Date()) </script>
- android 百度地图 定位获取位置失败 62错误
一切正常步骤进行但是还是没有获得定位,得到的坐标总是49E.xxxx,错误代码总是62 总是以为代码.或jar包.或还有什么权限没给.搞了好久,十分郁闷.在控制台上又没有什么具体的错误提示 经过无数次 ...
- Oracle创建表、修改字段类型
1.创建表 1.创建表 create table SCM_PER( --SCM_PER表名 ID ) primary key,--主键ID USERID ),--用户ID --Permission v ...