#!/usr/bin/env python# -*- coding:utf-8 -*-'''需求:用户启动时先输入工资用户启动程序后打印商品列表允许用户选择购买商品允许用户不断的购买各种商品购买时检测余额是否够,如果够直接扣款,否则打印余额不足允许用户主动退出程序,退出时打印已购商品列表'''salary = input("Input your salary:")if salary.isdigit(): salary = int(salary)else: exit("Invalid data type...")welcome_msg = 'Welcome to Bruce Shopping mall'.center(56,'-')print(welcome_msg)product_list = [ ('Iphone',5999), ('Camaro',520000), ('Computer',4500), ('Meizu pro7',18.8), ('Mac pro',8900)]shop_car = []exit_flag = False#设置flag标识,方便后面跳出循环while exit_flag is not True: #for product_item in product_list: # p_name,p_price = product_item print("product list".center(56,'-') ) for item in enumerate(product_list):#枚举函数,获取列表的索引并返回下标加元素按序组成的元组 index = item[0] p_name = item[1][0] p_price = item[1][1] print(index,'.',p_name,p_price) user_choice = input("[q=quit,c=check]What do you want to buy?:") if user_choice.isdigit():#肯定是选择商品 user_choice = int(user_choice) if user_choice len(product_list):#判断是否是商品清单中的序号 p_item = product_list[user_choice] if p_item[1]= salary:#买得起 shop_car.append(p_item)#放入购物车 salary -= p_item[1]#扣款 print("Added [%s] into shop car,your current balance is " " 33[31;1m[%s] 33[0m"%(p_item,salary) )#输出的信息加色 else: print("Your balance is [%s], cannot afford this..."%salary) else: if user_choice == 'q' or user_choice == 'quit': print("Purchased products as below".center(40,'*')) for item in shop_car: print(item) print("END".center(40,'*')) print('Your balance is [%s]'%salary) print("Bye") exit_flag = True#跳出while循环 elif user_choice == 'c' or user_choice == 'check': print("Purchased products as below".center(40,'*')) for item in shop_car: print(item) print("END".center(40,'*')) print('Your balance is 33[41;1m[%s] 33[0m'%salary)#输出的信息加色