2019-02-27

原代码:

money = int(input("请输入金额:"))
list = ["phone", "clothes", "book", "desk lamp"]
list2 = [5000, 200, 35, 45]
cart = [] for j in range(10000): #最多能够购买的商品数量
i = int(input("请输入你要购买的商品序号:"))
if i >= 4: #判断用户输入的商品序号是否在商品列表内
print("超出商品序号范围!请输入正确的序号")
continue
else:
if int(list2[i]) > money: #判断账户余额是否能够购买商品
print("余额不足,请另购商品")
else:
cart.extend([list[i]]) #将购买的商品名称加入cart列表中
print(str(list[i]), "已经加入购物车")
money = money - int(list2[i]) #计算账户余额
print("余额为:", money)
con = input("是否继续购买?y/n:") #判断用户是否继续购买
list3 = ["y", "Y"]
list4 = ["n", "N"]
if con in list3:
print("请继续选购!")
continue
else:
if con in list4:
break
else:
print("输入指令错误,自动退出")
break
print("购物车中的商品有:", cart) #打印出购物车中的商品
print("欢迎下次光临!!")

修改后代码:

product_list = [("phone", 5000),
("clothes", 3000),
("book", 200),
("desk lamp", 225)
]
money = int(input("请输入您的原始金额:"))
cart = []
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 money >= p_item[1]:
money = money - p_item[1] # 计算余额
print("%s已经计入购物车。" % p_item[0])
cart.append(p_item[0])
print("您的余额为:", money)
else:
print("您的余额不足!")
else:
print("请输入正确的序号")
elif choice == "q": # 退出并打印购物车中的商品
print("您的购物车中有以下商品:")
for i in cart:
print(i)
print("你的余额为:%s" % money)
break
else:
print("请输入正确的序号!")
continue

Python学习笔记(5)practice:shopping_cart的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  3. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  8. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  10. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

随机推荐

  1. 树状数组||归并排序求逆序对+离散化 nlogn

    我好咸鱼. 归并排序之前写过,树状数组就是维护从后往前插入,找比现在插入的数大的数的数量. 如果值域大,可以离散化 #include <cstdio> #include <cstri ...

  2. 【Educational Codeforces Round 48 (Rated for Div. 2) D】Vasya And The Matrix

    [链接] 我是链接,点我呀:) [题意] 告诉你每一行.每一列的异或和. 让你求出一个符合要求的原矩阵. [题解] 显然应该有 a1^a2^....^an = b1^b2^....^bn 也即两边同时 ...

  3. ie版本

    <!--[if lte IE 6]> 自定义代码 <![endif]-->

  4. Virtual address cache memory, processor and multiprocessor

    An embodiment provides a virtual address cache memory including: a TLB virtual page memory configure ...

  5. CAD教程-AL对其命令

    AL可以实现不规则的对其功能 1.第一步按下AL,按下Enter 2.选择第一个源点 3.选择第一个目标点 4.选择第二个源点 5.选择第二个目标点 6.按下Enter,完成移位

  6. redis代码解析-事务

    redis 的事务相关的几个命令分别为 watch multi exec. watch 可以监控一个变量在事务开始执行之前是否有被修改.使用方式为: WATCH key [key ...] 在redi ...

  7. POJ 3243

    Babystep算法.具体为什么,我也不太明白,好像资料不多. #include <iostream> #include <cstdio> #include <cstri ...

  8. Java数据结构(排序篇)

    冒泡排序:是经过n-1趟子排序完毕的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数.大泡在上,小泡在下. 选择排序:每一趟从待排序的数据元素中选出最小(或 ...

  9. APP为什么签名,使用keytool jarsigner进行签名

    签名(sign):在应用程序的特定字段写入特定的标记信息,表示该软件已经通过了签署者的审核.过程:使用私有密钥数字地签署一个给定的应用程序 作用: 识别应用程序作者 检測应用程序是否发生改变 有种程序 ...

  10. vehicle time series data analysis

    以HADOOP为代表的云计算提供的仅仅是一个算法执行环境,为大数据的并行计算提供了在现有软硬件水平下最好的(近似)方法.并不能解决大数据应用中的全部问题.从详细应用而言,通过物联网方式接入IT圈的数据 ...