购物车程序优化题目要求:

1. 用户退出时打印商品列表时,按以下格式

-------您购买的商品如下------

id    商品    数量    单价    总价

1      iPhone 2      5800     11400

2      coffee  1      30      30

...

总计价格: 11430元

--------end -------------

salary=int(input("please input your salary:"))      #输入薪资
product_list=[["iphone", 5888], #定义商品列表
["coffee",30],
["bike",299],
["vivo x9",2499],
["cake",40],
["book",99]]
product_cart={} #定义购物车字典
total_cost= 0 #定义总花销
while True: #循环打印可购买商品列表及退出提示
print("可购买的商品")
for number in range(len(product_list)):
product = product_list[number]
print(number,product)
print("q","quit") choice=input("输入你所选择的商品编号>>:").strip() #输入选择的商品编号或退出“q”
if choice.isdigit(): #判断输入的是否为整数
choice=int(choice)
if choice < len(product_list) and choice >= 0: #判断输入的数字是否商品编号范围内
product=product_list[choice] #定义要买的商品列表
if salary -product[1] >=0: #判断是否买的起
salary-=product[1] #买的起自动结算
print("将商品",product[0],"加入购物车,","你目前还有余额",salary,"元") #输出当前本次操作信息及余额 if product[0] in product_cart: #判断购买的商品是否在购物车里
product_cart[product[0]][1]+=1 #在购物车里,则商品对应的数量+1
else: #不在购物车里,则将商品信息,商品单价,数量加入购物车内
product_cart[product[0]]=[product[1],1]
print("目前你的购物车",product_cart)
else: #买不起则打印当前余额及差的金额。结束本次循环,重新开始循环,打印可购买商品列表及退出提示
print("你目前还有余额", salary, "元,", "还差", product[1] - salary, "元")
else: #输入的数字不在商品编号范围内,返回上一循环,打印可购买商品列表及退出提示
print("商品不存在!")
elif choice== "q": #输入的不是数字为字符串“q”,打印已购买商品信息及总花销
print("---------你购买的商品如下---------")
print("id","\t","商品","\t","数量","\t","单价","\t","总价")
id_counter=1 #定义购买车商品编号
for key in product_cart:
print(id_counter,"\t", #依序打印购物车商品编号,商品,数量,单价及总价
key,"\t",
product_cart[key][1],"\t\t",
product_cart[key][0],"\t",
product_cart[key][1]*product_cart[key][0])
id_counter+=1
total_cost+=product_cart[key][1]*product_cart[key][0] #定义总花销
print("总计价格为",total_cost)
print("------------end------------")
break #跳出循环 else: #输入的既不是整数,也不是字符串“q”,提示信息错误
print("你输入的是什么鬼?")

  

运行程序结果为:



python(4)- 简单练习:python实现购物车的优化的更多相关文章

  1. python实现简单的循环购物车小功能

    python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...

  2. 简单的python购物车

                 这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...

  3. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  4. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  5. python 实现简单排序

    今天偶得一本神奇的算法秘笈,据编辑说是一本easy and intresting 的书,所以我就开始翻开了. 书中作者用的是C语言,我最近正啃python 所以想着用python来解决作者的提问. 这 ...

  6. python开启简单webserver

    python开启简单webserver linux下面使用 python -m SimpleHTTPServer 8000 windows下面使用上面的命令会报错,Python.Exe: No Mod ...

  7. EditPlus开发Python的简单设置

    EditPlus是一个功能强大的编辑器,这里介绍用它来开发Python程序所需要的简单设置. 环境:win7 1.设置Python语法缩进: [1]工具-->设置用户自定义工具 [2]在分类面板 ...

  8. Windows下用python编写简单GUI程序的方法

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py #!C:\Python27\python.exe ...

  9. 利用vs2013简单初探Python

    最近无聊,某天无意在vs2013上发现了Python...... Python介绍:可以自己搜索一下. 接下来,准备工具: Win7搭建开发环境.需要准备Python.PTVS2013. 1.http ...

随机推荐

  1. 优秀的缓存请求库,快速请求接口和图片:WTRequestCenter

    WTRequestCenter 方便缓存的请求库无需任何import和配置,目前实现了基础需求如果有其他需要请在issue 上提出,谢谢! 使用方法 Usage 注意:所有的请求都是缓存的 GET 请 ...

  2. python踩坑系列——报错后修改了.py文件,但是依然报错

    一开始.py文件中的函数名大小写错了,但是在终端是对的,报错: 'module' object has no attribute '某函数名' 后来就去修改.py文件.结果重新import该.py文件 ...

  3. [python篇][其他] python博客学习汇总

    http://blog.csdn.net/zhangxinrun/article/details/8141913

  4. TOJ1196: RSA Signing

    题不在多,大概是多了也可能就是菜逼 1196: RSA Signing Time Limit(Common/Java):3000MS/30000MS     Memory Limit:65536KBy ...

  5. 山东理工大学第七届ACM校赛-G 飞花的传送门

    G - 飞花的传送门 飞花壕最近手头比较宽裕,所以想买两个传送门来代步(夏天太热,实在是懒得走路).平面上有N个传送门,飞花壕想要挑两个距离最远的传送门带回家(距离为欧几里得距离,即两点之间直线距离) ...

  6. js原型链继承的傻瓜式详解

    本文争取用最简单的语言来讲解原型链继承的OOP原理 0.如果对原型继承还没有大致了解,完全一头雾水,请先阅读 <JavaScript高级程序设计>第六章最后部分的寄生组合式继承 或者_廖雪 ...

  7. iOS学习笔记02-UIScrollView

    父类UIView方法 // autoresizingMask - 现在基本弃用,改用autoLayout typedef NS_OPTIONS(NSUInteger, UIViewAutoresizi ...

  8. 【Luogu】P3177树上染色(树形DP)

    题目链接 题没想出来很烦+一堆细节要注意很烦. 当然更可能是我智商被osu吃了. 考虑一条边会有什么贡献?它一边的黑点数*另一边的黑点数*边权. +它一边的白点数*另一边的白点数*边权. 这样一来就成 ...

  9. BZOJ3160 万径人踪灭 【fft + manacher】

    题解 此题略神QAQ orz po神牛 由题我们知道我们要求出: 回文子序列数 - 连续回文子串数 我们记为ans1和ans2 ans2可以用马拉车轻松解出,这里就不赘述了 问题是ans1 我们设\( ...

  10. SJTU Summer Camp

    Day -2,-1 提前坐飞机来到了上海,在旁边的酒店住下来,晚上去了外滩,在黄浦江边吹着晚风,依旧感慨万千,在衡中高三的一年竟然已经过去,经常出现在噩梦中的高考也已成为历史,然而命运可能并未就此改变 ...