zoukankan      html  css  js  c++  java
  • 模块详解

    什么是模块?

      常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

      1.使用python编写的代码(.py文件)

      2.已被编译为共享库或DLL的C 或者C++扩展

      3. 包好一组模块的包

      4. 使用C编写并链接到python解释器的内置模块

    常用模块

    collections模块

    在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

    1.namedtuple: 生成可以使用名字来访问元素内容的tuple

    2.deque: 双端队列,可以快速的从另外一侧追加和推出对象

    3.Counter: 计数器,主要用来计数

    4.OrderedDict: 有序字典

    5.defaultdict: 带有默认值的字典

    这个只需了解一下就行了,不用深究

    python3.6+版本字典开始变得有序

     

    时间模块

    推迟运行

      time.sleep()

    时间戳

      time.time()

    结构化时间

      time.asctime()   如果不传参数,直接返回当前那时间的格式化串

    时间戳 --> 结构化时间

      time.gmtime(时间戳)    time.localtime (时间戳)

    结构化时间 --> 时间戳

      time.mktime(结构化时间) 

    结构化时间 --> 字符串时间

      time.strftime('格式定义','结构化时间')   结构化时间参数若不传,则显示当前时间 

    字符串时间 --> 结构化时间

      time.strptime('时间字符串,字符串对应格式')

      time.strptime ('2018-08-08','%Y-%m-%d')

    索引(Index) 属性(Attribute) 值(Values)
    0 tm_year(年) 比如2018
    1 tm_mon(月) 1-12
    2 tm_mday(日) 1-31
    3 tm_hour(时) 0-23
    4 tm_min(分) 0-59
    5 tm_sec(秒) 0-60
    6 tm_wday(weekday) 0 - 6(0表示周一)
    7 tm_yday(一年中的第几天) 1-366
    8 tm_isdst(是否是夏令时) 默认为0


    时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

     几种格式之间的转化

     计算时间差

     random模块

    import random

    随机数: 在某个范围内取到每一个值的概率是相同的

    随机小数

      1. 0-1之内的随机小数  random.random() 这个表示0-1之间的随机小数

      2. 1-5之间的随机小数  random.unifrom(1-5) 

    随机整数

      random.randint(1,2) 1-2之间的随机整数 [1-2]范围内随机取

      random.randrange(1,2) 不包含2在内的随机整数

      random.randrange(1,10,2) 1-10 之间随机取奇数 

    随机抽取

      l = [1,2,3,'aaa',('wahaha','qqxing ')]

      random.choice(l)   choice 随机抽取一个值

      random.sample(1,10) 随机抽取多个值

    打乱顺序

      lst = [1,2,3,'aaa',('wahaha','qqxing ')]

      random.shuffle(lst)

      print(lst)   在原列表的基础上做乱序; 只能操作列表

      

    序列化模块

    什么叫做序列化 ----- 将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化

    序列化的目的

    1. 以某种存储形式使自定义对象持久化

    2. 将对象从一个地方传递到另一个地方

    3. 使程序更具维护性

    json

    json.dumps ()

    dic = {'k1':'v1','k2':'v2','k3':'v3'}

    str_dic = json.dumps(dic)

     序列化: 将一个字典转换成一个字符串

    print(type(str_dic),str_dic)

     json转换完成的字符串类型的字典中的字符串是由" " (双引号)表示

     

     json.loads()

    dic = {'k1':'v1','k2':'v2','k3':'v3'}

    dic2 = json.loads(str_dic)

    print(dic2)

    反序列化: 将一个字符串格式的字典转化成一个字典

    用json的loads功能处理的字符串类型的字典中的字符串必须由""表示

     

    # f = open('json_file','w')
    # dic = {'k1':'v1','k2':'v2','k3':'v3'}
    # json.dump(dic,f)
    # f.close()
    '''dump 方法接收一个文件句柄,直接将字典转换成json字符串写入文件'''

     

    # f = open('json_file')
    # dic2 = json.load(f)
    # f.close()
    # print(dic2)
    '''load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回'''

     

  • 相关阅读:
    rake db:migrate学会的一些tips
    不提拔你,就因为你只想把工作做好
    jira4r:使用Ruby操作JIRA
    <当下的力量>读书笔记
    Your template was not saved as valid UTF8. 解决方法
    lxml.etree 教程3:Elements carry attributes as a dict
    Ruby目录及文件操作
    体验最火的敏捷SCRUM!(网络直播课程 免费)
    UMLonline技术沙龙:体验一把SCRUM(20121027 广州 免费)
    视频分享:挨踢项目求生法则(1)——团队建设篇
  • 原文地址:https://www.cnblogs.com/ALADL/p/9445054.html
Copyright © 2011-2022 走看看