模块2

Posted liuafan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块2相关的知识,希望对你有一定的参考价值。

logging模块.
collections模块.
time模块.
random模块.

logging 模块
logging  日志
记录.花钱的,(淘宝)败家的,
访问的记录,
员工信息,debug等等都需要日志.

1,被动触发: 与异常处理配合.访问记录.
2, 主动触发:检测运维人员输入的指令,检测服务器的重要信息,访问记录.等等.

高配版:
# 第一版:只输入文件中.
# import logging
# logger = logging.getLogger() # 创建logger对象.
# fh = logging.FileHandler(‘高配版logging.log‘,encoding=‘utf-8‘)  # 创建文件句柄
#
# # 吸星大法
# logger.addHandler(fh)
#
# logging.debug(‘debug message‘)
# logging.info(‘info message‘)
# logging.warning(‘warning message‘)
# logging.error(‘error message‘)
# logging.critical(‘critical message‘)

# 第二版:文件和屏幕都存在.
# import logging
# logger = logging.getLogger() # 创建logger对象.
# fh = logging.FileHandler(‘高配版logging.log‘,encoding=‘utf-8‘)  # 创建文件句柄
# sh = logging.StreamHandler()  #产生了一个屏幕句柄
#
# # 吸星大法
# logger.addHandler(fh)  #添加文件句柄
# logger.addHandler(sh)  #添加屏幕句柄
#
#
# logging.debug(‘debug message‘)
# logging.info(‘info message‘)
# logging.warning(‘warning message‘)
# logging.error(‘error message‘)
# logging.critical(‘critical message‘)

# 第三版:文件和屏幕都存在的基础上 设置显示格式.
# import logging
# logger = logging.getLogger() # 创建logger对象.
# fh = logging.FileHandler(‘高配版logging.log‘,encoding=‘utf-8‘)  # 创建文件句柄
# sh = logging.StreamHandler()  #产生了一个屏幕句柄
# formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
#
#
# # 吸星大法
# logger.addHandler(fh)  #添加文件句柄
# logger.addHandler(sh)  #添加屏幕句柄
# sh.setFormatter(formatter)  # 设置屏幕格式
# fh.setFormatter(formatter)  # 设置文件的格式  (这两个按照需求可以单独设置)
#
#
# logging.debug(‘debug message‘)
# logging.info(‘info message‘)
# logging.warning(‘warning message‘)
# logging.error(‘error message‘)
# logging.critical(‘critical message‘)

#第四版 文件和屏幕都存在的基础上 设置显示格式.并且设置日志水平.
# import logging
# logger = logging.getLogger() # 创建logger对象.
# fh = logging.FileHandler(‘高配版logging.log‘,encoding=‘utf-8‘)  # 创建文件句柄
# sh = logging.StreamHandler()  #产生了一个屏幕句柄
# formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
# # logger.setLevel(logging.DEBUG)
# #如果你对logger对象设置日志等级.那么文件和屏幕都设置了.
# #总开关 默认从warning开始,如果想设置分开关:必须要从他更高级:(ERROR,critical)从这来个开始.
#
# # 吸星大法
# logger.addHandler(fh)  #添加文件句柄
# logger.addHandler(sh)  #添加屏幕句柄
# sh.setFormatter(formatter)  # 设置屏幕格式
# fh.setFormatter(formatter)  # 设置文件的格式  (这两个按照需求可以单独设置)
# fh.setLevel(logging.DEBUG)
#
# logging.debug(‘debug message‘)
# logging.info(‘info message‘)
# logging.warning(‘warning message‘)
# logging.error(‘error message‘)
# logging.critical(‘critical message‘)

 

collections模块

collections 模块给你提供的就是一些特殊的数据类型.
namedtuple
tu = (1,2)
print(tu[0],tu[1])
from collections import namedtuple
point = namedtuple(Point,[x,y])
p = point(10,30)   #  p = (x=10,y=30)
print(p.x)
print(p.y)
print(p[0])
print(p[1])

deque 双端队列
from collections import deque
q = deque([a,b,c,d,e])
print(q)
q.append(666)  #添加最右边
q.append(777)
q.appendleft(111)  #从最左边添加
q.appendleft(222)
q.pop()  # 从右边删除
q.popleft() # 从左边删除
q.popleft()
print(q)
queue队列 原则:先进先出.fifo
栈: 先进后出.

OrderedDict 按照键的添加值得顺序进行排列 dic
= {} dic[name] = alex dic[age] = 1000 dic[sex] = print(dic) from collections import OrderedDict # od = OrderedDict() # od[‘name‘] = ‘alex‘ # od[‘age‘] = ‘1000‘ # od[‘sex‘] = ‘男‘ # print(od) 装逼版: d = dict([(a, 1), (b, 2), (c, 3)]) print(d) from collections import OrderedDict od1 = OrderedDict([(a, 1), (c, 3), (b, 2),]) print(od1) l1 = [11,22,33,44,55,77,88,99,90] dic = {} for i in l1: if i > 66: if key1 not in dic: dic[key1] = [] dic[key1].append(i) else: if key2 not in dic: dic[key2] = [] dic[key2].append(i) print(dic)

##defaultDict(可以被调用的) 给这个字典的所有的键配一个默认的值
from collections import defaultdict l1 = [11, 22, 33,44,55,66,77,88,99,90] my_dict = defaultdict(list) my_dict[key1] my_dict[key2] print(my_dict) my_dict = defaultdict(list) for value in l1: if value>66: my_dict[k1].append(value) else: my_dict[k2].append(value) print(my_dict) dic1 = {} #---> dic1={1:5,2:5,3:5.....20:5}
格外一个题 ------------------------------------------- for i in range(1,21): dic1[i] = 5 print(dic1) dic1 = {x:5 for x in range(1,21)} dic1 = dict.fromkeys(range(1,21),5)
------------------------------------------------- Counter 自动计数
dic1
= defaultdict(lambda :5) for i in range(1,21): dic1[i] print(dic1) from collections import Counter c = Counter(abcdeabcdabcabafkjdslajlkfd) print(c) 自动计算 a 有多少个 b有多少个 c 有多少个

 

random模块

#随机

import random
print(random.random())  # 0~1 之间的小数
print(random.uniform(1,3))  # 1~3小数

print(random.randint(1,5))  #  1<=x<=5顾头也顾尾
print(random.randrange(1,10,2))  #  1<=x<10 的奇数 顾首不顾尾

print(random.choice({1,23,2,3}))  # 任选一个  常用
print(random.choice(fdsjafdsfgdsagfdsa))  # 任选一个  常用

random.sample([1,1,1,1,1,6,7,8,9,10],2) # #列表元素任意2个组合
item = [i for i in range(1,14)]
random.shuffle(item)  # 打乱顺序
print(item)

 





















以上是关于模块2的主要内容,如果未能解决你的问题,请参考以下文章

node基础2--模块化

模块化介绍

模块讲解---time模块,datetime模块,random模块,hashlib模块和hmac模块,typing模块,requests模块,re模块

python模块2 math andom e imedatetime模块

Python中的模块与包

包logging模块hashlib模块openpyxl模块深浅拷贝