Python-S13-day2
需求:
1.写一个购物小程序,用户开始先输入自己的工资,然后可以不断的买东西并加入购物车,如果钱不够了提示余额不足,用户中途可以选择查看自己购物车里面的商品,以及余额,
或者可以选择退出程序,退出时并打印已经购买的商品,和自己的余额;
思路:
1.启动程序提示用户输入工资,然后打印欢迎信息;
2.打印商品列表,用户根据商品列表下标来购买商品;
3.用户选择输入,商品的下标,退出程序,或者check购物车;
(1)商品下标 : 判断用户购买的商品是否存在,存在判断自己的钱是否够,如果钱够,把商品加入购物车,并剪掉所购买商品的钱,如果购买商品钱不够提示余额不足,并打印当前余额;
(2)退出程序:如果用户输入,q或者quit,则退出程序,并打印已经购买的商品及余额;
(3)check购物车:如果用户输入,c或者check,则列出当前已经购买的商品,以及当前余额;
主程序:
#!/usr/bin/python env #_*_coding:utf-8 _*_ salary = input("Your input salary:") if salary.isdigit(): salary = int(salary) else: print("Invalid data type.") #让用户输入工资,并判读输入的是否为数字,如果不是,则退出; welcome_msg = "welcome to shopping.".center(40,'-') print(welcome_msg) exit_flag = False #设置标志位,用于判读退出程序使用; product_list = [ ('Iphone',5888), ('IPad',3888), ('XiaoMi',888), ('Bike',900), ('Coffer',58), ('Tesla',588888), ] shop_car=[] #定义一个购物车,用户存放已经购买的商品; while exit_flag is not True: #判断上边定义的标志位,如果不是Ture则一直循环; 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,Or continue Buy num:") 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("shopping add %s list,b" "alance is %s."%(p_item,salary)) else: print("Balance is not %s"%salary) else: if user_choice == 'q' or user_choice == 'quit': for item in shop_car: print(item) #如果用户输入的q或者quit,则打印出已经购买的商品 print("shopping over.") print("Balance is %s"%salary) exit_flag = True #定义退出程序 elif user_choice == 'c' or user_choice == 'check': print("purchased products as below".center(40,'*')) for item in shop_car: print(item) print("check shoping....,Balance is %s"%salary)