Python之购物车
Python之购物车
msg_list = [
['iphone',8888],
['coffe',38],
['book',90],
['Tesla',100000],
['RR',1000000000]
] shopping_cart = [] salary = int(input('input your salary:')) while True:
#计数器,给列表的物品赋值
index = 0
# 循环列表msg_list,并打印
for product in msg_list:
print(index,product)
index +=1
#输入要选取的物品编号
choice = input('>>:').strip()
#对输入的类型进程判断,看是否是数字,isdigit是判断是否是数字的方法
if choice.isdigit():
#判断输入的数字是否在列表的索引值范围内
choice = int(choice)
if choice >= 0 and choice <= len(msg_list):
#商品存在,取到商品。
product = msg_list[choice]
#判断输入的金额是否买得起。
if product[1] <= salary:
#买得起,并加入购物车。
shopping_cart.append(product)
#总金额减去加入购物车的钱
salary -= product[1]
# \033[31;1m XXXXXXXX \033[0m 固定写法,可以改变XXXXXX的字体颜色
print('Added product:' + product[0] + ' into shopping cart, \033[31;1myour current\033[0m balance:' + str(salary))
else:
print('买不起了,产品价格是' + str(product[1]) + "还差" + str(product[1]-salary) + '钱')
else:
print('商品不存在')
elif choice == 'q':
print('-------已购买商品-------') for i in shopping_cart:
print(i) print('您的余额为:',salary)
print('---------结束----------')
break
else:
print('无此选项')
购物车优化:
msg_list = [['IphoneX',8888],
['Coffee',30],
['MINI',300000],
['Python',998],
['LAND ROVER',4000000],
['RR',10000000],
] shopping_cart = {} salary = int(input("input your salary:")) while True:
index = 0
for product in msg_list:
print(index,product)
index +=1
choice = input(">>:").strip()
if choice.isdigit(): #判断是否为数字
choice = int(choice)
if choice >= 0 and choice < len(msg_list):#商品存在
product = msg_list[choice] #取到商品
if product[1] <= salary: #判断能否买的起
#买的起
if product[0] in shopping_cart: #之前购买过呀
#字典的取值方法
shopping_cart[product[0]][1] += 1 #[price, 数量],只需要把数量+1,加入购物车
else:
shopping_cart[product[0]] = [product[1], 1] #创建一条商品购买记录 salary -= product[1] #扣钱
print("Added product " + product[0] + " into shopping cart,\033[42;1myour current\033[0m balance " + str(salary) )
else:
print("买不起,穷逼! 产品价格是" + str(product[1]) + " 你还差" + str(product[1]-salary) + "钱")
else:
print("商品不存在!")
elif choice == "q":
print("-------已购买商品列表--------")
#print(shopping_cart)
id_counter = 1
#初始化一个总花费的变量
total_cost = 0
print("id 商品 数量 单价 总价")
for key in shopping_cart:
#字符串格式化,10是每个占位符的距离
print("%10s%10s%10s%10s%10s" %(id_counter,
key,
shopping_cart[key][1],
shopping_cart[key][0],
shopping_cart[key][1]*shopping_cart[key][0])) id_counter +=1
total_cost += shopping_cart[key][1]*shopping_cart[key][0] #单个商品总价 print("您的总花费为:",total_cost)
print("您的余额为:",salary)
print("----------end----------")
break
else:
print("无此选项!")
Python之购物车的更多相关文章
- Python初探-购物车程序
要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...
- python之购物车的编写(熬夜撸代码中。。。)
购物车的编写对于我这种不是很精通函数的小白来说,简直太难了.各种坑,各种无奈啊!不过总算也是写出来了! 不多说,直接上代码! #!/usr/bin/env python#用户名 sanjiang#密码 ...
- Python练习----购物车
要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...
- python实现购物车
一. 功能: 1. 用户充值余额 判断余额输入格式是否正确,正确则转换成float型. 2. 显示商品列表 根据已有商品显示所有商品的序号.商品名称.和价格供用户选择 3. 用户选择商品 判断用户输入 ...
- python复习购物车程序
个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...
- 【python】——购物车
作业需求: 用户名和密码存放于文件中,格式为:egon|egon123 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 ...
- Python学习-购物车程序
程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...
- python设计购物车
设计购物车 一需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提 ...
- python编写购物车新写法
用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...
随机推荐
- bzoj 2115: [Wc2011] Xor【线性基+dfs】
-老是想到最长路上 其实可以这样:把每个环的xor和都存起来,然后任选一条1到n的路径的xor和ans,答案就是这个ans在环的线性基上跑贪心. 为什么是对的--因为可以重边而且是无相连通的,并且对于 ...
- [USACO4.1]麦香牛块Beef McNuggets By cellur925
题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...
- 《windows核心编程系列》一谈谈windows中的错误处理机制
错误处理 我们写的函数会用返回值表示程序执行的正确与否,使用void,就意味着程序一定不会出错.Bool类型标识true时为真,false时为假.其他类型根据需要可以定义成不同意义. Windows除 ...
- hdu 4565 So Easy! (共轭构造+矩阵快速幂)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4565 题目大意: 给出a,b,n,m,求出的值, 解题思路: 因为题目中出现了开根号,和向上取整后求 ...
- DFS Codeforces Round #306 (Div. 2) B. Preparing Olympiad
题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream&g ...
- Application,Service,Activity 三者的Context的应用场景
Application 的 context 不是万能的,所以也不能随便乱用,对于有些地方则必须使用 Activity 的 Context, 对于Application,Service,Activity ...
- jmeter(十五)Jmeter默认报告优化
一.本文目的: 之前写了两篇文章搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)和ANT批量执行Jmeter脚本,功能实现上都没有什么问题,但是最后生成的报告有一点小问题,虽然不影响使 ...
- C. Dasha and Password 预处理 + dp
http://codeforces.com/contest/761/problem/C 对于每一个字符串,可以预处理出其到达数字,字母,和特殊符号所需的最小步数. 然后就是在n个东西中,选出数字.字母 ...
- windows系统下如何正确安装Cygwin(图文详解)
我的操作系统信息是 1.在官网https://cygwin.com/install.html下载win64位安装包 选择包的下载存放目录,点击“下一步” 为了使我们安装的Cygwin能够编译程序, ...
- [转]访问 OData 服务 (WCF Data Services)
本文转自:http://msdn.microsoft.com/zh-SG/library/dd728283(v=vs.103) WCF 数据服务 支持开放式数据协议 (OData) 将数据作为包含可通 ...