python(4)- 简单练习:python实现购物车的优化
购物车程序优化题目要求:
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实现购物车的优化的更多相关文章
- python实现简单的循环购物车小功能
python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...
- 简单的python购物车
这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- 用 python实现简单EXCEL数据统计
任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...
- python 实现简单排序
今天偶得一本神奇的算法秘笈,据编辑说是一本easy and intresting 的书,所以我就开始翻开了. 书中作者用的是C语言,我最近正啃python 所以想着用python来解决作者的提问. 这 ...
- python开启简单webserver
python开启简单webserver linux下面使用 python -m SimpleHTTPServer 8000 windows下面使用上面的命令会报错,Python.Exe: No Mod ...
- EditPlus开发Python的简单设置
EditPlus是一个功能强大的编辑器,这里介绍用它来开发Python程序所需要的简单设置. 环境:win7 1.设置Python语法缩进: [1]工具-->设置用户自定义工具 [2]在分类面板 ...
- Windows下用python编写简单GUI程序的方法
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py #!C:\Python27\python.exe ...
- 利用vs2013简单初探Python
最近无聊,某天无意在vs2013上发现了Python...... Python介绍:可以自己搜索一下. 接下来,准备工具: Win7搭建开发环境.需要准备Python.PTVS2013. 1.http ...
随机推荐
- [python][oldboy]list append, extend
# coding=utf8 li = [1, 3, [1, "liu"], "liu"] print li li.append([1, 2]) print li ...
- php rabbitmq操作类及生产者和消费者实例代码 转
注意事项: 1.accept.php消费者代码需要在命令行执行 2.'username'=>'asdf','password'=>'123456' 改成自己的帐号和密码 RabbitMQC ...
- 刷题总结——Middle number(ssoj 优先队列)
题目: 给定一个整数序列··有两个操作: add x,表示序列中加入x mid 表示询问这个序列的中位数 原始序列数量n<=100000,操作数m<=10000 题解: 这道题可以直接用权 ...
- Microsoft发布新一代主机:Xbox One
当 Xbox One 这个名字从 Microsoft 高管 Don Mattrick 口中被念出来时,现场直接沸腾了.按照 Mattrick 的说法这是一款 all-in-one 的主机,而其核心价值 ...
- hdu 6118 度度熊的交易计划
度度熊的交易计划 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 慕课 python 操作数据库
test_connection import MySQLdb conn = MySQLdb.Connect( host = '127.0.0.1', port = 3306, user = '**** ...
- 在Ubuntu / Ubuntu Kylin下安装和卸载 Nodepadqq
在Ubuntu / Ubuntu Kylin下安装和卸载 Nodepadqq 对于Ubuntu发行版本可以通过PPA安装,命令如下: sudo add-apt-repository p ...
- LeetCode OJ--Permutations II
给的一个数列中,可能存在重复的数,比如 1 1 2 ,求其全排列. 记录上一个得出来的排列,看这个排列和上一个是否相同. #include <iostream> #include < ...
- AC日记——让我们异或吧 洛谷 P2420
题目描述 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中…xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B是否是男生)=A和B是否能 ...
- (1)hello world
操作系统安装SDK https://www.microsoft.com/net/download/windows 选择对应的操作系统 wget -q https://packages.micr ...