python实现购物车买商品不超过10000元的多种商品组合_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("你输入的是什么鬼?")

运行程序结果为:

1122835-20170330165208758-722636288.png

1122835-20170330165231539-1622521162.png

1122835-20170330165257695-475905722.png

1122835-20170330165312477-434007466.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值