~~小练习:python的简易购物车~~
进击のpython
*****
1,用户先给自己的账户充钱:比如先充3000元。
2,有如下的一个格式:
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},]
3,页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10
…
4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车(自己定义购物车),用户还可继续添加商品。
5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
6,用户输入N为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
7,用户输入Q或者q退出程序。
8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息显示。
麻烦算法:
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}, ]
shop_car = {}
while 1:
try:
m = int(input("请输入充钱金额>>>"))
count = 0
for i in goods:
count += 1
print(count, i["name"], i["price"])
while 1:
cho_goods = input("买点东西啊小老弟>>>")
try:
cho_goods = int(cho_goods)
a = (goods[cho_goods - 1]["name"], goods[cho_goods - 1]["price"])
if a in shop_car:
shop_car[a] += 1
else:
shop_car[a] = 1
except ValueError:
if cho_goods.upper() == "N":
while 1:
pay_money = 0
for i in range(len(shop_car)):
name = list(shop_car.keys())[i][0]
price = list(shop_car.keys())[i][1]
twice = list(shop_car.values())[i]
pay_money += price * twice
print(f'商品名称:{name} 商品单价:{price} 购买数量:{twice}')
if pay_money > m:
msg = input("超额了熬!!删点什么吧")
shop_car1 = shop_car.copy()
for k in shop_car1:
if msg == k[0]:
shop_car[k] -= 1
if shop_car[k] == 0:
del shop_car[k]
else:
pay_money = 0
print("—————————购买成功—————————")
for i in range(len(shop_car)):
name = list(shop_car.keys())[i][0]
price = list(shop_car.keys())[i][1]
twice = list(shop_car.values())[i]
pay_money += price * twice
print(f'商品名称:{name} 商品单价:{price} 购买数量:{twice}')
print(f"总共花费:{pay_money}")
print(f"钱包余额:{m-pay_money}")
print("————————欢迎下次光临————————")
exit()
elif cho_goods.upper() == "Q":
print("欢迎下次光临!")
exit()
else:
print("请重新输入!")
except IndexError:
print("请重新输入")
except ValueError:
print("你这钱也不是个正经钱啊!")
简单算法:
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}, ]
while 1:
money = input("充点钱啊!老铁!(按Q退出)")
try:
money = int(money)
name, price, twice = [], [], []
for i in range(len(goods)):
print(i + 1, goods[i]["name"], goods[i]["price"])
name.append(goods[i]["name"])
price.append(goods[i]["price"])
twice.append(0)
while 1:
num = input("请输入你要购买的东西:")
try:
num = int(num)
twice[num - 1] += 1
print("以将{}加入购物车,单价为:{}".format(name[num - 1], price[num - 1]))
except ValueError:
if num.upper() == "N":
while 1:
pay = 0
for i in range(len(goods)):
if twice[i] <= 0:
pass
else:
print(name[i], price[i], twice[i])
pay += price[i] * twice[i]
if pay > money:
msg = input("超额了熬!!删点什么吧")
if msg.upper() == "Q":
print("欢迎下次光临!")
exit()
if msg in name:
twice[name.index(msg)] -= 1
else:
print("—————————购买成功—————————")
for i in range(len(goods)):
if twice[i] == 0:
pass
else:
print(f'商品名称:{name[i]} 商品单价:{price[i]} 购买数量:{twice[i]}')
print(f"总共花费:{pay}")
print(f"钱包余额:{money-pay}")
print("————————欢迎下次光临————————")
exit()
elif num.upper() == "Q":
print("欢迎下次光临!")
exit()
else:
print("请重新输入!")
except IndexError:
print("请重新输入")
except ValueError:
if money.upper() == "Q":
print("欢迎下次光临!")
exit()
else:
print("你这钱也不是个正经钱啊!")
*学会了吗*
*凑弟弟*
~~小练习:python的简易购物车~~的更多相关文章
- [ Python -1 ] 简易购物车程序
练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...
- Python编写简易木马程序(转载乌云)
Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...
- python练习_购物车(简版)
python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...
- 小甲鱼python基础教程飞机大战源码及素材
百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载
- Session机制二(简易购物车案例)
一:案例一(简易购物车) 1.目录结构 2.step1.jsp <%@ page language="java" contentType="text/html; c ...
- python搭建简易服务器实例参考
有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ...
- 微信小程序入门学习-- 简易Demo:计算器
简单学习下微信小程序 官网 简易教程 · 小程序 https://mp.weixin.qq.com/debug/wxadoc/dev/ 需要通过开发者工具,来完成小程序创建和代码编辑. 下载安装,运行 ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
随机推荐
- ARTS 1.14 - 1.18
期望: 每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 Two Sum IV - In ...
- DDD中的值对象如何用NHibernate进行映射
原文:DDD中的值对象如何用NHibernate进行映射 <component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念 ...
- 比快更快——微软LightGBM
LightGBM介绍 xgboost是一种优秀的boosting框架,但是在使用过程中,其训练耗时过长,内存占用比较大.微软在2016年推出了另外一种boosting框架--lightgbm,在不降低 ...
- 使用 Elastic Stack 来监控和调优 Golang 应用程序
Golang 因为其语法简单,上手快且方便部署正被越来越多的开发者所青睐,一个 Golang 程序开发好了之后,势必要关心其运行情况,今天在这里就给大家介绍一下如果使用 Elastic Stack 来 ...
- virtualbox 安装 extension pack 方法以及出现 "The installer failed with exit code 1: VBoxExtPackHelperApp.exe: error: Failed to rename the temporary directory to the final one"的解决办法
virtualbox 的版本:5.1.26 下载地址:https://www.virtualbox.org/wiki/Downloads extension pack 的版本:5.1.26 ...
- Fundamentals Code Library,包含HTTP TCP JSON BigInteger 加密算法 Unicode等许多东西
http://fundementals.sourceforge.net/index.html https://github.com/fundamentalslib/fundamentals5 http ...
- 如何从一张图片中裁剪一部分距形图片另存为文件(使用Canvas.CopyRect)
如何从一张图片中裁剪一部分距形图片另存为文件? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiMultimedia/html/delp ...
- Windows下用VC与QT编译MPI程序入门
MPI是信息传递接口的简称,常用来进行进程间.机器间的通信与并行计算.一般而言,MPI都会部署在*nix系统下,在Windows下面直接编译.配置MPI并不容易.本文利用MS提供的编译好的MPI的版本 ...
- VS2013设置release版本可调试
http://blog.csdn.net/caoshangpa/article/details/76575640
- 用汇编语言给XP记事本添加“自动保存”功能 good
[文章标题]: 用汇编语言给XP记事本添加“自动保存”功能 [文章作者]: newjueqi [作者邮箱]:zengjiansheng1@126.com [作者QQ]:190678908 [使用工具] ...