购物车升级版来了

昨天将写的购物车程序放上去了,今天想了想,程序的健壮性和功能还不是很好,界面也不行,突然看到一个外卖单子,哈哈,灵感来了,界面就学这个了,不多说直接上图。

先给大家看看图,让大家有兴趣看下去,这个界面是不是比昨天的好看多了。这里非常值得一提的是今天用到了嵌套列表,如果需要加商品可以直接在product_list中添加就可以,这样健壮性一下提升了很多。哈哈。。。活不多说接下来直接上代码。

#__author__: stone
#__date__: 7/1/2018
import time

product_list = [
('Mac', 9000),
('iphone6s', 5800),
('kindle', 800),
('tesla', 900000),
('coffee', 32),
('python book', 105),
('bike', 2000),
]

shopping_car = []
spend_money = 0

print('欢迎来到stone购物中心,有如下商品供您购买:')
print('-----------------------------------------------')
for i, v in enumerate(product_list,1):
print(i, v)
print('-----------------------------------------------')
print('请输入您需要购买的商品编号,比如想购买Mac,请输入1,[退出:q]')
print('')

saving = input('please input your saving:')

while saving.isdigit() == False:
saving = input('incorrect input,please input your saving again:')
else:
saving = int(saving)

while True:
#引导用户选择商品
choice = input("请选择购买商品编号[退出:q]:")

#验证输入是否合法
if choice.isdigit():
choice = int(choice)
if choice > 0 and choice <= len(product_list):
#将用户选择商品通过choice取出来
p_item = product_list[choice-1]

#如果钱够,用本金saving减去该商品价格,并将该商品加入购物车
if p_item[1] < saving:
saving -= p_item[1]
for i in shopping_car: #[[('bike', 2000), 3], [('Mac', 9000), 1]]
if i[0] == p_item:
i[1] += 1
break
else:
shopping_car.append([p_item, 1])

spend_money += p_item[1]

print('您已购买', p_item, ',可以通过输入c查看购买商品。')
print('')
else:
print('余额不足,还剩%s元。' % saving)
print('')
else:
print('输入错误,请重新输入!')
print('')
elif choice == 'q':
#循环遍历购物车里面的商品,购物车存放的是已买商品
print('您于%s已经购买如下商品:' % (time.strftime("%Y/%m/%d %H:%M:%S")))
print('-----------------------------------------------')
print('%-16s%4s%12s' % ('商品名称', '商品个数', '总价'))
for i in shopping_car:
print('%-16s%10s%s%10s%-6s' % (i[0][0], 'X', i[1], '¥', i[0][1] * i[1]))
print('-----------------------------------------------')
print('您本次消费:¥%-6d'% spend_money)
print('您的余额为:¥%-6d'% saving)
print('欢迎下次光临,谢谢惠顾!')
print('')
break
elif choice == 'c':
print('您于%s已经购买如下商品:' % (time.strftime("%Y/%m/%d %H:%M:%S")))
print('-----------------------------------------------')
print('%-16s%4s%12s' % ('商品名称', '商品个数', '总价'))
for i in shopping_car:
print('%-16s%10s%s%10s%-6s' % (i[0][0], 'X', i[1], '¥', i[0][1] * i[1]))
print('-----------------------------------------------')
print('您本次消费:¥%-6d' % spend_money)
print('')
else:
print('invalid input')

整个代码不算特别长,里面很多注释都很清楚,如果还有什么不清楚的地方,可以在下方留言,或者qq私信我,我的qq邮箱为[email protected],大家有更好的方法也可以一同探讨。

猜你喜欢

转载自www.cnblogs.com/stone-wei/p/9251839.html