• day22 模块_1


    核能来袭--模块

    1.简单了解模块

    2.Collections

    3.Time模块

    4.functools

    5.队列和栈

    一.初识模块

     其实之前写的每一个PY文件都是一个模块

    还有一些我们一直在使用的模块  buildins内置模块.print input

    引入模块的语法  : ①import xxx 导入xxx  ②form xxx import xxx 从xxx导入xxx

    这两种从本质上来说其实是一样的,只是后期的处理上不是很一样

    #从一个范围之间随机取一个数
    random.randint(10,20)  # 从10到20之间随机取一个整数
    #随机取一个小数
    random.random(10,20) # 从10-20之间随机取一个小数
    random.unform()# 同样是取一个小数
    #随机打乱顺序
    random.shuffle(lst) #将lst中的数据打乱顺序
    # 随机选择一个数
    random.choice(lst) 从lst中随机选一个元素
    random.sample(lst,3) #从lst中随机选三个元素
    

    二 .Collections

    1.Counter 计数器

    2.defaultdict 默认值字典

    3.OrderedDict 有序字典

    4.数据结构 (队列,栈) 重点

    1)栈 :先进后出  Stack 

    class ChaoChuFanWeiExceprion(Exception): # 自定义异常
        pass
    
    class MeiDongXiLeException(Exception): #自定义异常
        pass
    
    class Stack: #创建一个类
        def __init__(self,size):
        self.size=size #容量
        self.lst=lst
        self.top=0 #栈顶指针
    
        def push(self,el): #入栈
            if self.top>=self.size:#如果栈顶指针超过了容量
                raise ChaoChuFanWeiExceprion('你的size满了')
            self.lst.insert(self.top,el) 入栈
            self.top+=1
    
         def pop(self):
            if self.top==0: #如果栈顶指针移动到了最后一位置
              raise MeiDongXiLeException('你的size已经空了')
            self.top-=1
            s=self.lst[self.top] 出栈
            return s
    
    s=Stack(4)
    s.push('今')
    s.push('天')
    s.push('真')
    s.push('美')
    print(s.pop())
    print(s.pop())
    print(s.pop())
    print(s.pop()) 

    入栈 :push   

    出栈:pop

    top:栈顶指针

    2)队列 :先进先出 

    import queue
    q=queue.queue()
    q.put('今')
    q.put('天')
    q.put('真')
    q.put('美')
    
    print(q.get())
    print(q.get())
    print(q.get())

    双向队列 两边都可以拿都可以出

    form collections import deque
    d=deque()
    d.append('星') #默认从右边添加
    d.append('期')
    d.append('三')
    d.appendleft('呀') # 从左边添加
    
    print( d.pop() ) # 默认从右边拿出数据 呀
    print( d.pop() ) #三
    print( d.pop() )# 期
    print( d.opoleft() ) #从左边拿数据 星
    

    三 .时间模块  import time

    时间戳: 保存在计算机中的一串数字(从1070-01-01 00:00:00)开始,每过一秒加一

    如果在中国,是从(1970-01-01 08:00:00)开始计算,东八区

    时间有三种: (%Y-%m-%d %H:%M:%S)   年月日 时分秒

      结构化时间 : gmtime()       localtime()

      时间戳 : time.time()             time.mktime()

      格式化时间 : time.strftime()   time.strptime()

    时间转化:

      数字->字符串

      struct_time=time.localtime(数字)

      str=time.strftime('%Y-%m-%d %H:%M:%S' ,struct_time)

      字符串->数字

      struct_time=time.strptime( str , ' %Y-%m-%d %H:%M:%S' )

      num=time.mktime(struct_time)

    四.functools

    wraps  给装饰器中的inner改名字

    reduce 归纳 (经常与map函数一起使用) 将map函数发散的数据归纳回来

    偏函数 partia(函数,xx=' ')  把函数中的某个参数固定

  • 相关阅读:
    ThinkPHP运算符 与 SQL运算符 对比表
    [Java 8] (6) Lambda与资源管理
    Codeforces Round #275 (Div. 2) C
    HOJ 2245 浮游三角胞(数学啊 )
    [UVALive 6663 Count the Regions] (dfs + 离散化)
    浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
    SpringMVC: web.xml中声明DispatcherServlet时一定要加入load-on-startup标签
    Unity3d 4.3.4f1执行项目
    更新Windows ActiveX,Ios
    C++11: final与override
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10181352.html
Copyright © 2020-2023  润新知