zoukankan      html  css  js  c++  java
  • python 内置模块

    一.random模块  随机       

    random()    随机小数            

    uninform(a,b) 随机小数

    randint(a,b)  随机整数

    choice() 随机选择一个

    sample() 随机选择多个

     shuffle() 打乱

     1 import random
     2 from random import randint
     3 
     4 print(randint(10, 20))
     5 # print(random.randint(10, 20))/
     6 print(random.random())
     7 print(random.uniform(10, 20))  # 10-20的随机小数
     8 
     9 lst = ['宝宝', '宝浪', '宝强', '包拯']
    10 random.shuffle(lst)  # 随机打乱顺序
    11 print(lst)
    12 
    13 
    14  # 从列表中随机选择一个
    15 print(random.choice(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"]))
    16 print(random.sample(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"],3))  # 可以给随机选取几个

    二.Counter 计数

    1 from collections import Counter
    2 
    3 print(Counter('宝宝今年特别喜欢王宝强'))  # 计数
    4 
    5 lst = ['jay', 'jay', 'jay', '宝宝', '宝宝', '胡辣汤', '上官婉儿']
    6 c = Counter(lst)
    7 print(c.get('宝宝'))

    三.字典

    1.默认值字典

    1 from collections import defaultdict
    2 
    3 dd = defaultdict(lambda: '胡辣汤')  # callable 可调用的, 字典是空的
    4 
    5 print(dd['张无忌'])  # 从字典向外拿数据. 字典是空的. key:callable()
    6 print(dd['宝宝'])  # 这里的[] 和get() 不是一回事儿
    7 print(dd)

    2.有序字典

    1 from collections import OrderedDict
    2 
    3 dic = OrderedDict()  # 有序字典
    4 dic['a'] = '哈哈'
    5 dic['b'] = '呵呵'
    6 print(dic)
    7 print(dic.get('a'))
    8 print(dic.values())
    9 print(dic['a'])

    四.栈和队列

    1.栈

    特点:先进后出

     1 class StackFullException(Exception):
     2     pass
     3 
     4 class StackEmptyException(Exception):
     5     pass
     6 class Stack:
     7 
     8     def __init__(self,size):
     9         self.size = size 给定存放数据的长度
    10         self.lst = []  # 存放数据的列表
    11         self.top = 0  # 栈顶指针
    12 
    13     # 入栈
    14     def push(self, el):
    15         if self.top >= self.size:
    16             raise StackFullException('your stack is full!!')
    17         self.lst.insert(self.top, el)  # 放元素
    18         self.top += 1  # 栈顶指针向上移动一下
    19 
    20 
    21     # 出栈
    22 
    23     def pop(self):
    24         if self.top == 0:
    25             raise StackEmptyException('your stack is empty!!!')
    26         self.top -= 1
    27         el = self.lst[self.top]
    28         return el
    29 
    30 s = Stack(6)
    31 s.push('宝宝')
    32 s.push('我还')
    33 s.push('记得')
    34 
    35 print(s.pop())
    36 print(s.pop())
    37 print(s.pop())

    2.单项队列

    特点:先进先出

     1 import queue
     2 q = queue.Queue()
     3 q.put('李嘉诚1')
     4 q.put('李嘉诚2')
     5 q.put('李嘉诚3')
     6 q.put('李嘉诚4')
     7 q.put('李嘉诚5')
     8 
     9 print(q.get())
    10 print(q.get())
    11 print(q.get())
    12 print(q.get())
    13 print(q.get())

    3.双向队列

    特点:和单项一样

     1 from collections import deque
     2 
     3 d =deque()  #  创建双向队列
     4 d.append('宝宝')  # 在右侧添加
     5 d.append('no')
     6 d.append('way')
     7 d.append('哈哈')
     8 d.appendleft('娃哈哈')  # 在左边添加
     9 d.appendleft('爽歪歪')
    10 d.appendleft('优酸乳')
    11 
    12 print(d.pop())  # 从右边拿数据
    13 print(d.pop())  # 从右边拿数据
    14 print(d.pop())  # 从右边拿数据
    15 print(d.pop())  # 从右边拿数据
    16 print(d.popleft())  # 从左边拿数据
    17 print(d.popleft())  # 从左边拿数据
    18 print(d.popleft())  # 从左边拿数据

    五.time模块

    1 # 时间戳: 从1970-01-01 00:00:00 开始计算. 未来存储的时候用时间戳
    2 print(time.time())
    1 # 格式化时间
    2 print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 用来显示的
    1 # 结构化时间(python的时间)
    2 t = time.localtime()
    3 print(t.tm_year)
    4 print(t.tm_mon)
    5 print(t.tm_mday)
    1 # 数据库里存储一个数字. 把它还原成我们的格式化时间
    2 a = 847772281.0
    3 # 先把这个时间戳转换成python中的结构化时间
    4 t = time.localtime(a)  # 结构化时间括号里填的是秒 time.localtime(秒) # 本地化的东八区的时间
    5 # t = time.gmtime(a)  # 格林尼治时间
    6 
    7 s = time.strftime('%Y-%m-%d %H:%M:%S', t)  # time.strftime(格式化格式, 传入结构化转化完的时间 t)
    8 print(s)
    # 让用户输入一个时间. 然后把时间转化成时间戳
    strt = input('请输入一个时间:')
    # 把字符串转化成结构化时间
    t = time.strptime(strt, '%Y-%m-%d %H:%M:%S')
    # 转化成时间戳
    print(time.mktime(t))  # 847772281.0  # 本地化的东八区的时间


    六.functools

    1.wraps

    from functools import wraps  # 可以改变一个函数的名字, 注释....
    
    
    def wrapper(fn):
        @wraps(fn)  # 把inner的名字改变成原来的func
        def inner(*args, **kwargs):
            print('')
            ret = fn(*args,**kwargs)
            print('')
            return ret
        return inner
    
    @wrapper  # func = wrapper(func)
    def func():
        print('哈哈哈')
    
    print(func.__name__)  # func

    2.reduce

    1 def func(a, b):
    2     return a + b # 0 + 1
    3 
    4 # 会把我们每一个数据交给func去执行, 把默认值作为第一个参数传递给函数
    5 
    6 ret = reduce(func, [1, 4, 7, 8, 6, 9],0)
    7 print(ret)
    8 print(reduce(lambda x, y: x+y, [i for i in range(101)]))

    3.partial

    1 from functools import partial
    2 
    3 def chi(zhushi, fushi):
    4     print(zhushi, fushi)
    5 
    6 chi2 = partial(chi, fushi = "辣鸡爪")
    7 chi2('大米饭')
    8 chi2('小米饭')
    9 chi2('黑米饭')

    七.命名元组 namedtuple

    1 p = namedtuple('Point', ["x", "y"])
    2 
    3 p1 = p(10, 20)
    4 print(p1)
    5 print(p1.x)
    6 print(p1.y)

    八.OS模块 系统操作
    1.os

    # 必须要记住. 很常用
    os.makedirs('baby/安哥拉/特斯拉')  # 可以一次性创建多级目录
    
    os.mkdir('baby/安哥拉/特斯拉/bb') # 上层文件夹必须存在
    
    os.removedirs('baby/安哥拉/特斯拉/bb')  # 目录不是空, 不能删除  #可以帮我们删除当前这个目录级中的所有空文件夹
    
    # 可以记住 一般不删数据
    os.rmdir('baby/安哥拉/特斯拉')  # 指定文件夹删除
    
    os.system('dir')
    print(os.popen('dir').read())  # 执行shell脚本或者cmd命令
    
    print(os.getcwd())  # 当前程序运行的文件夹 D:python_workspace_s18day 23 内置模块02
    
    os.chdir('baby') 
     1 # os.path 和路径相关的内容
     2 print(os.path.abspath('baby'))  # 把相对路径改成绝对路径
     3 print(os.path.split(r'D:python_workspace内置模块aby1.txt'))  # 切割文件和文件路径
     4 
     5 print(os.path.dirname(r'D:python_workspace内置模块aby1.txt'))  
     6  # 文件路径
     7 print(os.path.basename(r'D:python_workspace内置模块aby1.txt'))  
     8 # 文件
     9 
    10 print(os.path.existsr'D:python_workspace内置模块aby1.txt'))  
    11 # 判断文件是否存在
    12 print(os.path.abspath('1.txt'))

    2.sys模块

    1 import sys
    2 
    3 print(sys.path)  # 找到模块的. 必须要记住. 模块的搜索路径
    4 sys.path.append(r'D:python_workspace内置常用模块')
    5 print(sys.path)


    九.自定义模块和包

    import    

    from xxx import xxxx    

    一个表达式 -> 一条语句  -> 语句块  -> 函数 -> 类  -> 模块  -> 包  -> 项目        

    包就是我们的文件夹, 包内可以写很多个模块.

    查找路径是:sys.path, 随动. 跟着你的启动文件所在的位置变化        

    不论使用绝对导入. 还是相对导入. 启动文件一定在最外面

     1.模块

    写的一个py文件就可以称作一个模块

    2.包

    文件夹里装很多模块的就是包

  • 相关阅读:
    移动布局---1. 移动端布局基础
    1. CSS新特性之选择器
    1. H5新增语义化标签
    POJ 3281
    poj 1986
    POJ 3728
    poj 2763
    poj 2749
    uva 11294
    LA 3713
  • 原文地址:https://www.cnblogs.com/beargod/p/10202308.html
Copyright © 2011-2022 走看看