~~小练习: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仓库 项目框架搭 ...
随机推荐
- ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...
- LINQ查询表达式---------orderby子句
LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...
- spring.net的简单使用(二)资源配置
主要对资源配置做进一步的解析. 对资源位置的配置是在spring节点的context下,resource节点配置. spring.net的资源是可以设置在三种不同的位置的, 1.配置文件中 <r ...
- rem.js移动布局实例教程
最近想买需要开发微站,微信公众号内嵌入的移动web,总结方法可以使用css3直接使用百分比布局,也可以使用bootstrap做响应式布局等多种方法,个人感觉看项目需要,笔者使用rem.js进行移动前端 ...
- ABAP中SPLIT关键字 当分隔符位于字符串首尾时
使用SPLIT关键字将一个字符串按某个分隔符拆分,如果分隔符穿插在字符串中间(即首尾字符均不是分隔符的情况),我们很容易知道拆分后的结果,但如果分隔符恰好位于字符串首或者末尾呢? 如下面的代码所示,在 ...
- C#爬虫与反爬虫--字体加密篇
爬虫和反爬虫是一条很长的路,遇到过js加密,flash加密.重点信息生成图片.css图片定位.请求头.....等手段:今天我们来聊一聊字体: 那是一个偶然我遇到了这个网站,把价格信息全加密了:浏览器展 ...
- HTML连载15-文本属性&颜色控制属性
一.文本装饰的属性 1.格式:text-decoration:underline; 2.取值: (1)underline代表下划线 (2)line-through代表删除线 (3)overline代表 ...
- 3021Java_数据类型
1.分类 Java数据类型 基本数据类型 数值型 整数类型 浮点类型 字符型 布尔型 引用数据类型 类 接口 数组 2.基本数据类型 2.1 综述 java的8种基本数据类型(简单数据类型) bool ...
- Webapi实现websocket实时通讯
应用场景:前端页面发起一个websocket请求与后端进行实时通讯.后端监听某端口获取数据,将监听到的数据加工处理,通过websocket发送到前端. 这里只提供后台的处理方案仅供参考. 1.后端监听 ...
- kubernetes实战篇之nexus oss服务器部署及基于nexus的docker镜像仓库搭建
系列目录 Nexus oss仓库管理平台搭建 Nexus是一款仓库管理工具,支持Npm,bower,maven,nuget,apt,yum甚至docker,helm等各种仓库,说的通俗以下,就是私服镜 ...