"""
需求:
①客户输入目前拥有资金
②跳出商品列表
③客户选择商铺目录中的商品
④根据客户手头资金以及商品价格判断客户是否可以购买
⑤可以购买则添加至购物车,并计算出客户剩余资金
⑥不可以购买则提示客户还缺多少资金
⑦客户结束购物后提示客户选择了哪些商品以及对应商品的价格,并且计算出总价格以及客户剩余资金
"""
goods_list = [
["bike", 1200],
["pen ", 845], # pen后面+一个空格,是因为\t 是补全(8-前面字符的位数%8)的距离,也就是说前面有1个字符那么在1个字符后输出一个\t,则\t的长度为7个字符长度
["pants", 800],
["shoe", 1399],
["iphone", 9100]
]
goods_choice = []
input_correct_of_salary = False
customer_choice_continue = False
while not input_correct_of_salary:
salary = input("剩余资金:")
if salary.isdigit():
salary = int(salary)
print('''
--------- Goods List ----------
序号\t\t\t商品名称\t\t\t价格
''')
for index_goods in range(goods_list.index(goods_list[-1])+1):
print('''
%d\t\t\t%s\t\t\t%d
''' % (index_goods+1, goods_list[index_goods][0], goods_list[index_goods][1]))
print('''
------ 结束购物请输入quit -------
''')
while not customer_choice_continue:
customer_choice = input("退出或输入商铺编号:") # 暂不考虑客户输入是否符合要求,默认输入正确
if customer_choice == "quit":
print('''
你购买了以下商品
-------- Good Choice -------
序号\t\t商品名称\t\t价格
''')
for index_goods in range(goods_choice.index(goods_choice[-1]) + 1):
print('''
%d\t\t%s\t\t%d
''' % (index_goods + 1, goods_choice[index_goods][0], goods_choice[index_goods][1]))
break
elif salary >= goods_list[int(customer_choice) - 1][1]:
goods_choice.append(goods_list[int(customer_choice)-1])
salary = salary - goods_list[int(customer_choice)-1][1]
print("已将商品%s添加至购物车,目前剩余资金%d" % (goods_list[int(customer_choice)-1][0], salary))
else:
print("你目前资金离购买该商品还差%d" % (goods_list[int(customer_choice)-1][1]-salary))
# 如果客户资金比任何商品价格都小,则提示客户的资金已不足以购买任何商品
input_correct_of_salary = True
else:
print("请正确输入")
print("欢迎下次光临")