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

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. 使用 D8 分析 javascript 如何被 V8 引擎优化的

    在上一篇文章中我们讲了如何使用 GN 编译 V8 源码,文章最后编译完成的可执行文件并不是 V8,而是 D8.这篇我们讲一下如何使用 D8 调试 javascript 代码. 如果没有 d8,可以使用 ...

  2. [Offer收割]编程练习赛48

    题目1 : 折线中点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1, P2, ... PN,将他们按顺序连起来,形成一条折线. 请你求出这条折线的 ...

  3. 开发者工具删除元素Delete Element

    开发者工具有个很好用的功能,通过删除元素,可以查看页面哪些元素比较特殊,同时也可以排除干扰.

  4. ZOJ-3953 Intervals,t

    Intervals 题意:给出n个区间,求最少删除多少个区间使得任意三个区间都不相交. 思路:按区间左端点排序,每次选取r最大的两个与当前比较,如果能放更新r,否则删除r最大的.关键就在怎么删除r最大 ...

  5. 九度oj 题目1443:Tr A

    题目描述: A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. 输入: 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n(2 <= n & ...

  6. iOS----精品开源库-开发强力助攻

    30个精品iOS开源库,超强助攻 你不会想错过他们,真的. 我爱开源.  文章的尾部你会看到一个太长不看的版本——一个简单的列表,只有标题和到项目的链接.如果你发现这篇文章是有用的,把它和你的iOS开 ...

  7. Swift UI控件详细介绍(上)

    UI控件 首先介绍一下AppDelegate.swift@UIApplicationMain 调用了OC中的UIApplicationMain函数:UIApplicationMain是iOS应用程序的 ...

  8. 学习 WebService 第二步:知识准备——WSDL文件解析

    原文地址:https://www.cnblogs.com/yzw23333/p/7245104.html Web service中一个 WSDL 对应一个 web service地址. 可以想象成一个 ...

  9. 如何查找Windows上安装的DB2的端口号Port

    1.db2com打开控制台 2.db2 get dbm cfg 可以通过db2 get dbm cfg,查询数据库管理器配置参数,就可以查到端口号或端口名. 示例: $ db2 get dbm cfg ...

  10. declaration specifier, declarator, type specifier

    static struct abc * b; static struct abc : declaration specifier * b : declarator struct abc : type ...