• 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:

    流程图:


  • 相关阅读:
    函数式 js 接口实现原理,以及 lodash/fp 模块
    谈谈混合 App Web 资源的打包与增量更新
    如何实现 javascript “同步”调用 app 代码
    如何发布带静态资源的库——android 篇
    [老文章搬家] 关于屏蔽优酷视频广告的一个方法
    [老文章搬家] 关于 Huffman 编码
    [老文章搬家] 插件化软件设计的头疼问题以及可能的解决思路
    [老文章搬家] [翻译] 深入解析win32 crt 调试堆
    Qt 5.0+ 中 connect 新语法与重载函数不兼容问题的解决方法,以及个人看法
    武佩奇 DJango博客地址
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/5622712.html
Copyright © 2020-2023  润新知