json/pickle,time/datatime,random

模块导入

  解决循环导入的方法:

    1.名字放在倒入之前

    2.将导入放在函数之内

1.包

  包的导入分为:绝对导入(根式包的顶级目录)和相对导入(只能用在包内部,.代表本层,..代表上层)

  什么是包? 包就是一个含有__init__.py 文件的文件夹

       导包就是导入__init__.py 文件

2.模块使用

   json和pickle (序列化)

    1.什么是序列化

      将内存中的数据类型转换成另外一种格式

      将字典转换为其他格式存入到硬盘中->>序列化

      从硬盘中读出其他格式反序列化得到字典 ->>反序列化

    2.为什么要序列化

      1.持久保存程序的运行状态

      2.数据跨平台交互

    3.如何序列化

      json   ->>json格式不能识别单引号,全部为双引号

        import json

        #序列化

        dic ={'k1':True,'k2':10,'k3':'egon'}

        dic_json = json.dumps(dic)

        #持久化

        with open('a.json','wt',encoding='utf-8') as f:

          f.write(dic_json) #///json.dump(dic,f)
                json

        优点:是一种通用格式,所有编程语言都能识别
                  缺点:不能识别所有python类型
              pickle
                  优点:能识别所有python类型
                  缺点:只能被python语言识别

        import pickle

        #序列化

        dic ={'k1':True,'k2':10,'k3':'egon'}

        dic_pkl = pickle.loads(dic)

        #持久化

        with open('b.pkl','rt',encoding='utf-8') as f:

          f.loads(dic_json) #///pickle.load(f)

     time与datatime模块

       时间分为三个格式

        1.时间戳   time.time()

        2.格式字符串  time.strftime(%Y-%m-%d %H:%M:%S %p)

        3.结构化时间对象  time.localtime().tm_hour   获取本地时间,只取小时

                  time.localtime().tm_wday  获取本地时间,判断是本周第几天,从                  0开始计算

                  time.localtime().tm_yday  一年中的第几天

                  time.getime()  获取gmt+8时间

        #time 模块 时间转换
        # 时间戳---->struct_time------->格式化的字符串
        # struct_time=time.localtime(123123)  
        # print(struct_time)
        # print(time.strftime('%Y-%m-%d',struct_time))

        # 格式化的字符串---->struct_time------->时间戳
        # struct_time=time.strptime('2017-03-11','%Y-%m-%d')
        # print(struct_time)
        # print(time.mktime(struct_time))

      datetime

        获取时间格式   datetime.datetime.now()  %Y-%m-%d'格式

        将时间戳直接转换为 %Y-%m-%d'格式  datetime.datetime.formtimestamp(时间戳)

        时间运算  datetime.datetime.new() + datetime.datetime.timedelta()

     random 随机模块

        random.random()    只能在0,1之间取值,取不到0和1

        random.randint(1,3)   在1和3之间取整数

        random.randrange(1,3) 在1和三之间取值取不到3 但是可以取到1

        random.uniform(1,3)   在1和3之间取小数

        random.choice([1,'a','c'])   多选1

        random.sample([1,'a','c'],2)   多选多

        random.shuffle()   乱序排列

      

posted @ 2018-12-05 15:40  yyf1  阅读(150)  评论(0编辑  收藏  举报