# Auther:bentou
salary=input("salary:") #用户输入可供支付的预期
goods=[("iphone 11",1200),("coffee",24),("ipad",3700)] #商品列表
'''
和enumerate()方法的功能一样,打印index下标
while True:
for item in goods:
print(goods.index(item),item)
break
'''
shopping_car=[] #定义一个空列表,用来装需要放到购物车的商品
while True: #循环开始了
for index,item in enumerate(goods): #enumerate()方法的作用:打印下标
print(index,item) #每次循环都打印一下下标和商品
choice=input("选择要买吗:") #本意是让用户选择下标(序号),用户退出的时候显示一共多少钱,钱不够的时候显示余额不足
if choice.isdigit() : #当用户输入的值是0-9之间的阿拉伯数字
choice=int(choice) #强制转换成数字
if choice<len(goods) and choice>=0: #数字在食品列表范围内
p_item=goods[choice] #让p_item等于用户选的那个商品元素
if p_item[1]<= int(salary): #如果买得起,也就是售价之和小于工资
shopping_car.append(p_item) #就把这个商品加入提前定义的空列表
salary=int(salary)-p_item[1] #工资减去这个加购商品的价格
print("Added %s into car,your current balance is %s" %(p_item,salary)) #告诉客户加了什么到购物车以及余额是多少
else: #工资不够了,跳出循环
print("Not enough!")
break
else:#商品列表没有这个商品
print("no such goods")
elif choice=="q": #退出购物车了,告诉用户加了啥和余额多少
print("------shopping car-------")
for i in shopping_car:
print(i)
print("your current balance:",salary)
break
else: #输入不符规则
print("invalid")
salary:3000
0 ('iphone 11', 1200)
1 ('coffee', 24)
2 ('ipad', 3700)
选择要买吗:1
Added ('coffee', 24) into car,your current balance is 2976
0 ('iphone 11', 1200)
1 ('coffee', 24)
2 ('ipad', 3700)
选择要买吗:0
Added ('iphone 11', 1200) into car,your current balance is 1776
0 ('iphone 11', 1200)
1 ('coffee', 24)
2 ('ipad', 3700)
选择要买吗:q
------shopping car-------
('coffee', 24)
('iphone 11', 1200)
your current balance: 1776
本篇文章如有错的地方,欢迎在评论指正。喜欢在微信看技术文章,可以微信搜索「胡录乱影」,回复【Python】【前端基础】【vue开发】即可获得视频资源,回复【答辩PPT】【演讲PPT】即可获得超级实用PPT模板,还有更多资料,建议后台留言或者直接私信我。
另,如果觉得这本篇文章写得不错,有点东西的话,各位人才记得来个三连【点赞+关注+分享】。