进击の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的简易购物车~~的更多相关文章

  1. [ Python -1 ] 简易购物车程序

    练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...

  2. Python编写简易木马程序(转载乌云)

    Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...

  3. python练习_购物车(简版)

    python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...

  4. 小甲鱼python基础教程飞机大战源码及素材

    百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载

  5. Session机制二(简易购物车案例)

    一:案例一(简易购物车) 1.目录结构 2.step1.jsp <%@ page language="java" contentType="text/html; c ...

  6. python搭建简易服务器实例参考

    有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ...

  7. 微信小程序入门学习-- 简易Demo:计算器

    简单学习下微信小程序 官网 简易教程 · 小程序 https://mp.weixin.qq.com/debug/wxadoc/dev/ 需要通过开发者工具,来完成小程序创建和代码编辑. 下载安装,运行 ...

  8. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  9. javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

随机推荐

  1. 2013年新年礼物---CrossFPC 终于出来了

    2012年12月份,玛雅人的预言没有实现,一个内部进行了7年开发的CrossFPC 终于见光了. 网址:http://www.crossfpc.com/ Welcome to CrossFPC, a ...

  2. ArcGIS 10.3 for Server 在windows下的安装教程

    原文:ArcGIS 10.3 for Server 在windows下的安装教程 以下是10.2的教程,10.3同样适用. 许可文件: ArcGIS For Server10.3许可文件 - 下载频道 ...

  3. Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio

    原文:Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio 通过前面几期的学习,我们知道了Android的前世今生,也了解了Android的系统架构和应用组件,也 ...

  4. WP 8.1 中挂起时页面数据保存方式(1)

    1.保存到Applicaion Data配置信息中: 保存: privatevoid testTB_TextChanged(object sender, TextChangedEventArgs e) ...

  5. Qt技术优势

    1. Qt这个C++的图形库由Trolltech在1994年左右开发.它可以运行在Windows,Mac OS X, Unix,还有像Sharp Zaurus这类嵌入式系统中.Qt是完全面向对象的. ...

  6. Qt之Model-View架构(雨田哥的博客)

    Qt之Model-View架构 Qt之Model-View架构 简述 效果图 代码 结尾 简述 为什么会用这个模式,这里我就不解释了,可以看下 豆子哥的见解 .这里我只是如何去使用的.供大家共同探讨学 ...

  7. HTML 关于colgroup的研究

    <colgroup width="20%"></colgroup> <colgroup width="10%"></c ...

  8. sentinel 核心概念

    编者注:前段时间笔者在团队内部分享了sentinel原理设计与实现,主要讲解了sentinel基础概念和工作原理,工作原理部分大家听了基本都了解了,但是对于sentinel的几个概念及其之间的关系还有 ...

  9. 浅谈我在.net core一年里的收获

    前言:以前一直在winserver的环境里从事web工作,安装一个sqlserver,iis,把项目部署上面就OK了,简单轻松一.结缘nginx以前一直听说nginx这个反向代理的web服务器,当玩n ...

  10. 向HashMap中添加1000个元素,设置new HashMap()值为多少合适?

    在已知元素容量的情况下,为了尽量减少碰撞增加查询效率,应该尽量选择较大数的同时避免资源浪费. HashMap底层通过hash值来计算索引位置的源码: 1.重新计算hash值 static final ...