python日志输出 :
日志级别有如下几种 :
CRITICAL 50 ERROR 40 WARNING 30 INFO 20 DEBUG 10 NOTSET 0
当获取根Logger的时候,默认级别为NOTSET,这样会显示所有输出。当获取非根Logger的时候,根Logger的默认级别是WARNING,非根Logger会继承这个级别,只有WARNING以上的日志才会输出
基本用法:
import logging 导入相应模板
LOG_FORMAT="%(asctime)s - %(levelname)s - %(message)s" 指定logger输出格式
logging.basicConfig(filename='error.txt',level=logging.DEBUG, format=LOG_FORMAT) 指定输出级别和输出文件 并格式化
python推导式:
推导写法
numbers1=[x for x in range(100) if x % 3 ==0]
print(numbers1)
列表推导式
name=['bob','tom','alcie','jerry','wendy','smith']
print(name.upper() for name in name if len(name)>3)
字典式推导 交换values和key的至、值
mcase={'a':10,'b':22}
mcase_frequency={v:k for k,v in mcase.items()}
print(mcase_frequency)
集合 推导 set集合中不能有重复的
squared1={x**2 for x in[1,1,2]}
print(squared1)
python迭代器 :
format=LOG推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以
将循环和条件判断结合,从而避免语法冗长的代码ORMAT)、
基本用法:
from collections import Iterable 导入相应模板
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()
class IteratorDemo:
def __init__(self,start=0,end=0):
self.start=start
self.end=end
def __iter__(self):
return self #返回自己对象本身
def __next__(self):
if self.start>self.end:
i=self.start
self.start+=1
return i
else:
raise StopAsyncIteration()
it=IteratorDemo(0,5)
for i in it:
print("=======",i)
python生成器 :
在 Python 中,使用了 yield 的函数被称为生成器(generator)。
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
调用一个生成器函数,返回的是一个迭代器对象
#第一种实现生成器的方式 推导外面写()
#自动调用__next__ test=(x for x in range(10)) print(test.__next__()) print(test.__next__())