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

    引入模块的方式:

      1. import 模块

      2. from xxx import 模块

    collections模块

    1.Counter  计数器

    from collections import Counter
    s = 'apple pineapple'
    nb = Counter(s)    #Counter({'p': 5, 'e': 3, 'a': 2, 'l': 2, ' ': 1, 'i': 1, 'n': 1}) 

    2.deque 双向队列(栈.队列)

      1)栈 : FILO.先进先出

      2)队列 : FIFO.先进先出

    栈Stack

    class StackEmptyError(Exception):
        pass
    class StackFullError(Exception):
        pass
    class Stack:
    
        def __init__(self. size):
            self.top = 0    #栈顶指针
            self.size = size  
            self.lst = []      #存放数据的列表
        
        def push(self):
            if self.top >= self.size:
                raise StackFullException('your stack is full')
            self.lst.insert(self.top, el)
            self.top +=1
        def pop(self):
            if self.top == 0:
                raise StackEmptyException('your stack is empty')
            self.top-=1
            el = self.lst[self.top]
            return el  

     queue模块

    import queue
    q = queue.Queue()
    q.put('a')
    q.put('b')
    q.put('c')
    print(q)    #<queue.Queue object at 0x01C49C10>
    print(q.get())   #a

    deque

    from collections import deque
    q = deque()
    q.append('a')   #右侧添加
    q.append('b')
    q.appendleft('c')  #左侧添加
    q.appendleft('d')
    print(q)               #deque(['d', 'c', 'a', 'b'])
    q.pop()             #deque(['d', 'c', 'a'])
    q.popleft()            #deque(['c', 'a'])
    print(q.pop())       #a

    namedtuple命名元组(相当于创建类)

    from collections import namedtuple
    nt = namedtuple('point', ['x', 'y'])
    p = nt(1, 2)
    print(p)         #point(x=1, y=2)
    print(p.x)      #1

    OrderedDict和defaultdict

    字典的key默认是无序的.而OrderedDict是有序的(和普通字典操作一样,打印效果不同)

    from collections import OrderedDict
    od = OrderedDict({'b' : 'boy','c' : 'carry', 'a' : 'apple'})
    print(od)   #OrderedDict([('b', 'boy'), ('c', 'carry'), ('a', 'apple')])

    defaultdict: 可以给字典设置默认值.当key不存在时.直接获取默认值

    from collections import defaultdict
    dd = defaultdict(list)
    print(dd['a'])     #[]

    time模块***

    时间的三种形式:

    1.时间戳(timestamp).从1970年01月01日00点00分00秒开始,使用float来表示

    2.格式化时间(strftime).根据需要对时间进行任意格式化

    3.结构化时间(struct_time).把时间分类划分

    日期格式化的标准:

    %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
    print(time.time())    #1546518703.0296843  系统时间

    结构化时间

    st = time.time()
    t = time.localtime(st)
    print(t)    #time.struct_time(tm_year=2019, tm_mon=1, tm_mday=3, tm_hour=20, tm_min=58
    , tm_sec=21, tm_wday=3, tm_yday=3, tm_isdst=0)

    格式化时间

    s = time.strftime('%Y-%m-%d %H:%M:%S',t)
    print(s)     #2019-01-03 21:01:58

    用户输入一个时间,转化为时间戳:

    s1 ='2019-01-03 21:01:58'     #输入的时间
    t1 = time.strptime(s1, '%Y-%m-%d %H:%M:%S')   #转化成结构时间
    st1 = time.mktime(t1)    #转换成时间戳
    print(st1)                      #1546520518.0

    random随机模块

    import random
    random.random()    #0-1小数
    random.uniform(3, 10)    #3-10小数
    random.randint(1, 10)    #1-10整数
    random.randrange(1, 10, 2)  #1-10奇数[1,10)
    random.choice(['a','b','c']) #选择一个
    random.sample(['a','b','c'], 2) #列表列出任意两个组合
    l = ['a', 'b', 'c']
    random.shuffle(l)  #列表随机打乱顺序

    os模块

    os.makedirs('dirname1/dirname2')   #可生成多层递归目录
    os.removedirs('dirname1')   #若目录为空,则删除,并递归到上一级目录,如若为空,则删除,依此类推
    os.mkdir('dirname')   #生成单级目录
    os.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.abspath(path)  #返回规范化的绝对路径
    os.path.split(path)  # 将path分割成目录和文件名二元组返回
    os.path.dirname(path)  #返回path的目录
    os.path.basename(path)  #返回path最后的文件名
    os.path.exists(path)    #如果path存在,返回True 如果path不存在,返回False
    os.path.isabs(path)     #如果path是绝对路径,返回True
    os.path.isfile(path)     #如果path是一个存在的文件,返回True
    os.path.isdir(path)      #如果path是一个存在的目录,则返回True
    os.path.join(path1[, path2[, ...]])   #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path)  #返回path所指向的文件或者目录的最后访问时间
    os.path.getmtime(path)   #返回path所指向的文件或者目录的最后修改时间
    os.path.getsize(path)   #返回path的大小

    sys模块

    sys.exit(n)  #退出程序,正常退出时exit(0),错误退出时sys.exit(1)
  • 相关阅读:
    2017校赛 问题 F: 懒人得多动脑
    2017校赛 C: 不爱学习的小W【模拟】
    方程解的个数【数论】
    小兔蹦蹦跳【脑洞】
    例2-2显示文字
    例2-6 数值转换列表
    例2-3 转换数值
    例2-1 输出文字
    例1-1 求n!
    #文件1向文件中输出字符数据——fgetc
  • 原文地址:https://www.cnblogs.com/gracenana/p/10211298.html
Copyright © 2011-2022 走看看