需求:

商家入口:

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 购物车的更多相关文章

  1. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  2. Python之路 day2 购物车小程序1

    #Author:ersa ''' 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时 ...

  3. Python作业day2购物车

    流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 #!/usr/bin/env python # -*- co ...

  4. python3.x Day2 购物车程序练习

    购物车程序: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. ...

  5. Python开发【第二章】:Python的数据类型

    基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  6. Python开发【第二章】:数据类型

    基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  7. Python3.5 Day2作业:购物车程序

    需求: 1. 启动程序后,用户通过账号密码登录,然后打印商品列表. 2. 允许用户根据商品编号购买商品. 3. 用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒充值. 4. 可随时退出,退出 ...

  8. Python培训12期-day2作业-购物车

    #!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...

  9. python基础day2作业:购物车

    #功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...

随机推荐

  1. hdu2054 通过率低是有理由的

    这虽然是一道水题,但却巨坑,他题面上不说数据范围,也没有说数据类型,事实就是数据范围巨大,整型实型都有,所以必须用字符串去写,但是又涉及到小数,所以还要删除小数后面多余的0,比如1==1.0000,这 ...

  2. Springboot 配置cors 跨域的几种方法

    作记录用 请参考https://blog.csdn.net/lizc_lizc/article/details/81155895 第一种: 在每个controller上添加 @CrossOrigin ...

  3. 面向复杂应用,Node.js中的IoC容器 -- Rockerjs/core

    Rockerjs Core 项目地址 项目主页 基于 TypeScript 和注解的轻量级IoC容器,提供了依赖注入.面向切面编程及异常处理等功能.Rockerjs Core可在任意工程中引入,是一个 ...

  4. 换个角度聊聊FaaS

    Serverless/FaaS伴随着k8s的热度增加,也成为了热门话题.相关文章介绍了很多,这里笔者不一一赘述,而是从个人见解上聊聊关于FaaS的架构和意义. FaaS可能的架构优化 从AppEngi ...

  5. anaconda中安装mmdetection

    1.新建conda环境(有则跳过)     conda create -n py36 python=3.6 && source activate py36 2.安装pytorch    ...

  6. Python day 04

    Day 04 今日内容 补充 1.解释器/编译器 补充:编译型语言和解释型语言? # 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行. # 解释型:写完代码交给解释器,解释器会从 ...

  7. Java 诊断工具 Arthas 教程学习笔记

    Java 诊断利器 Arthas,是阿里的一款开源工具.Github-alibaba/arthas 上可以看到它的介绍.了解它,主要是最近对分析 Java 错误堆栈比较感兴趣,机缘巧合看到了它. 本文 ...

  8. 分治(超级easy 不要看)

    P1226快速幂 #include<bits/stdc++.h> using namespace std; #define int long long ; int f(int b,int ...

  9. Deep Learning--week1~week3

    week1 一张图片,设像素为64*64, 颜色通道为红蓝绿三通道,则对应3个64*64实数矩阵 为了用向量表示这些矩阵,将这些矩阵的像素值展开为一个向量x作为算法的输入 从红色到绿色再到蓝色,依次按 ...

  10. iOS has conflicting provisioning settings 解法

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...