购买车功能要求及分析
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、就是格式问题,代码前不能多空格也不能少,很严谨的代码格式