python实现购物车买商品不超过10000元的多种商品组合_Python练习+购物车小案例

购买车功能要求及分析

1、首页揭示用户输入自己的工资额。(判断输入的是否整数)

2、列出商品,商品参数为:序号、商品名称、商品价格

3、用户输入要购买的商品(输入序号,判断输入是否整数)

4、如果是整数,判断用户输入的序号是否有商品。并加入购物车内

5、如果有,判断用户的工资是否买得起该商品,

6、如果买得起,进行扣除工资,并打印出该 商品,并揭示余额

7、如果继续购物,那循环上面的操作。

8、如果余额不足,揭示余额不足并打印所购买过的商品。

9、用户在操作过程中,输入Q随时退出,并打印所购买过的商品。

# Author:aqwz\

Commodity_list = [

("Iphone",5800),

("DELL Pc",4500),

("Sony Video",35000),

("Roborock S50",2300),

("Tcl 40A860U",1999),

("Casio",5000),

("Fujifilm mini8",800),

("Apple Watch",2400),

]#以上商品列表

shopping_list = []#商品购物车

Salary = input("Please enter the salary:")#要求用户输入工资

if Salary.isdigit():#判断工资是否为整数

Salary = int(Salary)#转换为整数

while True:#循环开始

# for item in Commodity_list: #方案一,循环打印商品列表

# print(Commodity_list.index(item),item)#方案一,打印列表并取出序号下标

for index,item in enumerate(Commodity_list):#方案二,循环打印商品列表,index是下标

print(index,item)#方案二,打印列表并取出序号下标

user_choice = input("Please choice Commodity Number:")#请用户输入商品编号

if user_choice.isdigit():#这地方也需要判断输入的编号为整数

user_choice = int(user_choice)#转换为整数

if user_choice < len(Commodity_list) and user_choice >= 0:#判断用户输入的编号在系统库中都存在的

p_item = Commodity_list[user_choice]#取出商品列表,取出了两位,一个是名称,一个是价格

if p_item[1] <= Salary:#判断商品价格小于等于工资

shopping_list.append(p_item)#加入购物车

Salary -= p_item[1] #工资减商品价格

print("Added \033[31;1m%s\033[0m into shopping cart,your current balance is \033[31;1m%s\033[0m"%(p_item,Salary))

else:

print("Insufficient account balance \033[31;1m%s\033[0m. Please refill it."%Salary)#打印余额不足揭示并告知工资额度

else:

print("The number of goods you entered was no,\033[42;1m%s\033[0m"%user_choice)#继24行判断如果用户输入没有的商品提示

elif user_choice == 'q':#继22行判断,在循环中随时可以退出,并打印购物车商品并告知工资。

print("------shopping list------")

for p in shopping_list:

print(p)

print("Your current balance %s"%Salary)

exit()

else:

print("invalid option")#如果整数以外的提示错误

else:

print("Your input 《%s》 invalid"%Salary)#继14行判断不是整数提示错误,并打印出用户输入的数据

总结:犯了几个低级错误,这几个问题找半天才找到

1、取列表p_item = Commodity_list[user_choice]我把[]写成了()

2、列表里的价格我写时用了"",这样在后面计算价格时变成了字符串,

3、就是格式问题,代码前不能多空格也不能少,很严谨的代码格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值