需求:

  用户入口:

  1、商品信息放在文件中,从文件中读取

  2、已购商品,余额记录,第一要输入起始金额,以后不需要二次输入

  商家入口:

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

 # Author:Lee Sirimport sys

 def goods_info():
goods_info = 'goods_info.txt'
fd = open(goods_info)
return fd def goods_list(fd):
print('商品列表'.center(30,'-'))
for items in fd.readlines():
index,goods_name,goods_price = items.split()
print(index,goods_name,goods_price) def check_cart(buylist):
print('您的购物车如下:')
for name,price in buylist:
print('名称:',name,'价格:',price)
check_choice = input('是否结账?:[Y/N]')
if check_choice == 'y' or check_choice == 'Y':
return True
else:
return False def check_money(money,buylist):
money = int(money)
chech_result = 0
for name,price in buylist:
chech_result += int(price)
if chech_result <= money:
return True,money - chech_result
else:
return False,money def buyer():
buylist = []
while True:
money = input("请输入的金钱:")
if money.isdigit():
while True:
money = int(money)
fd = goods_info()
goods_list(fd)
choice = input('请输出你要购买的商品序号:')
if choice.isdigit():
choice = int(choice)
# print(type(choice))
fd.seek(0)
if choice > 0 and choice <= len(fd.readlines()):
fd.seek(0)
#print('1')
for items in fd.readlines():
index, goods_name, goods_price = items.split()
if int(index) == choice:
buylist.append((goods_name,goods_price))
print('添加 %s 至购物车。' % (goods_name))
buy_choice = input('是否继续购买? [Y/N]')
if buy_choice == 'y' or buy_choice == 'Y':
continue
else:
if len(buylist) > 0:
if check_cart(buylist):
check_result, balance = check_money(money,buylist)
if check_result:
exit('结算成功,您的余额还有 %s' % balance )
else:
continue_buy = input('您的余额不足,是否修改购物车?: [Y/N]')
if continue_buy == 'Y' or continue_buy == 'y':
print('您的购物车如下:')
for index,buy_name in enumerate(buylist):
name,price = buy_name
print('序号:',index,'名称:', name, '价格:', price)
else:
while True:
dele_cart = input('请输入你要删除的产品序号:')
if dele_cart.isdigit():
dele_cart = int(dele_cart)
if dele_cart >= 0 and dele_cart <= len(buylist):
buylist.remove(dele_cart)
break
else:
print('输入错误请重新输入')
else:
print('输入错误,请重新输入') else:
continue_check = input('您的购物车为空,是否继续购买? [Y/N]')
if continue_check == 'Y' or continue_check == 'y':
continue
else:
exit('See you tomorrow!')
else:
print('输入有误,请重新输入:') else:
exit('您没有购买任何产品,再见!')
else:
print('输入有误,请重新输入') buyer()

Python小程序之购物车的更多相关文章

  1. 怎么样通过编写Python小程序来统计测试脚本的关键字

    怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...

  2. 微信小程序 - 实现购物车结算

    示例源码下载:小程序-实现购物车结算

  3. Python 小程序,对文件操作及其它

    以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行 ...

  4. 微信小程序实战 购物车功能

    代码地址如下:http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/ ...

  5. Day1:第一个python小程序

    Day1:第一个python小程序与开发工具Pycharm 一.Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5, J ...

  6. 微信小程序之购物车功能

    前言 以往的购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消, ...

  7. 一个有意思的Python小程序(全国省会名称随机出题)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近比较迷Python,仿照<Python编程快速上手>8.5写了一个随机出卷的小 ...

  8. 微信小程序——加入购物车弹层

    对于网上商城,加入购物车是一个必备功能了.俺今天就来说下在微信小程序里如何造一个购物车弹层. 先上图: 主要用到的微信API:wx.createAnimation(OBJECT) 说下思路: 1.wx ...

  9. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

随机推荐

  1. ajax 异步刷新,需要填写的参数

    参数 options 类型:Object 可选.AJAX 请求设置.所有选项都是可选的. ******* async 类型:Boolean 默认值: true.默认设置下,所有请求均为异步请求.如果需 ...

  2. 制作一个简易计算器——基于Android Studio实现

    一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...

  3. 福大软工1816:Alpha(2/10)

    Alpha 冲刺 (2/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.学习qqbot库: 2.实 ...

  4. C#的internal访问修饰符

    文章:C# 访问修饰符internal的访问范围误区释疑 internal访问修饰符限定的类,只能在本程序集中访问.

  5. UITableView性能优化【本文摘自智车芯官网】

    UITableView是个表格视图,可以在表格行空间中添加多个子控件,UITableView继承了UIScrollView,默认状态下可以堆单元格进行滚动,所有的UITableViewControll ...

  6. pta结构体链表作业

    一.PTA实验作业 7-2 1. 本题PTA提交列表 2. 设计思路 题目要求按照年龄从大到小的顺序依次输出,于是我只要用冒泡法把结构体变量从大到小排列就可以了. 3.本题调试过程碰到问题及PTA提交 ...

  7. 201621044079《Java程序设计》第二周学习总结

    Week02-Java基本语法与类库 1.本周学习总结 记录本周学习中的重点 尝试使用 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴 1.学习了Java的数据类型 int ch ...

  8. 页面加载时给的子元素的第一个元素加class

    HTML代码: <div id="xiao"> <ul> <li></li> </ul> </div> js ...

  9. 【python】Python 字典(Dictionary)操作详解

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'} ...

  10. perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志

    perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志 http://blog.chinaunix.net/xmlrpc.php? ...