Python 练习 - 购物车
功能说明:
1.用户输入总资产例如:2000
2. 显示商品列表,让用户根据序号选择商品,加入购物车
3.购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
使用说明:
1.输入账户金额,验证输入的是合法数字。
2.输入商编号,或者输入q退出。
3.可以输入多次商品。
4.输入q,将计算出账户金额,是否可以购买选择的商品,如果购买计算出总共花了多少钱,如果不够显示还差多少钱并退出
代码:
#!/usr/bin/Python
# -*- coding:utf-8 -*-
#商品列表
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
#输入总资产,
while True:
zhanghu = input("请输入总资产")#输入金额
if zhanghu.isdigit() == True and int(zhanghu) > 0:#判断输入的内容必须是数字以及大于0
break
else:
print("请输入正确金额!")
print("-----------------------------")
num = 0#声明z变量
for i in goods:#遍历输出所以商品带编号
print("编号%d:"%num,i["name"],i["price"])
num+=1
shops = {}#证明字典用于存放购买的商品
shop_item = 0
while True:#循环器
shop_num = input("请输入商编号,或者输入q退出")#1.输入编号或输入q退出结账
if shop_num.lower() == "quit":#2.判断输入的内容如果输入是q(不管是大写或者小写)break退出while循环
break#
if shop_num.isdigit() == True:# 3.如果输入的是数字判断是否小于goods列表的长度
c = int(shop_num)
if c < len(goods):#如果小于goods字典的长度有效
k = goods[c]["name"]#将输入的下标转换成商品名称
if k in shops.keys():#如果此商品在shops字典的keys中存在,num增加一个
shops[goods[c]["name"]]['num']+=1#
else:#如果item["name"]不存在shop集合中,创建一个集合,ite["price"]是金额
shops[k] = {"num":1,"money":goods[c]["price"]}
else:
print("请输入合法编号")
else:
print("请输入合法编号")
total_money = 0#总金额
for k,v in shops.items():#遍历shops字典
total_money += (v["money"] * v["num"])#总金额=(金额*数量)+总金额
if total_money <= int(zhanghu):#如果总金额小于等于账户金额
print("购物成功共消费:%s元"% total_money)
print("购物清单%s"%shops)
else:
y = total_money - int(zhanghu)
print("余额不足还差:%s元"%y)