Python-S13-day2-之购物车

                        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)

Readme:

流程图:


原文地址:https://www.cnblogs.com/tangshengwei/p/5622712.html