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. ...
随机推荐
- Android项目实战(五十四):zxing 生成二维码图片去除白色内边距的解决方案
目录:zxing->encoding->EncodingHandler类 中修改 createQRCode方法 private static final int BLACK = 0xff0 ...
- 001-为什么Java能这么流行
本文首发于公众号:javaadu 典型回答 这种问题比较笼统,如果我遇到这个问题,我会从下面几个点阐述我的观点: Java通过JVM实现了"一次编写,到处运行"的特性,由JVM屏蔽 ...
- 搭建环境-Monkeyrunner-自动化测试工具
这篇博客帮助挺大,我补充部分,帮助同样的小白哈哈,侵删 https://www.cnblogs.com/lynn-li/p/5885001.html 1.前期准备 需要安装:JDK,SDK,pytho ...
- Windows API编程(SDK编程)配置VS2017——出现LNK 2019错误的win32项目如何解决
最近刚入门SDK编程,在 我终于知道为什么windowsApi学的人这么少了 这篇文章中,确实发现了这样的问题,我的教程使用VS2013->Windows桌面->win32,就诞生了能使用 ...
- LeetCode算法题-Prime Number of Set Bits in Binary Representation(Java实现)
这是悦乐书的第311次更新,第332篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第180题(顺位题号是762).给定两个正整数L和R,在[L,R]范围内,计算每个整数的 ...
- C#在window服务配置Log4Net.dll
1.使用背景: C#window服务下添加一个日志记录程序集(Log4Net.dll) 2.添加和使用步骤如下: 一.下载并引入Log4Net.dll程序集到项目中 下载地址:http://loggi ...
- ubuntu 16.04安装perf
ljc@ubuntu:~$ perf 程序“perf”尚未安装. 您可以使用以下命令安装: sudo apt install linux-tools-common ljc@ubuntu:~$ sudo ...
- Python存储系统(Redis)
存储系统数据缓存一般会使用三个模块:Mongodb,redis,memcache.其中memcache是轻量级缓存,只能将数据保存到内存中,redis可以配置数据保存在内存还是硬盘. 其主要用途有:不 ...
- Identity Server 4 - Hybrid Flow - MVC客户端身份验证
预备知识 可能需要看一点点预备知识 OAuth 2.0 不完全简介: https://www.cnblogs.com/cgzl/p/9221488.html OpenID Connect 不完全简介: ...
- docker初体验,搭建自用的gitlab服务
一.前言 git在如日中天的版本管理系统,现在如果不是工作在git版本管理系统下,几乎都不好意思给人打招呼.现在就有现成的互联网的git服务器提供给大家使用,例如号称程序的社交网络github. 正好 ...