思路
商品列表
账户金额
选择商品
加入购物车
退出结算
# product_list # 商品列表
# saving # 存款
# choice # 编码
# p_item # 取出商品名称
# shopping_car # 购买车
product_list = [
('Mate 20 pro',5300),
('Computer',7000),
('Robot',12000),
('Toy car',1200),
('Jacket',700)
]
shopping_car = []
saving = input('please input your money:') # 用户输入存款
if saving.isdigit(): # 判断是否为字符串类型
saving = int(saving) # 将字符串类型转换成整数类型
# for i in product_list:
# print(product_list.index(i),i)
# for i in enumerate(product_list, 1):
# print(i)
while True:
for i,v in enumerate(product_list,1): # 使用enumerate方法,加上索引号,从1开始打印
print(i,'>>>',v)
choice = input('请选择您需要购买的商品编号【退出:q】:') # 用户输入需要购买商品的骗号/退出
if choice.isdigit(): # 判断是否为字符串类型
choice = int(choice) # 将字符串类型转换成整数类型
if choice>0 and choice<=len(product_list): # 当用户输入的商品编号大于0,并且小于等于商品的编号
p_item = product_list[choice - 1] # 使用编码取出指定的商品
if p_item[1]<saving: # 取出商品的价格,和存款做比较,如何商品价格小于存款
saving -= p_item[1] # 那么使用存款减去商品价格
shopping_car.append(p_item) # 将选购的商品加入购买车
else: # 如果存款小于商品价格,打印余额不足
print('余额不足,还剩%s'%saving)
print(p_item)
else:
print('您选择的商品编码不存在')
elif choice == 'q':
print('---------您购买了如下商品---------')
for i in shopping_car:
print(i)
print('您还剩下金额%s元'%saving)
break
else:
print('invalid input')