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 ...
随机推荐
- java消息服务学习之JMS高级特性
将介绍的内容是: 控制消息确认.为发送消息指定选项.创建临时目的地.使用JMS本地事务.异步发送消息 五个方面. 1.控制消息确认 在JMS消息得到确认之前,并不认为它已经成功使用.要成功使用消息,通 ...
- Linux学习资料整理
Linux sshd服务自动启动 Ubuntu 各版本代号简介 CentOS 7 FTP安装与配置 vsftpd配置文件讲解 linux中的selinux到底是什么 CentOS7 部署Apache服 ...
- django自定义simple_tag和filter
1.自定义simple_tag: 1).在app目录名下创建templatetags目录,并新建__init__.py文件. 2).在templatetags目录下创建任意名字的py文件,例如rema ...
- redis的架构(一)
redis认证 redis的认证比较简单,这里简单来说明一下怎么设置redis的认证: redis的配置文件中有一个requirepass字段,在后面直接写上对应的密码即可.默认redis的不开启认证 ...
- mysql批量导出单结构与结构数据表脚本
由于一个库里面不需要导出全部, 只需要导出一部分指定的数据表结构与数据 那么就写了一个比较简单而且为了能偷懒的小shell #!/bin/bash #************************* ...
- C#线程同步(4)- 通知&EventWaitHandle一家
文章原始出处 http://xxinside.blogbus.com/logs/47523285.html 预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&am ...
- HackerRank-Python攻城歷程-3.List( Find the Second Largest Number )
if __name__ == '__main__': n = int(input()) arr = map(int, input().split()) print(sorted(list(set(ar ...
- MySQL卸载安装8.0.*
一.卸载 1. 本人安装目录在C盘Program Files文件中(删除MySQL文件夹) 2. 找到C盘Program Data隐藏文件夹中的MySQL并删除(删除提示MySQL在运行的话可以去任务 ...
- RFS常见问题
一.DatabaseLibrary 库遇到的问题:1,连接mysql库,查询语句带有中文,报FAIL UnicodeEncodeError: 'latin-1' codec can't encode ...
- android 百度地图 定位获取位置失败 62错误
一切正常步骤进行但是还是没有获得定位,得到的坐标总是49E.xxxx,错误代码总是62 总是以为代码.或jar包.或还有什么权限没给.搞了好久,十分郁闷.在控制台上又没有什么具体的错误提示 经过无数次 ...