python_day4_shopping
购物车例子,实现显示商品信息,输入商品编号并且可以减去自己的存入余额,当商品价格大于自己的余额的时候,直接退出;当不再选择商品的时候,退出显示余额和已经添加的商品。
#购物车程序 product_list = [
("airplane",90000),
("pen", 80),
("Trek bike", 5000),
("Book", 200),
("salt", 10),
("clothes", 600), ] saving = input("please input your money:") #存入的本金
shopping_car = [] if saving.isdigit(): #判断存入的是不是数字
saving = int(saving)
while True:
for i,v in enumerate(product_list,1):
print(i,">>>>",v)
choice = input("选择购买商品编号[退出:q]:") if choice.isdigit():
choice = int(choice)
if choice > 0 and choice <= len(product_list):
p_item = product_list[choice - 1]
if p_item[1] < saving:
saving -= p_item[1] #减去添加购物车的钱,还剩下的钱数
shopping_car.append(p_item) #购物的信息
else:
print("余额不足,还剩%s,不能购买下面的商品"%saving)
print(p_item)
else:
print("您输入的编号不存在")
elif choice == "q":
print("--------您购买的商品如下--------")
for i in shopping_car:
print(i)
print("您还剩%s元钱"%saving)
break
else:
print("invalid input")
#购物车程序 product_list = [
("airplane",90000),
("pen", 80),
("Trek bike", 5000),
("Book", 200),
("salt", 10),
("clothes", 600), ] saving = input("please input your money:") #存入的本金
shopping_car = [] if saving.isdigit(): #判断存入的是不是数字
saving = int(saving)
while True:
for i,v in enumerate(product_list,1):
print(i,">>>>",v)
choice = input("选择购买商品编号[退出:q]:") if choice.isdigit():
choice = int(choice)
if choice > 0 and choice <= len(product_list):
p_item = product_list[choice - 1]
if p_item[1] < saving:
saving -= p_item[1] #减去添加购物车的钱,还剩下的钱数
shopping_car.append(p_item) #购物的信息
else:
print("余额不足,还剩%s,不能购买下面的商品"%saving)
print(p_item)
else:
print("您输入的编号不存在")
elif choice == "q":
print("--------您购买的商品如下--------")
for i in shopping_car:
print(i)
print("您还剩%s元钱"%saving)
break
else:
print("invalid input")
python_day4_shopping的更多相关文章
随机推荐
- matlab练习程序(最大流/最小割)
学习这个算法是为学习图像处理中的图割算法做准备的. 基本概念: 1.最大流是一个有向图. 2.一个流是最大流,当且仅当它的残余网络中不包括增广路径. 3.最小割就是网络中所有割中值最小的那个割,最小割 ...
- 设计模式之模板方法模式(Template)
一.介绍 模板方法模式是编程中经常用到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤. 二.场景举例 当一 ...
- 7 - py面向对象一条龙服务
Python从设计之初就已经是一门面向对象的语言,在python里所有东西皆是对象. 下面通过一个实例来说明什么是面向对象. 引子 你是一家公司的员工,公司现在要开发一款“人狗战争”的游戏,人狗战争肯 ...
- GridView中的更新按钮不能触发RowUpdating事件
当点击“编辑”按钮以后,可以看到“更新”和“取消”按钮,“取消”按钮可以正常触发RowCancelingEdit事件,但是“更新”按钮不能触发RowUpdating事件. 解决方案: 在<asp ...
- March 23 2017 Week 12 Thursday
A bird is known by its note, and a man by his talk. 闻其声而知鸟,听其言而知人. One of the lessons I learned rece ...
- 如何用ABAP代码读取CDS view association的数据
我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Stat ...
- 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?
背景 有时我们能在Chrome开发者工具的Network tab里观察到SAP UI5应用会发出某些状态为"取消"的OData请求.如下图第五个请求. 之前有一种似是而非的说法:极 ...
- IOS KVO的实现原理
#import "HMViewController.h" #import "HMPerson.h" @interface HMViewController () ...
- c++下各种编码格式转换的方法
1.利用c++11新特性 std::wstring_convert配合std::codecvt模板类 作者:Gomo Psivarh链接:https://www.zhihu.com/question/ ...
- netbackup 8.1安装前注意事项
一.NetBackup 主服务器的 Web 服务器用户/组设置步骤 文章 ID:100034818 上次发布时间:2017-08-24 产品:NetBackup 问题 从 NetBackup 8. ...