zoukankan      html  css  js  c++  java
  • Day16模块

    Day16

    当做执行文件时
    __name__ = "__main__"
    当做模块被导入时
    __name__ 等于文件名即模块名
    ```python
    循环导入(模块的名称空间已经建立,但模块内导入语句后的名称未加入到名称空间中,导致另一个模块导入不到,报错)
    解决循环的导入的两种方案:
    1.名字放在导入前,避免找不到名称
    2.导入放在函数内,函数在定义时不会执行,保证了模块内的名称创建完全
    !!!!首次导入模块的三件事:1.创建模块的名称空间   2.执行模块内的代码   3.在执行文件中拿到模块中名字
        再次导入时,直接调用上一次的结果,不会再创建模块的名称空间
    

    1.包
    什么是包:

    包就是一个含有__init__.py的文件夹
    

    为何要用包
    导入包

    1.创建名称空间
    2.执行包下的__init__.py
    3.
    
    相对导入仅限于包内文件 互相导入
    .当前文件夹
    ..上一级文件夹
    
    

    2.json&pickle
    什么是序列化
    将内存中的数据类型转成另外一种格式

    序列化:字典>>>序列化>>>其他格式>>存到硬盘
    ​ 硬盘>>>读取>>>其他格式>>>反序列化>>>字典

    为何是序列化
    1.持久保存程序的运行状态
    2.数据的跨平台交互

    json:
    字符串
    优点:跨平台性强
    确定:不能识别所有python数据类型
    强调:json格式不能识别单引号

    import json
    dic = {"k1":True,"k2":10,"k3":"egon"}
    dic_json = json.dumps(dic)
    dic_json = {"k1":true,"k2":10,"k3":"egon"}#json格式的字符串
    type(dic_json) = str
    
    

    pickle:
    优点:能识别所有python类型
    缺点:只能被python这门编程语言识别

    import pickle
    dic = {"k1":True,"k2":10,"k3":"egon"}
    dic_pickle = pickle.dumps(dic)
    dic_pickle #pickle模式的二进制
    type(dic_json) = bytes
    

    如何序列化

    3.time模块

    1.时间戳
    time.time()

    2.格式化字符串

    time.strftime("%Y-%m-%d %H:%M:%s %p")
    

    3.结构化的时间对象

    time.localtime()
    time.gmtime()
    差8小时
    time.localtime.tm_hour
    time.localtime.tm_wday
    time.localtime.tm_yday
    
    

    datetime模块
    time模块获取结构化时间麻烦:datetime.datetime.now()
    时间戳与格式化时间无法 :datetime.datetime.fromtimestamp()
    datetime.datetime.now() + datetime.timedelta()

    random
    随机

    import random
    random.random( ) 0到1之间的任意小数
    random.randint(1,3) 1到3之间的整数
    random.randrange(1,3) 顾头不顾尾,[1,2]
    random.choice([1,"a",[1,2,3]])指定范围
    random.sample([1,2,3,4,5],3)从指定范围取出一定数量
    random.uniform(1,3) (1,3)之间的小数,可以指定范围
    item = [1,3,5,7,9]
    random.shuffle(item) 洗牌
    
    def make_code(n):
    s1 = str(random.randint(0,9))
    s2 = chr(random.randint(65,90))
    s3 = chr(random.randint(97,122))
    res = s1+s2+s3
    for i in range(n-3):
    s = random.choice([str(random.randint(0,9)),chr(random.randint(65,90)),chr(random.randint(97,122))])
    res += s
    print(res)
    return res
    make_code(6)
    

    3.re&正则表达式

  • 相关阅读:
    AUDIT审计的一些使用
    HOW TO PERFORM BLOCK MEDIA RECOVERY (BMR) WHEN BACKUPS ARE NOT TAKEN BY RMAN. (Doc ID 342972.1)
    使用BBED理解和修改Oracle数据块
    Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC [ID 1340831.1]
    调试利器GDB概念
    第4章 思科IOS
    第3章 ip地址和子网划分
    第2章 TCPIP
    2020年阅读过的黑客资源推荐篇
    第1章 计算机网络
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10073972.html
Copyright © 2011-2022 走看看