13、Demo
知识点:流程控制(while)、列表、元组基本操作等
购物车程序:
要求:
<1>提示用户输入账户余额
<2>输出商品的名称和价格供顾客选择
<3>判断用户账户余额还能否继续购买商品
<4>用户退出程序后,输出所购买的商品
#创建商品列表
Goods_list = [
('MobilePhone',5000),
('Book',80),
('Bike',500),
('Computer',5400)
]#列表中的元素为元组类型
#创建一个空列表,用于存放已购买的商品
shopping_car = []
flag = True
#print(Goods_list[1][1])
#提示用户输入账户金额
while (flag):
money = input("请输入您账户的金额:")
#print(money)
#print(type(money))变量 money 的类型是 <class 'str'>
# #判断用户输入的金额是否合法
if money.isdigit():
money = int(money)#改变 变量 money的类型为int型
# print(type(money))#变量 money 的类型是 <class 'int'>
##把商品列表中的商品输出
while(flag):
for i,v in enumerate(Goods_list):
print(i,'>>',v)
#提示用户输入想要购买的商品
selection = input('请输入需要购买的商品编号[退出:Q]')
#print(selection)
#判断用户的输入是否合法
if selection.isdigit():
selection = int(selection)
#判断用户输入的商品编号是否存在
if selection >= 0 and selection < len(Goods_list):
#取出用户购买的商品
Goods = Goods_list[selection]
print('您购买的商品已加入购物车',Goods)
#获取购买商品的价格
price_item = Goods[1]
#余额
if price_item <= money:
money -= price_item
shopping_car.append(Goods)
print('您账户中还剩%s元'%money)
if money == 0:
flag = False
else:
print('余额不足,无法购买此商品,请选择其他可购买商品!您账户中还剩%s元'%money)
else:
print('您输入的商品编号不存在')
elif selection == 'Q':
print('您已退出购物车程序')
flag = False
else:
print("您输入的字符不合法,请重新输入商品的编号!")
else:
print("您输入的金额不合法,请重新输入")
else:
print('--------您购买的商品:----------')
for i in shopping_car:
print(i)
print('您账户中还剩%s元' % money)