KillPython  

1.要求

  1. 写一个python购物车可以输入用户初始化金额
  2. 可以打印商品,且用户输入编号,即可购买商品
  3. 购物时计算用户余额,是否可以购买物品
  4. 退出结算时打印购物小票

 2.流程图

3.代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author Kevin Liu

salary = input("输入工资额:")
if salary.isdigit():              #判断输入是不是整数
    salary = int(salary)
else:
    exit("输入数字!")
print("欢迎光临!".center(50,"-"))

exit_flag = True       #循环控制
product_list = [         #商品列表
    ('IPhone',6600),
    ('MAC Pro',8000),
    ('MAC Ari',7000),
    ('Xiao Mi 5',1999),
    ('OPPO R9S',2799),
    ('Coffee',35),
    ('Tesla',870000),
    ('BMW 330Lim',340000),
    ('Giant',2400),
    ('CK 内裤',240),
]
shop_cart = []           #购物车列表,初始为空
while exit_flag is True:
    print("商品列表".center(60,"-"))
    for item in enumerate(product_list):
        index = item[0]
        product_name = item[1][0]
        product_price = item[1][1]
        print(index,'.',product_name,product_price)
    user_choice = input("[q=quit,c=check]你想买啥?")
    if user_choice.isdigit():        #判断用户输入是不是数字
        user_choice = int(user_choice)
        if user_choice < len(product_list):     #输入不能超过商品列表的额长度
            product_item = product_list[user_choice]     #用户选中商品
            if product_item[1] <= salary:           #预算充足,可以买
                shop_cart.append(product_item)     #商品加入购物车
                salary -= product_item[1]          #预算减去已选商品
                print("[%s]已经加入购物车,当前余额还有\033[31;1m[%s]\033[0m" % (product_item,salary))  #\033[31;1m \033[0m 这个写法是把字符串调成绿色
            else:
                print("当前余额还剩%s,不能买了!" %(salary))
    else:
        if user_choice == 'q' or user_choice == 'quit':    #退出购物车,不再购买,输出已经购买列表,输出余额还有多少,退出循环
            print("购物车中的商品有".center(60,'*'))
            for item in shop_cart:
                print(item)
            print("End".center(60,'*'))
            print("余额还有%s" % salary)
            print("拜拜!")
            exit_flag = False
        elif user_choice == 'c' or user_choice == 'check':    #查看已经购买的商品列表,并输出余额
            print("购物车中的商品有".center(60,'*'))
            for item in shop_cart:
                print(item)
            print("End".center(60,'*'))
            print("余额还有\033[31;1m[%s]\033[0m" % salary)

  

posted on 2017-02-14 14:03  KillPython  阅读(170)  评论(0编辑  收藏  举报