1.简单的理解模块
写的每一个py文件都是一个模块,还有一些是我们一直在使用的模块.
buildins: 内置模块. print, input
random 主要是和随机相关的内容:
        random()  随机小数  ,是python中所有随机数的根, 随机小数0-1
        uniform(a,b)  a - b之间的随机小数
       randint(a,b)   随机整数
      choice()  随机选择一个
       sample() 随机选择多个
       shuffle() 打乱
# from xxx import xxxx
# from 老男孩 import alex # 导入一个具体的功能
# import 老男孩 # 导入整个模块
 
 
# import random
# print(random.randint(10,20))
#
# from random import randint
# print(randint(10,20))
import random
print(random.randint(10,20)) # 随机整数
print(random.random()) # python中所有随机数的根 随机小数 0-1
 
print(random.uniform(10,20)) # 10-20的随机小数
lst = ["宝宝", "宝强", "宝浪", "包拯"]
random.shuffle(lst)  # 随机打乱顺序
print(lst)
 
从列表中随机选择一个
print(random.choice(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"]))
print(random.sample(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"], 3))
2.Collections
     1. Counter  计数器
     2. defaultdict   默认值字典
     3. orderedDict  有序字典(了解一下)
     4. deque  双向队列
from collections import Counter
 
print(Counter("宝宝今年特别喜欢王宝强")) # 计数
###Counter({'宝': 3, '今': 1, '年': 1, '特': 1, '别': 1, '喜': 1, '欢': 1, '王': 1, '强': 1})
lst = ["jay",'jay',"jay","宝宝","宝宝", "胡辣汤", "上官婉儿", "上官婉儿"]
print(Counter(lst))
dic = {"a":"哈哈", "b":"哈哈", "c":"车牌"}
c = Counter(dic.values())
print(c)
   
from collections import defaultdict
 
# 默认值字典
dd = defaultdict(lambda: 0) # callable 可调用的, 字典是空的
 
print(dd["张无忌"]) # 从字典向外拿数据. 字典是空的. key:callable()
print(dd["宝宝"]) # 这里的[] 和get()不是一回事儿
print(dd)
 
 
from collections import OrderedDict
 
dic = OrderedDict()  # 有序字典
dic["b"] = "哈哈"
dic['a'] = "呵呵"
print(dic)
print(dic.get("a"))
print(dic.values())
print(dic["a"])
 
数据结构(队列,栈(重点))
        栈: 先进后出    Stack
        队列: 先进先出   Queue
# 栈
# 特点: 先进后出
class StackFullException(Exception):
    pass
 
class StackEmptyException(Exception):
    pass
 
class Stack:
 
    def __init__(self, size):
        self.size = size
        self.lst = [] # 存放数据的列表
        self.top = 0 # 栈顶指针
 
    # 入栈
    def push(self, el):
        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
 
s = Stack(6)
s.push("宝宝")
s.push("我还")
s.push("记得")
s.push("你")
s.push("刚刚")
s.push("说的话")
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
import queue
q = queue.Queue()
q.put("李嘉诚1")
q.put("李嘉诚2")
q.put("李嘉诚3")
q.put("李嘉诚4")
q.put("李嘉诚5")
 
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
 
 
from collections import deque
 
d = deque() # 创建双向队列
d.append("宝宝") #  在右侧添加
d.append("no")
d.append("way")
d.append("哈哈")
d.appendleft("娃哈哈") # 在左边添加
d.appendleft("爽歪歪")
d.appendleft("优酸乳")
3.Time 模块
    时间有三种:
         结构化时间:  gmtime()    localtime()
        时间戳  :   time.time()    time.mktime()
时间戳: 从1970-01-01 00:00:00开始计算. 未来存储的时候用是时间戳,使用float来表示
        格式化时间:  time.strftime()    time.strptime()
%Y-%m-%d %H:%M:%S
日期格式化的标准:
%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 当前时区的名称 
%% %号本身
  时间转化:
    数字  -> 格式化
   struct_time = time.localtime(数字)    ##结构化时间
   str= time.strftime('格式', struct_time)   ##格式化时间
   格式化  -> 数字
  struct_time = time.strptime(字符串,'格式')  ##转化成结构时间
  num =time.mktime(struct_time)    ##转化成时间戳
import time
 
时间戳: 从1970-01-01 00:00:00开始计算. 未来存储的时候用是时间戳
print(time.time())
格式化时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 用来显示的  # 2018-01-02 12:38:56
print(time.strftime("%Y-%m-%d %H:%M:%S   %Z"))  # ?D1¨²¡À¨º¡Á?¨º¡À??
 
结构化时间(python的时间)
print(time.localtime())
t = time.localtime()
print(t.tm_year)
print(t.tm_mon)
print(t.tm_min)
 
import time
重点:
# 数据库里存储一个数字. 把它还原成我们的格式化时间
a = 0
# 先把这个时间戳转化成python中的结构化时间
# t = time.localtime(a) # 本地化的东八区的时间
t = time.gmtime(a) # 格林尼治时间
# 把一个结构化时间转化成格式化时间
s = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(s)
让用户输入一个时间,把这个时间转化成时间戳
import time
user_input = input("请输入一个时间:")
# 把用户输入的字符串转化成结构化时间
struct_time = time.strptime(user_input, "%Y-%m-%d %H:%M:%S") # p: parse
# 转化成时间戳
num = time.mktime(struct_time)
print(num)
4.functools
     wraps  给装饰器中的inner改名字
     reduce   归纳   和map 映射对应
    偏函数     把函数的参数固定
# 回忆装饰器
 
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
map 映射  reduce 归纳
print(list(map(lambda x: x**2, [i for i in range(10)])))
 
from functools import reduce
 
def func(a, b):
    return a + b # 0+1 +4 +7+2+5+8+3+6+9 # 累加
 
# 会把我们每一个数据交给func去执行, 把默认值作为第一个参数传递给函数
# 第二个参数就是你这个序列中的第一个数据
# 接下来. 把刚才返回的结果作为第一个参数传递个a
# 继续吧刚才的结果给第一个参数. 把第三个数据传递给b
ret = reduce(func, [1,4,7,2,5,8,3,6,9])
# 工作流程
# func(func(func(0, 1),4),7)
# print(ret)
# print(reduce(lambda x, y:x + y, [i for i in range(101)]))
偏函数  吧函数的参数固定
from functools import partial
 
def chi(zhushi, fushi):
    print(zhushi, fushi)
 
# 固定函数中某些参数的值
chi2 = partial(chi, fushi="辣鸡爪")
# chi2("大米饭")
# chi2("小米饭")
# chi2("黑米饭")
# chi2("黄米饭")
# chi2("紫米饭")
# chi2("糯米饭")
 

day 22 内置的模块的更多相关文章

  1. python内置re模块全面实战

    目录 一:取消转义 二:python内置模块之re模块 三:常用方法 findall search match 简便 四:常用方法 finditer 匹配文件多情况 五:切割 替换 内置模块 六:分组 ...

  2. day05 模块以及内置常用模块用法

    内置常用模块详解: 1 time 2 datetime 3 random   4 os 5 sys 6 shutil 7 shelve 8 xml 9 configparser 10 hashlib ...

  3. 【CobaltStrike】对CobaltStrike内置功能模块的了解

    对CobaltStrike内置功能模块的了解 0x00 右键功能列表 Interact 打开beacon Access dump hashes 获取hash Elevate 提权 Golden Tic ...

  4. day25 内置常用模块(四): 模块和包

    阅读目录: 模块 import from xxx import xxx 包 import from xxx import xxx    from xxx  import *    __init__.p ...

  5. Python内置OS模块用法详解

    大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示.刚入门的读者千万不要错过! 很多人学习python,不知 ...

  6. Python内置标准模块

    time 模块 1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # t ...

  7. Learn day5 迭代器\生成器\高阶函数\推导式\内置函数\模块(math.time)

    1.迭代器 # ### 迭代器 """能被next调用,并不断返回下一个值的对象""" """ 特征:迭代器会 ...

  8. 巨蟒python全栈开发-第22天 内置常用模块1

    一.今日主要内容 1.简单了解模块 你写的每一个py文件都是一个模块 数据结构(队列,栈(重点)) 还有一些我们一直在使用的模块 buildins 内置模块.print,input random 主要 ...

  9. 内置time模块和random模块

    #time模块#time模块中有三种时间表达方式#时间戳(timestamp):指从1970年1月1号0:0:0开始按秒计算的时间偏移量#元组形式的结构化时间(strut_time):含有9个元素(t ...

随机推荐

  1. swoole 创建tcp服务器

    server.php <?php /** * 创建tcp服务器 * Date: 2019/1/15 */ $serv = new swoole_server('127.0.0.1', 9501) ...

  2. yii2.0里自己写的源码上传图片

    在做项目过程中,用了源码表单上传, <form action="?r=pre/create" method="post" enctype="mu ...

  3. Yii日志使用

    Yii 提供了一个灵活可扩展的日志功能.记录的日志 可以通过日志级别和信息分类进行归类.通过使用 级别和分类过滤器,所选的信息还可以进一步路由到 不同的目的地,例如一个文件,Email,浏览器窗口等. ...

  4. mongodb 副本集+分片集群搭建

    数据分片节点#192.168.114.26mongod --shardsvr --replSet rsguo --port 2011 --dbpath=/data/mongodb/guo --logp ...

  5. QuantLib金融库的简易安装

    最近在弄毕设,研究关于固定收益债券定价方面的知识,需要使用到QuantLib这个Python金融库,但是这是一个C++编译的库,官网也只给出了源代码,安装起来十分繁琐,所以在网上找了一个简易的安装方法 ...

  6. 用python自建一个DNS服务器

    前段日子一直在做公司的DNS调度程序,不过由于性能比较差,方案最终废弃掉了.两个半月心血,不想白白浪费掉,于是改了改,把商业秘密相关的部分去掉,变成了一个公共的DNS服务器.其实说的简单点,就是一个可 ...

  7. 十一.安装Redis

    redis是一个NOSql数据库,在java web中,经常用来存储session等,官网是https://redis.io/ 当前官网指出的稳定版本为3.2.6,下载地址为http://downlo ...

  8. BZOJ1924:[SDOI2010]所驼门王的宝藏(强连通分量,拓扑排序)

    Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室 ...

  9. shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme

    有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对   通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...

  10. WEB测试—用户界面测试

    如果有设计稿,当然按照设计稿进行测试:没有设计稿,就参考原型:如果都没有,就按照web大众排版设计要求测试了,当然,还是要产品看过为准. 一下简单总结一下测试的点. 1. 导航测试 很少有用户愿意花时 ...