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 ...
随机推荐
- The 18th Zhejiang University Programming Contest Sponsored by TuSimple
Pretty Matrix Time Limit: 1 Second Memory Limit: 65536 KB DreamGrid's birthday is coming. As hi ...
- equals()和hashCode()方法在集合类set中的使用
Object的方法 equals()和hashCode() 是用来判断两个对象是否相等.基础类型判断是否相等时,使用“==”来判断,按java的说话,“==”当用来判断是基础类型是判断内容的,而引用对 ...
- 【Luogu】P2447外星千足虫(高斯消元)
题目链接 高斯消元解%2意义下的方程,Bitset优化一下. 在消的过程中就能顺便把有解的第一问求出来,记录一下访问过的最大行. #include<cstdio> #include< ...
- [bzoj1095][ZJOI2007]Hide 捉迷藏 点分树,动态点分治
[bzoj1095][ZJOI2007]Hide 捉迷藏 2015年4月20日7,8876 Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiaji ...
- mac/linux自带定时任务执行crontab的使用
1.编辑定时任务信息 sudo crontab -e #以root用户创建,也可以 -u 参数 编辑内容如下: 频率表达式分别对应为 分.时.日.周.月 LANG=zh_CN.UTF-8 */30 * ...
- Windows PowerShell Exit Codes
Windows PowerShell Exit Codes PSMDTAG:FAQ: How can my script control the PowerShell exit code? Answe ...
- fuelgauge
void fg_init(void *queue, void (*bs_fuel_gauge_status)(void)) { fg_init_ready = bs_fuel_gauge_status ...
- 美图秀秀web开发文档
Xiuxiu 组件 import React, { Component } from 'react'; class XiuXiu extends Component { componentDidMou ...
- 通过jQuery Ajax提交表单数据时同时上传附件
1.使用场景:需要使用ajax提交表单,但是提交的表单里含有附件上传 2.代码实现方式: <!-- HTML代码 --> <form method="post" ...
- Codeforces 691E Xor-sequences
矩阵快速幂.递推式:dp[k][i]=sum(dp[k-1][j]*f[i][j]),dp[k][i]表示的意义是序列中有k个元素,最后一个元素是i的方案数,f[i][j]=1表示i与j能放在一起,反 ...