Python小程序之购物车
需求:
用户入口:
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小程序之购物车的更多相关文章
- 怎么样通过编写Python小程序来统计测试脚本的关键字
怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...
- 微信小程序 - 实现购物车结算
示例源码下载:小程序-实现购物车结算
- Python 小程序,对文件操作及其它
以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行 ...
- 微信小程序实战 购物车功能
代码地址如下:http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/ ...
- Day1:第一个python小程序
Day1:第一个python小程序与开发工具Pycharm 一.Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5, J ...
- 微信小程序之购物车功能
前言 以往的购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消, ...
- 一个有意思的Python小程序(全国省会名称随机出题)
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近比较迷Python,仿照<Python编程快速上手>8.5写了一个随机出卷的小 ...
- 微信小程序——加入购物车弹层
对于网上商城,加入购物车是一个必备功能了.俺今天就来说下在微信小程序里如何造一个购物车弹层. 先上图: 主要用到的微信API:wx.createAnimation(OBJECT) 说下思路: 1.wx ...
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 —— 微信小程序实战商城 ...
随机推荐
- Visual Studio 2003安装包
点击下载
- [转载] python 解析xml 文件: SAX方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...
- webmagic 二次开发爬虫 爬取网站图片
webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫. webmagic介绍 编写一个简单的爬虫 webmagic的使用文档:http://w ...
- To Chromium之VS调试追踪
启动的code: for(;;){...WaitForWork()}base.dll!base::MessagePumpForUI::DoRunLoop ...
- Mac OSX 10.11安装Jekyll
一说常见的博客管理工具大家想到的就是WordPress.不过现在部分个人博客用户开始从WordPress转移到Jekyll上了.Jekyll是一种本地生成静态页面进而线上发布的博客工具,而且现在已经有 ...
- IIS 发布后无法连接数据库(应用池问题)
查找网站对应的 应用池,修改为 .net4.0 然后设置启动32位应用程序为 True
- C# 获取ORACLE SYS.XMLTYPE "遇到不支持的 Oracle 数据类型 USERDEFINED"
1.需要加函数 2.需要加表别名 select a.XML.getclobval() from TB1 a
- 机器学习模型-支持向量机(SVM)
二.代码实现 import numpy as np from sklearn import datasets from sklearn.model_selection import train_tes ...
- phaser常用API总结
1. 游戏画布的尺寸 var width = game.width, height = game.height; 2. 中心点坐标 var game = new Phaser.Game(...); ...
- 使用setTimeout延时10ms执行onunloadcancel
在做Web开发时,我们经常用到页面关闭事件onbeforeunload,可以给用户一个选择放弃关闭的机会,就比如这个博客编辑器.如果用户选择了离开,那么onunload事件自然会触发:但若用户选择了取 ...