zoukankan      html  css  js  c++  java
  • 常用模块

    常用模块

    collections模块

    • 在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。
      1. namedtuple: 生成可以使用名字来访问元素内容的tuple
      2. deque: 双端队列,可以快速的从另外一侧追加和推出对象
      3. Counter: 计数器,主要用来计数
      4. OrderedDict: 有序字典
      5. defaultdict: 带有默认值的字典

    namedtuple

    • 生成可以使用名字来访问元素内容的tuple

        from collections import namedtuple
        Point = namedtuple('Point', ['x', 'y'])
        p = Point(2, 3)
        print(p.x)
        print(p.y)
        print(p[0])
        print(p[1])
        #结果
        2
        3
        2
        3
      

    deque

    堆栈和队列了解

    1. 堆栈
      • 先进后出
    2. 队列
      • 先进先出

          import queue
          q = queue.Queue()
          q.put(9)	#放进去9
          q.put(10)	#放进去10
          q.put(11)	#放进去11
          q.get()	#取出9
          q.get()	#取出10
          q.get()	#取出11
          q.get()	#队列阻塞
        

    双端队列

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

    • deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈

        from collections import deque
        q = deque(['a', 'b', 'c'])
        q.append('e')	#在列表的后方添加'e'
        q.appendleft('1')	#在列表的左边添加'1'
        q.pop()	#从列表的后方拿出'e'
        q.popleft()	#从列表的前方拿出'1'
        q.insert(2, 'f')	#向列表 index=2 处插入'f'
      

    OrderedDict

    • 有序字典

        from collections import OrderedDict
        # 创建一个无序的字典
        ## 常规方法
        dic1 = {'k1':'value1', 'k2':'value2', 'k3':'value3'}
        ## 另外一种方法
        dic2 = dict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
        # 创建有序字典 -创建的字典会保持创建时key的顺序排列
        dic3 = OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
      

    defaultdict

    • 带有默认值的字典

        from cellections import defaultdict
        #创建一个没有默认值的空字典
        dic1 = {}
        #尝试调用空字典不存在的key
        dic1['key']	#将会报错
        #创建一个含有默认值的空字典
        dic2 = defaultdict(list/set/dict/lambda : x)	#传入的参数必须是可调用的,不能是字符串或者数字
        dic2['key']	#key不存在,但会默认返回一个空列表
      

    时间模块

    • 和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。

    常用方法

    • time.sleep(secs)让线程休息secs秒

    • time.time() 获得时间戳

      • 给计算机看的时间float类型
      • 时间戳表示的是从1970年1月1日08:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
    • time.strftime()格式化的时间字符串

        %y 两位数的年份表示(00-99)
        %Y 四位数的年份表示(000-9999)
        %m 月份(01-12)
        %d 月内中的一天(0-31)
        %H 24小时制小时数(0-23)
        %I 12小时制小时数(01-12)
        %M 分钟数(00=59)
        %S 秒(00-59)
        %a 本地简化星期名称
        %A 本地完整星期名称
        %b 本地简化的月份名称
        %B 本地完整的月份名称
        %c 本地相应的日期表示和时间表示
        %j 年内的一天(001-366)
        %p 本地A.M.或P.M.的等价符
        %U 一年中的星期数(00-53)星期天为星期的开始
        %w 星期(0-6),星期天为星期的开始
        %W 一年中的星期数(00-53)星期一为星期的开始
        %x 本地相应的日期表示
        %X 本地相应的时间表示
        %Z 当前时区的名称
        %% %号本身
      
      • 格式化时间

          #导入时间模块
          import time
          time.strftime('%Y-%m-%d %H:%M:%S')
          #输出的结果
          2018-10-01 12:30:00
        
    • time.localtime()结构化时间

      • 元组,计算用的

      • 调用元组中元素的名字获取元组中数据(联系可命名元组)

          tm_yeat 	年
          tm_mon	 	月
          tm_mday	日
          tm_hour	小时
          tm_min		分
          tm_sec		秒
          tm_wday	周几
          tm_yday	一年中第几天
          tm_isdst	是否是夏令时(默认否 tm_isdst=0)
        

    时间类型间的转换

    1. 时间戳<-->结构化时间<-->格式化字符串时间

    • 时间戳<-->结构化时间

        import time
        #时间戳-->结构化时间
        t = time.time()
        time.localtime(t)	#当地时间,参数t可以不传,默认打印当前时间的结构化时间
        time.gmtime(t)	#转换成伦敦时间
        
        #结构化时间-->时间戳
        t = time.localtime()	#获取当前时间的结构化时间
        time.mktime(t)	#结果是个时间戳
      
    • 格式化字符串时间<-->结构化时间

        import	time
        #格式化字符串时间-->结构化时间
        time.strptime('2018-10.2', '%Y-%m.%d')	#获得元组类型的格式化时间
        #结构化时间-->格式化字符串时间	
        t1 = time.localtime() 
        time.strftime('%Y/%m/%d %H:%M:$S', t1)	#传入两个参数,格式和结构化时间
      

    2. 格式化时间-->字符串结构化时间<--时间戳

    • 格式化时间-->字符串结构化时间

        import time
        t1 = time.localtime()
        time.asctime(t1)	#得到格式化字符串时间,参数可以不传,默认参数time.time()	
      
    • 时间戳-->格式化字符串时间

        import time
        t1 = time.time()
        time.ctime(t1)	#得到格式化字符串时间,参数可以不传,默认参数time.time()	
      

    作业

    1. 计算2017-09-11 08:30:00和2017-09-12 11:00:00之间的时间差,差了年月日时分秒

    random模块

    • random.random()
      • 产生0-1之间的小数
    • random.randint(n, m)
      • 产生(n, m]区间的整数
    • random.range(n, m, step)
      • 产生(n, m)步长为step的随机整数
    • random.choise(['x', 'y', 'z'])
      • 随机在'x', 'y', 'z'三个元素中返回一个元素
    • random.sample(['x', 'y', 'z'], n)
      • 随机在'x', 'y', 'z'三个元素中返回n个元素
    • random.shuffe(item)
      • 随机打乱次序

    os模块

    • os模块是与操作系统交互的一个接口

        os.makedirs('dirname1/dirname2')    可生成多层递归目录
        os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
        os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
        os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
        os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
        os.remove()  删除一个文件
        os.rename("oldname","newname")  重命名文件/目录
        os.stat('path/filename')  获取文件/目录信息
        
        os.system("bash command")  运行shell命令,直接显示
        os.popen("bash command).read()  运行shell命令,获取执行结果
        os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
        os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
        
        
        os.path
        os.path.abspath(path) 返回path规范化的绝对路径
        os.path.split(path) 将path分割成目录和文件名二元组返回 
        os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 
        os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
        os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
        os.path.isabs(path)  如果path是绝对路径,返回True
        os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
        os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
        os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
        os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间
        os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
        os.path.getsize(path) 返回path的大小
      

    sys模块

    • sys模块是与python解释器交互的一个接口

        sys.argv           命令行参数List,第一个元素是程序本身路径
        sys.exit(n)        退出程序,正常退出时exit(0),错误退出sys.exit(1)
        sys.version        获取Python解释程序的版本信息
        sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
        sys.platform       返回操作系统平台名称
  • 相关阅读:
    POJ 1984
    剑指offer 7. 斐波那契数列 & leetcode 剑指 Offer 10- I. 斐波那契数列
    剑指offer 60. 把二叉树打印成多行
    数据库的范式(建表的原则)
    剑指offer 59. 按之字形顺序打印二叉树
    力扣142.环形链表II & 剑指offer 55. 链表中环的入口结点
    GET 和 POST 的区别
    理解Cookie和Session的区别及使用
    基本排序算法代码实现,以及使用场景推荐
    The Castle OpenJ_Bailian
  • 原文地址:https://www.cnblogs.com/liliudong/p/9588720.html
Copyright © 2011-2022 走看看