上次的学习又没有坚持下来,工作忙的不可开交,但我反思了一下还是自己没有下定决心好好学习,所以这次为期3个月的学习计划开始了,下面是这次学习后重新编写的购物车初版代码。

 1 # 功能要求:
2 # 要求用户输入总资产,例如:2000
3 # 显示商品列表,让用户选择商品,加入购物车
4 # 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
5 # 附加:可充值、某商品移除购物车
6 goods = [
7 {"name": "电脑", "price": 1999},
8 {"name": "鼠标", "price": 10},
9 {"name": "游艇", "price": 20},
10 {"name": "美女", "price": 998},
11 ]
12 zongxiaofei = 0
13 gouwuche = {}
14 zongzichan = int(input("欢迎来到小小商店,请输入您的总资产:"))
15 print("您的总资产为:", zongzichan, "\n商品名称、价格如下:")
16 for shangpin_list in goods:
17 print(shangpin_list["name"], shangpin_list["price"])
18 print("\n")
19 while True:
20 goumai = input("请输入'商品名称'加入购物车或者输入'y'或'Y'去购物车进行结算:")
21 if goumai.lower() == "y":
22 break
23 for shangpin_list2 in goods:
24 if shangpin_list2["name"] == goumai:
25 if shangpin_list2["name"] not in gouwuche.keys():
26 gouwuche[shangpin_list2["name"]] = {"num": 1, "jiage": shangpin_list2["price"]}
27 else:
28 gouwuche[shangpin_list2["name"]]["num"] = gouwuche[shangpin_list2["name"]]["num"] + 1
29 for jiesuan_key , jiesuan_values in gouwuche.items():
30 jiesuan_num = jiesuan_values["num"]
31 jiesuan_jiage = jiesuan_values["jiage"]
32 xiaofei = jiesuan_num * jiesuan_jiage
33 zongxiaofei = zongxiaofei + xiaofei
34 while True:
35 if zongxiaofei > zongzichan:
36 print("购买失败!")
37 print("您的总资产为:", zongzichan, "您总消费金额:", zongxiaofei, "超出金额:", zongxiaofei - zongzichan)
38 chongzhi = input("请输入'y'or'Y'前往充值或输入'n'or'N'回到购物车删除多余商品:")
39 while True:
40 if chongzhi.lower() == "y":
41 chongzhi_money = int(input("请输入充值金额:"))
42 zongzichan = zongzichan + chongzhi_money
43 print("充值成功,您的总资产为:", zongzichan, "\n")
44 break
45 if chongzhi.lower() == "n":
46 print("\n您购物车内消费商品名称、商品数量、商品单价如下:")
47 for jiesuan_key2, jiesuan_values2 in gouwuche.items():
48 print(jiesuan_key2, jiesuan_values2["num"], jiesuan_values2["jiage"])
49 shanchu = input("\n请输入商品名称来减少商品数量1:")
50 for jiesuan_key3 , jiesuan_values3 in gouwuche.items():
51 if jiesuan_key3 == shanchu:
52 if jiesuan_key3 in gouwuche.keys():
53 zongxiaofei = zongxiaofei - gouwuche[jiesuan_key3]["jiage"]
54 break
55 else:
56 print("购买成功!")
57 print("您的总资产为:", zongzichan, "您总消费金额:", zongxiaofei, "结余金额:", zongzichan - zongxiaofei)
58 exit()

这个版本是带充值、删除购物车商品,最后结算金额。

后面我会学习简化代码,编写另一版实时判断余额的。

python编写购物车的更多相关文章

  1. python编写购物车新写法

    用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...

  2. python编写购物车小程序

     #练习#程序购物车#启动程序后,让用户输入工资,  然后打印商品列表,允许用户根据商品编号购买商品用户选择商品后 #检测余额是否够,够就直接扣款,不够就提醒可随时退出,退出时,打印已购买商品和余额  ...

  3. python编写购物车-实时购买

    本次编写的是实时购买(输入商品直接进行购买),余额不足可以进行充值或结束购物 1 goods = [ 2 {"name": "电脑", "price& ...

  4. python之编写购物车(第二天)

    作业: 编写购物车 具体实现了如下功能: 1.可购买的商品信息显示 2.显示购物车内的商品信息.数量.总金额 3.购物车内的商品数量进行增加.减少和商品的删除 4.用户余额的充值 5.用户购买完成进行 ...

  5. 基于python编写的天气抓取程序

    以前一直使用中国天气网的天气预报组件都挺好,可是自从他们升级组件后数据加载变得非常不稳定,因为JS的阻塞常常导致网站打开速度很慢.为了解决这个问题决定现学现用python编写一个抓取程序,每天定时抓取 ...

  6. 用Python编写博客导出工具

    用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处   写在前面的话 我在 github 上用 octopress 搭建了个人博 ...

  7. 【转载】Python编写简易木马程序

    转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...

  8. 用Python编写的第一个回测程序

    用Python编写的第一个回测程序 2016-08-06 def savfig(figureObj, fn_prefix1='backtest8', fn_prefix2='_1_'): import ...

  9. [译]Python编写虚拟解释器

    使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...

随机推荐

  1. Redis常见使用场景

    缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞.签到.打卡 商品标签 商品筛选 用户关注.推荐模型 排行榜 1.缓存 St ...

  2. ELBO surgery: yet another way to carve up the variational evidence lower bound

    目录 概 主要内容 Evidence minus posterior KL Average negative energy plus entropy Average term-by-term reco ...

  3. What is being transferred in transfer learning?

    目录 概 主要内容 feature reuse mistakes and feature similarity loss landscape module criticality pre-traine ...

  4. [opencv]二维码识别率提升方案-resize调整

    这里采用循环resize的方式,对二维码图像进行放缩. 识别到name(二维码结果)不为空,则立即退出循环 //循环识别 for (int i = 1;name.empty(); i++){ resi ...

  5. 基于Spring MVC + Spring + MyBatis的【物流系统 - 公司信息管理】

    资源下载:https://download.csdn.net/download/weixin_44893902/45601768 练习点设计:模糊查询.删除.新增 一.语言和环境 实现语言:JAVA语 ...

  6. Drupal 8 环境搭建部署

    运行环境安装 系统:Ubuntu Server 16.04  (ubuntu-16.04.4-server-amd64.iso) Web服务器:Apache / 2.4.18 数据库:Mysql / ...

  7. 微信小程序自定义导航栏组件

    1.首先,要在json文件中设置为自定义的形式 "navigationStyle": "custom" 2.计算相关值 导航栏分为状态栏和标题栏,只要能算出每台 ...

  8. vue爬坑之路(webpack 配置篇)

    在vue cli下 1.npm run dev 打开浏览器在config的index.js中修改autoOpenBrowser为true 关闭sourcemap productionSourceMap ...

  9. MASA Framework - EventBus设计

    目录 MASA Framework - 整体设计思路 MASA Framework - EventBus设计 概述 利用发布订阅模式来解耦不同架构层级,亦可用于解决隔离业务之间的交互 优点: 松耦合 ...

  10. 【Java】toString

    toString 当我们输出一个对象的引用时,实际上就是调用当前对象的toString() Object类中toString()的定义: public String toString() { retu ...