python3 购物车 增改查终极版~
还是先来条NLP再说,快没了,以后想抄还没有。。。
十一,没有挫败,只有回应讯息
“挫败”只是指出过去的做法得不到预期的效果,是给我们需要改变的信号。
“挫败”只是在事情画上句号时才能用上,欲想事情解决,即是事情仍会继续下去,这二字便不适用。
“挫败”是指过去的事,“怎样改变做法”是指向未来。
“挫败“是过去的经验,而经验是让我们提升自我的垫脚石,因为经验是能力的基础,而能力是自信的基础。
每次”挫败“,都只不过是学习过程里修正行动的其中一步。
人身里所有的学习,都是经由不断修正而达致完善。
想要成功,首先要相信有成功的可能。
每次的”挫败“带来的教训掌握了,每次便都成了学习。
自信不足的人,潜意识总是在找”不用干下去的“借口,”挫败“二字便很容易冒出来。
购物车终极版~
#!usr/bin/env/ python
# -*- coding:utf-8 -*-
# Author: XiaoFeng goods = [{"name": "铅笔", "price": 2},
{"name": "橡皮", "price": 1},
{"name": "尺子", "price": 3}]
shopping_car = {}
total = 0
print("\033[31;1mWelcome to XiaoXiao's store!\033[0m".center(70, "*"))
while 1:
print("-" * 59)
for index, i in enumerate(goods):
print("商品名:{} {}\t价格:{}元".format(index + 1, i["name"], i["price"]))
choice = input("请输入您的选择(a:添加, d:调整, c: 查看购物车 q: 结算):").strip()
if choice.lower() == "a":
while 1:
order = input("请输入商品编号(b:返回):").strip()
if order.isdigit():
order = int(order)
if 0 < order <= len(goods):
while 1:
num = input("请输入要购买的数量(b:返回):").strip()
if num.isdigit():
num = int(num)
if goods[order - 1]["name"] in shopping_car:
shopping_car[goods[order - 1]["name"]]["num"] = \
shopping_car[goods[order - 1]["name"]]["num"] + num
break
else:
shopping_car[goods[order - 1]["name"]] = \
{"price": goods[order - 1]["price"], "num": num}
break
elif num.lower() == "b":
break
else:
print("请输入数字!")
else:
print("请输入显示范围内的序号!")
elif order.lower() == "b":
break
else:
print("请输入选择序号!")
elif choice.lower() == "d":
while 1:
order_1 = input("请输入想要调整的商品号(b:返回):").strip()
if order_1.isdigit():
order_1 = int(order_1)
if goods[order_1 - 1]["name"] in shopping_car:
while 1:
num_1 = input("请输入想要调整的数量(b:返回)").strip()
if num_1.isdigit():
num_1 = int(num_1)
if num_1 >= 0:
shopping_car[goods[order_1 - 1]["name"]]["num"] = num_1
break
elif num_1 < 0:
print("请别乱来,谢谢")
else:
print("请输入正确的数字!")
elif num_1.lower() == "b":
break
else:
print("请输入数字或选择返回b!")
else:
print("您还没有选购此商品,赶快添加吧~")
elif order_1.lower() == "b":
break
else:
print("请输入有效编号") elif choice.lower() == "c":
total = 0
if shopping_car:
print("\033[40;1m购物车\033[0m".center(50, "-"))
for k, v in shopping_car.items():
print("商品名:{}\t价格:{}元\t\t数量:{}个".format(k, v["price"], v["num"]))
total += v["price"] * v["num"]
print("总计:", total, "元")
else:
print("购物车为空哦,快快选购吧~") elif choice.lower() == "q":
account = input("一共是%d元,现金还是扫码? 嘻嘻!)" % total).strip()
if account.isdigit():
account = int(account)
if account >= total:
print("付款%d元,收您%d元,找零%d元,谢谢惠顾,欢迎下次光临~!" % (account, total, account - total))
break
else:
print("您的余额不足哦,叫媳妇儿来付钱吧~")
else:
print("请刷卡,别开玩笑,给钱或者把东西留下,或者打电话叫你媳妇儿来!")
else:
print("请输入正确操作!")
python3 购物车 增改查终极版~的更多相关文章
- mysql 中的增改查删(CRUD)
增改查删可以用CURD来表示 增加:create 修改:update 查找:read 删除:delete 增加create : insert +表名+values+(信息): in ...
- NX二次开发-NX访问SqlServer数据库(增删改查)C#版
版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...
- iOS 数据库的增删改查(OC版)
自己写了几个方法来实现数据的增删改查功能: 首先在TARGETS--->>Build phases里面添加数据库所关联的库文件libsqlite3.tbd 添加完以后,在控制器上添加 #i ...
- JS高级. 04 增删改查面向对象版歌曲管理、递归、
增 数组.push() 删 数组.splice(开始删除索引,删除几个) 在当前对象中调用当前对象的方法中和属性,必须用this调用 nodeType判断节点类型 节点.nodeType == 1: ...
- MySQL数据库 、数据表、数据的增删改查简版
数据库操作 # 增 CREATE(DATABASE | SCHEMA)[IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET[=]charset_name] ...
- php mysqli 链接数据库 CURD 增改查删
<?php function println($msg) { echo "<br>"; echo $msg; } $mysql_server_name = &qu ...
- angularJS1笔记-(3)-购物车增删改查练习
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- MongoDB安装、CURD增改查删操作、应用场景
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- hibernate 增改查后对象的三种状态转换
this.getSession().update(obj); this.getSession().merge(obj); this.getSession().saveOrUpdate(obj);1. ...
随机推荐
- Flutter的初体验--初次配置的问题
首先参照官方文档进行搭建Mac下的环境 ,然后就会遇到以下问题: 1.在下载了Flutter 之后,执行Flutter doctor之后,报错: Could not resolve URL &qu ...
- asp.net core重新加载应用配置
asp.net core重新加载应用配置 Intro 我把配置放在了数据库或者是Redis里,配置需要修改的时候我要直接修改数据库,然后调用一个接口去重新加载应用配置,于是就尝试写一个运行时重新加载配 ...
- DataPipeline在大数据平台的数据流实践
文 | 吕鹏 DataPipeline架构师 进入大数据时代,实时作业有着越来越重要的地位.本文将从以下几个部分进行讲解DataPipeline在大数据平台的实时数据流实践. 一.企业级数据面临的主要 ...
- C# 将datatable导出成Excel
public void Result( ){try{StringBuilder sql = new StringBuilder();List<SqlParameter> parameter ...
- Exp3免杀原理与实践 20164312 马孝涛
1.实验要求 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编 ...
- Ambari安装及自定义service初步实现
Ambari安装 1 Ambari简介 Apache Ambari项目的目的是通过开发软件来配置.监控和管理hadoop集群,以使hadoop的管理更加简单.同时,ambari也提供了一个基于它自身R ...
- Open ID Connect(OIDC)在 ASP.NET Core中的应用
我们在<ASP.NET Core项目实战的课程>第一章里面给identity server4做了一个全面的介绍和示例的练习 ,这篇文章是根据大家对OIDC遇到的一些常见问题整理得出. 本文 ...
- 有趣的 box-decoration-break
这两天接触到一个很有意思的 CSS 属性 -- box-decoration-break.下面就一起去一探究竟. 因为 MDN 上关于这个属性,没有中文文档,所以一直在想一个合理贴切的中文翻译.直译一 ...
- 《前端之路》之三 数组的属性 && 操作方法(上)
目录 03:数组的属性 && 操作方法(上) 03:数组的属性 && 操作方法(上) 一.Array property 数组的属性 1.constructor 返回对创 ...
- 机器学习——logistic回归,鸢尾花数据集预测,数据可视化
0.鸢尾花数据集 鸢尾花数据集作为入门经典数据集.Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数 ...