• 购物程序练习


    import time
    
    #商品列表,采用列表嵌套元祖方式
    goods_list=[
        ('水杯',25),
    ('牙刷',15),
    ('手机',3500),
    ('耳机',100),
    ]
    
    #建立购物清单列表,备存购物清单
    shop_list=[]
    #输入工资总额
    money=input('请输入购物金额:')
    #判断输入的工资是不是由数字组成,如果是,转换为整数型,如果不是,打印出错了!
    
    if money.isdigit():
        money=int(money)
    
    #循环
        while True:
             #index及enumerate的使用,打印商品列表及序号
            for index,i in enumerate(goods_list):
                # 用户输入商品序号
                print(index,i)
                # 判断用户输入的是不是数字类型,如果是,转换为整数型
            usr_select = input('请输入您要购买商品序号:')
            if usr_select.isdigit():
                usr_select = int(usr_select)
                # 检测用户输入的数字是否小于商品列表及大于等于0
                if usr_select<len(goods_list)or usr_select>=0:
                    #定义用户选择的商品
                    select_goods=goods_list[usr_select]
                    #检测如果用户选择的商品,价格小于等于工资,判断为买的起
                    if select_goods[1]<=money:
                        # 向用户选择商品清单增加当前选择商品
                        shop_list.append(select_goods)
                        # 扣减当前购买商品的金额
                        money-=select_goods[1]
                        #打印购买当前商品成功,并显示当前余额
                        print('购买%s成功,您的余额为%d.'%(select_goods[0],money))
                    #如果当选择商品金额大于余额,则打印当前余额
                    elif select_goods[1]>money:
                        print('您的余额只有%d,快去赚钱!'%money)
                #如果输入的序号不存在,提示当前输入的序号错误,
                else:
                    print('您输入的序号%s,不存在!请重新输入'%usr_select)
                #如果用户输入Q 打印购物清单及余额,退出
            elif usr_select=='q':
                print('-----------购物清单-----------')
                for P in shop_list:
                    print(P)
                print('您的余额是%s'%money)
                print
                t=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                print(t)
                exit()
                #输入不是数字类型的,直接报错
    elif money.isalpha():
          print('您输入的不是数字!')

    知识点:

    1.判断变量类型:money.isdigit():    是不是数字型  or  money.isalpha  是不是字母型

    2.enumerate,在for中应用  

    enumerate(sequence, [start=0])
    >>>seq = ['one', 'two', 'three']
    >>> for i, element in enumerate(seq):
    ...     print i, seq[i]
    ... 
    0 one
    1 two
    2 three

    3.len 返回字符串,列表,元组,字典长度值 从0计。

    4.append 向列表 字典中增加值,位置在最后

    5.打印清单,使用for    

    for i in shop_list
        print(i)

    可以将清单中内容打印出来

    6.导入time模块  获取当前时间为:tim.strftime("%Y-%m-%d %H:%M:%S",time.localtime)

    百分号后注意大小写

    7.退出可以用exit()

    总结:第一次写代码,按示例  先标明注释,再删掉代码,全部自己写,还是出现很多问题:

  • 相关阅读:
    jenkins任务
    追涨手段
    识别上升浪中的假反弹假阻力
    上升浪的判断
    点位超过10的上涨高位转折点
    纯碱下跌巨幅捕捉
    纯碱规律
    玉米
    iOS基础之界面通信
    iOS基础之UINavigationController(导航视图控制器)
  • 原文地址:https://www.cnblogs.com/skbarcode/p/8094505.html
Copyright © 2020-2023  润新知