~~小练习: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仓库 项目框架搭 ...
随机推荐
- UWP入门(六)-- ResourceDictionary 和 XAML 资源引用
原文:UWP入门(六)-- ResourceDictionary 和 XAML 资源引用 你最希望声明为 XAML 资源的 XAML 元素包括 Style.ControlTemplate.动画组件和 ...
- Win10之UWP的数据存储
原文:Win10之UWP的数据存储 我们知道通常我们开发的时候都要考虑把用户的数据存储到一个数据库里面,而这个数据库则考虑到了整个应用的性能上面,这里我们不考虑SQL server的数据库,我们考虑较 ...
- Delphi中用MessageBox()API函数做倒计时对话框(使用Hook安装CBTHookCallback,计时器更改文字,SetWindowText API真正修改文字,引用未知函数)good
API有隐藏的MessageBoxTimeOut函数可以做计时对话框,缺点是不能显示还剩下多少秒关闭. const IDTIMEDOUT = 32000; function MessageBoxTim ...
- IT职场初体验一
自己学习计算机专业也算有两个年头了吧,对于这个刚刚IT入门的菜鸟,对IT职场充满了好奇和憧憬,本人大学也像很多大学生一样,进入计算机专业也不是自己最初想进入的专业,进入这个原本离自己有点遥远的行业,一 ...
- 七、Linux磁盘管理及LVM讲解
1.硬盘接口 IDE:家用产品,也部分应用于服务器 SATA:一般使用 SCSI:服务器市场 SAS:高端服务器上,价格昂贵 2.硬盘种类 SATA硬盘: SCSI硬盘: SAS硬盘: 3.分区 ...
- mvc中Scripts.Render的用法
第一次接触新的东西,都会很陌生,但是时间久了就熟悉了变简单了. 视图文件中使用Scripts.Render()输出脚本包,Styles.Render()输出样式包 上面两张图是我所做项目里的,放上面会 ...
- ABP开发框架前后端开发系列---(12)配置模块的管理
一般来说,一个系统或多或少都会涉及到一些系统参数或者用户信息的配置,而ABP框架也提供了一套配置信息的管理模块,ABP框架的配置信息,必须提前定义好配置的各项内容,然后才能在系统中初始化或者通过接口查 ...
- Django之F、Q查询,事务,自定义char字段
F查询 from django.db.models import F,Q # 当查询条件来自于数据库的某个字段,这个时候就必须使用F # 查询卖出数大于库存数的商品 res = models.Prod ...
- idea初见问题整理_错误: -source 1.5 中不支持 diamond 运算符
最近在移动工程到idea下,顺便改目录结构,遇到的问题不一定全部记录,有些答案摘抄自别人博客,已注明来源,由于不是摘抄自同一作者,且有自己的一些内容,所以标注为原创. 1.(错误: -source 1 ...
- HTML5新增的表单验证功能
一.HTML5表单的特点: HTML5 表单增加了许多内置的控件和控件属性 XHTML 中需要放在 form 之中的诸如 input/button/select/textarea 等标签元素,在 HT ...