zoukankan      html  css  js  c++  java
  • 2019.8.16学习内容加随堂笔记

    小结

    简单理解就是包的作用就是用来分割文件的,本来只有一个模块或者一个文件,但是为了将模块或文件里面的功能(函数)按需求划分,就将同一类型的功能(函数)分别放到不同的文件或模块中(是基于在包的文件夹里面新建文件(模块))

    包,就是把一个模块分成多个同样的的导入方式即可,用了包之后导入方式不变,使用者感觉不到变化

    包其实就是一个文件夹(但是该文件夹内必须含有_ _ init_ _ .py这个文件)

    *init 可以让一个普通文件夹成为一个包,导入包就是导入init

    包的第一种使用方式(不建议用),暂时对我而言,会用哪种就用哪一种

    *导包就是导入init

    包的文件以执行文件的环境变量为基准,包的init只能从包名开始导入

    相对导入和绝对导入,相对导入只在包中使用

    . (一个点是当前目录)

    ..(是当前目录的上一个目录(文件夹))

    time模块

    time模块作用:支持三种不同形式的时间,不同形式的时间之间可以相互转换

    常用的time模块用法

    import time
    # 时间戳
    #print(time.time()) #1566008722.4859853
    
    #格式化时间
    #print(time.strftime('%Y_%m_%d %X')) #2019_08_17 10:27:44
    
    #结构化时间
    #localtime():表示中国时间
    #print(time.localtime()) #time.struct_time(tm_year=2019, tm_mon=8, tm_mday=17, tm_hour=10, tm_min=29, tm_sec=8, tm_wday=5, tm_yday=229, tm_isdst=0)
    
    # gmtime()标准时间
    #print(time.gmtime()) #time.struct_time(tm_year=2019, tm_mon=8, tm_mday=17, tm_hour=2, tm_min=31, tm_sec=5, tm_wday=5, tm_yday=229, tm_isdst=0)
    
    

    三种格式化时间的转换(没必要记)

    重点j记得:

    time.time()
    time.sleep(2)
    

    datetime模块

    datetime模块作用:用于时间的修改

    import datetime
    print(datetime.datetime.now())
    now = datetime.datetime.now()
    print(now + datetime.timedelta(3)) #默认+3天
    print(now + datetime.timedelta(hours=3)) # +3小时
    print(now+ datetime.timedelta(minutes=3)) #+3 分钟
    
    print(now.replace(year=1900))
    

    os模块

    os模块作用:与操作系统交互,可以操控文件

    # import os
    #print(os.getcwd()) # 获取当前文件目录
    
    #os.mkdir('m3') # 创建文件
    #os.rmdir('m3') # 删除文件
    
    ###############(重点,经常使用)
    # res = os.listdir(r'E:老男孩')
    # print(res) #列出所有的文件
    
    #os.rename('日常学习总结.py','总结.py')#修改文件名
    # os.remove('price.txt') #删除文件
    
    # __ file__只有pycharm才提供,python本身不支持
    #print('os.path.abspath(__file__):',os.path.abspath(__file__)) # 显示当前文件路径,支持不同平台
    
    #print(__file__)#E:/老男孩/日常使用.py
    
    # print(os.path.exists('bao')) #True 判断文件是否存在
    
    #print(os.path.isfile('bao')) #False 判断是否为文件
    #print(os.path.isdir('bao')) #Trun 判断是否为文件夹
    
    ###############(经常使用),支持不同平台
    # res = os.path.join(r'E:老男孩') # 拼接文件路径
    # res = os.path.join(r'E:老男孩ATM工程')# 拼接文件路径
    # print(r'E:老男孩+E:老男孩ATM工程')
    
    ##########(经常使用)
    # print(os.path.abspath(__file__)) #E:老男孩日常使用.py 打印当前文件路径
    # print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#E: 打印了上上级目录(
    
    # import os
    # g = os.walk(r'E:老男孩日常使用.py')
    # for i in g:
    #     print(i)
    

    sys 模块

    sys模块作用:与python解释器交互

    import sys
    #print(sys.path)
    
    #print(sys.argv) # 接收参数(用cmd执行文件时才生效)
    
    print(sys.modules)
    
    

    json 模块

    json 模块作用:可以序列化和反序列化,是一种通用的数据类型(如用python写了一个程序,用java写了一个程序,现在这两个程序要交流,但是语法不同不能识别,规定了一种多种语言统一的数据类型,json串

    序列化: 从python的字典(最常用)变成json串,用dump

    f反序列化:从json串变成python的字典(最常用),用 load

    import json
    # dict = {'a': 1, 'b': 2, 'c': None}
    # data = json.dumps(dict) # 序列化到内存中<class 'str'>
    # #print(data,type(data)) #{"a": 1, "b": 2, "c": null}单引号变双引号d
    # data = json.loads(data)# 从内存获取json串
    # print(data,type(data))#{'a': 1, 'b': 2, 'c': None} <class 'dict'>
    
    with open(f'{"text"}.josn','r',encoding='utf-8')as fr:
        data = json.load(fr)
        print(data) #{'a': 1, 'b': 2, 'c': None}
    

    pickle模块

    pickle模块作用:可以序列化python中所有对象(数据类型),但是无法跨平台(json模块可以跨平台)

    hashlib模块

    hashlib模块作用:密码加密,无论你丢什么字符串,它都会返回一串固定长度的字符串

    import hashlib
    m = hashlib.md5()
    # m.update(b'123456')
    # print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e
    
    m.update(b'123')
    m.update(b'456')
    print(m.hexdigest())#e10adc3949ba59abbe56e057f20f883e(有叠加性)
    
    #1.变成固定的字符串、
    # 2. 相同的字符串哈希后的结果一样、
    # 3. 叠加性
    

    hmac模块

    hmac模块作用:对密码加密,可以加盐

    import hmac
    m = hmac.new(b'a')
    m.update(b'123456')
    print(m.hexdigest())#8c7498982f41b93eb0ce8216b48ba21d
    
    #m = hamc.new(b'abc)#8c7498982f41b93eb0ce8216b48ba21d
    #m = hamc.new(b'a) #3e391a1d7bf574cec59679244a2904fe
    
    # 特性:1.不同的hamc,最后打印结果不同
        #2.同样具有叠加性
    

    logging模块

    logging模块作用:日志

    import logging
    
    
    # logging.debug('调试')  # 10
    # logging.info('正常')   # 20  # 用这一个
    # logging.critical('严重错误') # 30
    # logging.error('错误') # 40
    # logging.warning('警告') # 50
    # 默认30以上的可以输出
    
    # v2 日志信息记录在文件当中
    
    
    # logging.basicConfig(filename='access.log',
    #                     format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
    #                     datefmt='%Y-%m-%d %H:%M:%S %p',
    #                     level=10)
    
    # logging.debug('调试信息')  # 10
    # logging.info('正常信息')  # 20
    # logging.warning('警告信息')  # 30
    # logging.error('报错信息')  # 40
    # logging.critical('严重错误信息')  # 50
    
    # v3
    
    
    
    
    # 1. 生成一个logger对象
    logger = logging.getLogger('nick')
    
    # 2. 生成格式
    formmater1 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
                                   datefmt='%Y-%m-%d %H:%M:%S %p',)
    formmater2 = logging.Formatter('%(asctime)s :  %(message)s',
                                   datefmt='%Y-%m-%d %H:%M:%S %p',)
    formmater3 = logging.Formatter('%(name)s %(message)s',)
    
    # 3. 生成一个文件对象
    h1 = logging.FileHandler('h1.log')
    h2 = logging.FileHandler('h2.log')
    sm = logging.StreamHandler()
    
    
    # 4. 文件绑定格式
    h1.setFormatter(formmater1)
    h2.setFormatter(formmater2)
    sm.setFormatter(formmater3)
    
    
  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/chmily/p/11420835.html
Copyright © 2011-2022 走看看