python风4
1.匿名函数 格式:lambda x:x+1 x:冒号前x,是普通函数的形参,可以不接收参数(x可以不写) :x -- 冒号后x,是普通函数的返回值(只能返回一个数据类型)(x必须写)     函数体中存放的是代码 生成器体中存放的也是代码 就是yield导致函数和生成器的执行结果不统一 匿名函数拆解:     2.内置函数 print(dict(k=1,v=2,c=3)) 合并字典的方法: 两个字典的键必须是字符串 print() 屏幕输出 sep -- 每个元素之间分隔的方法,默认为空格 end -- print执行完后的结束语句,默认换行符n file -- 文件句柄,默认显示到屏幕 flush -- 刷新 sum() --求和 sum([1,2,1]) -- 必须是可迭代对象,可迭代对象中的元素必须为整型 sum([1,3],100) -- 100 为指定起始位置的值 abs() -- 绝对值 dir() -- 查看当前对象的所有方法,返回的是列表 zip -- 拉链方法 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的内容,如果各个可迭代对象的元素个数不一致,则按照长度最短的返回  format -- 格式转换 print(format("alex",">20")) # 右对齐 print(format("alex","<20")) # 左对齐 print(format("alex","^20")) # 居中 print(format(10,"b")) # bin 二进制 print(format(10,"08b")) 八位 print(format(10,"08o")) # oct 八进制 print(format(10,"08x")) # hex 十六进制 print(format(0b1010,"d")) # digit 十进制 reversed -- 反转  高阶函数 所有的高阶函数在内部都进行了for循环 filter -- 过滤  print(list(filter(lambda x:x>2,[1,3,4,5]))) 1,指定过滤规则(函数名[函数的内存地址]) 2,要过滤的数据 map -- 映射函数 (将可迭代对象中的每个元素执行指定的函数)  sorted -- 排序函数    max() -- 最大值 min() -- 最小值 reduce -- 累计算 from functools import reduce  3.闭包 4.装饰器 第一版装饰器  语法糖 python帮咱们做的一个东西,语法糖 要将语法糖放在被装饰的函数正上方   不带语法糖的装饰器  5.装饰器进阶 语法糖:@auth(参数) 多个装饰器装饰一个函数 多个装饰器装饰一个函数的时候,先执行离被装饰函数最近的装饰器 小技巧: V  5.递归 递归的应用场景: 6.自定义模块 模块的两种用法 当作模块被导入 当作脚本被执行 if __name__ == "__main__": 当文件被当做模块被调用的时候__name__返回的当前模块名 当文件当做脚本执行时__name__返回的__main__ - 只有py文件当做模块被导入时,字节码才会进行保留 注意自定义模块的名字,不能与内置模块重复 注意自己的思路 -- 循环导入时建议 导入模式放在需要的地方,不能交叉导入 不建议一行导入多个模块 通过__all__ 控制要导入的内容` `__all__ = ["func"]` from test import * -- 拿整个模块 pip -- 管理包工具 7.time 将结构化时间转换成字符串 time.strftime() time_g = time.localtime() print(time.strftime("%Y-%m-%d %H:%M:%S",time_g)) 将字符串转换成结构化时间 time.strptime() str_time = "2018-10-1 10:11:12" time_g = time.strptime(str_time,"%Y-%m-%d %H:%M:%S") print(time_g) 将结构化时间转换成时间戳 time.mktime() time_g = time.localtime() print(time.mktime(time_g)) %Y 年 %m 月 %d 日 %H 时间 %M 分钟 %S 秒 8.datatime from datetime import datetime print(datetime.now()) # 获取当前时间 将对象转换成时间戳 可以进行加减运算 from datetime import datetime,timedelta print(datetime.now() - timedelta(days=1)) -- 按天减(减一天) print(datetime.now() - timedelta(hours=1)) --- 按小时减 9.random -- 随机数 lst = [1,6,7] random.shuffle(lst) 洗牌 将有序的数据打散 print(lst) 10.软件开发规范 11.sys 12.序列化 json.dump(dic,open("a","a",encoding="utf-8")) 将源数据类型转换成字符串,写入到文件中 print(json.load(open("a","r",encoding="utf-8"))[‘key‘]) 将文件中字符串转成源数据类型
pickle 只有python有,几乎可以序列python中所有数据类型,匿名函数不能序列 a = pickle.dumps(func) 将原数据类型转换成类似字节的内容 print(pickle.loads(a)) 将类似字节的内容转换成原数据类型 13.os 文件夹: os.mkdir("文件夹名") -- 创建文件夹 os.rmdir("文件夹名") -- 删除文件夹 os.makedirs("文件夹名/文件夹名") -- 递归创建文件夹 os.removedirs("文件夹名/文件夹名") -- 递归删除文件夹名 os.listdir("绝对路径") -- 查看当前文件夹下所有内容 文件: os.remove("绝对路径") -- 删除文件,彻底删除,找不回来 os.rename() -- 重命名 路径: os.path.abcpath("文件名") -- 返回的是绝对路径 os.path.split("绝对路径") -- 将路径分割成一个路径和一个文件名  os.path.dirname("绝对路径") -- 获取到父目录  os.path.basename("绝对路径") -- 获取文件名  os.path.join("绝对路径","文件名") -- 路径拼接(非常重要)  判断: os.path.exists("绝对路径") -- 判断当前路径是否存在 os.path.isabs("绝对路径") -- 判断是不是绝对路径 os.path.isdir("绝对路径") -- 判断是不是文件夹 os.path.isfile("绝对路径") -- 判断是不是文件 os.path.getsize("绝对路径") -- 获取文件大小 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |