内容要求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
product_list = [
("苹果手机",5000),
("单车",300),
("手表",200),
("被子",100),
("杯子",150),
("笔记本电脑",6000)
]
#购物车,用于将商品加入
shop_list = []
salary = input("请输入你的工资")
if salary.isdigit():
salary = int(salary) #判断输入是否是数字,将输入字符转换为数字类型
#打印商品列表,使用enumerate方式更好,少了查询列表
while True:
for index,item in enumerate(product_list):
print(index,item)
'''for item in product_list: #打印商品列表
print(product_list.index(item),item)
'''
user_choice = input("请输入购买商品的编号>>>>")
if user_choice.isdigit():
user_choice = int(user_choice) #若输入字符为数字转换为数字
if user_choice < len(product_list) and user_choice >=0:
#获取选择的产品信息
p_item = product_list[user_choice]
if salary > p_item[1]:
#计算剩余金额
salary -=p_item[1]
shop_list.append(p_item)
#\033[31;1m \033[0m 红色字体
print("你增加了商品%s到购物车,剩余金额\033[31;1m%s\033[0m"%(p_item[0],salary))
else:
#\033[41;1m \033[0m 红色背景
print("\033[41;1m你的剩余金额为%s,不够买\033[0m"% salary)
#print("你购买了%s,剩余%s"%(item[1],salary))
else:
print("输入错误")
elif user_choice == "q":
print("--------购物清单--------")
for index,item in enumerate(shop_list):
print(index,item)
print("你的余额是:%s"% salary)
exit()
else:
print("输入错误")
else:
print("输入错误!")
优化后的代码:
'''
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒
4.课随时退出,退出时,打印已购买商品和余额
'''
product_list = [
("苹果手机",5800),
("单车",300),
("手表",200),
("Python书籍",120),
("笔记本电脑",4600),
("显示器",1100),
]
#购物车列表
shop_list = []
salary = input("输入你的工资")
#判断输入是否数字,若是,将输入字符转换为数字格式
if salary.isdigit():
salary = int(salary)
#利用循环,将商品列表打印出来
while True:
for index,item in enumerate(product_list):
print(index,item)
print("--------------------------------------")
user_choice = input("输入你购买的商品编号:")
#判断输入是否为数字编号,若是,将其转换为数字格式,若输入为q,则退出循环
if user_choice.isdigit():
user_choice = int(user_choice)
#判断用户输入商品编号是否超过商品列表数量
if user_choice < len(product_list) and user_choice >= 0:
#将购买的商品提取出来,加入到shop_list
p_item = product_list[user_choice]
if p_item[1]>salary:
#\33[41;1m \33[0m 背景红色
print("\33[41;1m你的钱不够,买毛线!\33[0m")
print("--------------------------------------")
else:
shop_list.append(p_item)
#商品购买,减少对应价格
salary -=p_item[1]
#\33[31;1m \33[0m 字体红色
print("你购买了%s,剩余价格\33[31;1m%s\33[0m"%(p_item[0],salary))
print("--------------------------------------")
else:
print("输入编号没有对应产品!请重新选择")
elif user_choice == 'q':
#打印购物车以及余额
print("---------shop_list-----------")
for index,item in enumerate(shop_list):
print(index,item)
print("你的余额是:%s"%salary)
exit()
else:
print("输入错误")
else:
print("输入错误")