1.跳出多重循环
else在while和for正常循环完成之后执行,和直接写在while和for之后没有区别,如果使用break结束循环后,else后的代码就不会执行了。
购物车程序
多级菜单
- 三级菜单
- 可依次选择进入各子菜单
- 所需新知识点:列表、字典
升级版
#用户退出购物车程序后,按照指定的输出格式输出列表
product_list = [['Iphone7',5800],
['Coffee',30],
['疙瘩汤',10],
['Book ',99],
['Bike ',199],
['ViVo X9',2499],
]
shopping_cart = []
salary = int(input("欢迎来到购物车程序,input your salary:"))
while True:
num =0
for product in product_list:
print(num, product)
num += 1
choice = input("请输入商品列表,按q退出").strip()
if choice.isdigit():
choice = int(choice)
if choice >= 0 and choice < len(product_list):
product = product_list[choice]
if salary >= product[1]:
shopping_cart.append(product)
salary -= product[1]
print("购买成功" + product[0]+"您还剩"+str(salary))
else:
print("买不起,您还差" + str(product[1]-salary))
else:
print('商品不存在')
elif choice == 'q':
print("-------------您已购买如下商品--------------")
print("id 商品 数量 单价 总价")
n = 1
sum = 0
new_products = []
for i in shopping_cart:
if i not in new_products:
new_products.append(i) #去除购物车中重复的商品,添加到新列表
sum += i[1] #计算商品总价
for j in new_products: #去除新商品列表中的商品,在购物车中统计他的数量,总价用购物车中数量和单价相乘
print(n, ' ', j[0], ' ', shopping_cart.count(j), ' ', j[1], ' ', shopping_cart.count(j)*j[1])
n +=1
print("总计价格:"+str(sum)+" 余额:"+str(salary))
print("-----------------END---------------------")
break
else:
print("无效选项,请重新输入")
shopping_cart.clear()