python的super super easy教程
文章平均质量分 78
从零开始
臭nian
脑袋瓜子笔记收集处
展开
-
python的super super easy教程 | 日志的轮转
日志的轮转按时间 日志文件名称接的是开始时间 TimedRotatingFileHandler按大小 一般日志文件名称接的是大小 RotatingFileHandler#按照大小轮转创建#传入参数:名字 最大字节 备份数量fh=RotatingFileHandler("sc-bak.log",maxBytes=100,backupCount=2)#按时间轮转创建处理器#传入参数:名字 时间单位 周期(这里表示2s轮转一次) 备份数量(保留几个历史轮转文件 2个)fh=Tim.原创 2022-02-28 18:45:36 · 183 阅读 · 0 评论 -
python的super super easy教程 | 闭包与装饰器
闭包与装饰器变量的生命周期:函数调用完了就释放里面的变量什么是闭包• 在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。• 闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。• 在给定函数被多次调用的过程中,这些私有变量能够保持其持久性def outer(x): a=300 def inner(): print(x+a) return innerd=outer(100)d()#输出为400 说明.原创 2022-02-26 16:45:19 · 131 阅读 · 0 评论 -
python的super super easy教程 | 元类
python中一切皆对象 类也是对象 类也是由另外一个类创建的对象在实例化的过程中,会调用__init__和__new__方法创建新对象, 该过程对于类而言也不例外。一个类本身又是另一个类的实例,用于创建类的类。负责生成其他类的类就是元类type:创建类的类,称之为元类class animal: def __init__(self,name): self.name=name def eat(self): print("i am eating....原创 2022-02-26 16:43:09 · 122 阅读 · 0 评论 -
python的super super easy教程 | python中的下划线 魔术方法
迭代器相对于生成器来说,需要自己手动实现__iter__和__next__方法类的三个特征:封装 继承 多态多态主要用于接口的重用经典类和新式类:在Python 2.x及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,不由任意内置类型派生出的类,则称之为“经典类”“新式类”和“经典类”的区分在Python 3.x之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),.原创 2022-02-26 16:41:27 · 233 阅读 · 0 评论 -
python的super super easy教程 | 类的继承
单例模式:无论实例化多少次,都只返回同一个对象实例,这个一般通过重写__new__实现(对全局配置用单例模式比较好)class only(): obj=None def __new__(cls, *args, **kwargs): if not cls.obj: cls.obj=object.__new__(cls) return cls.obja1=only()a2=only()print(id(a1),id(a2)).原创 2022-02-26 16:38:27 · 113 阅读 · 0 评论 -
python的super super easy教程 | 类
sorted()排序要巧用元组常见的三种编程范式 函数式编程• 函数可以作为参数传递、修改,或作为返回值• 函数内不修改外部变量的状态 面向过程编程 (函数)• 根据操作数据的语句块来实现功能。 面向对象编程 (OOP-Object Oriented Programming)• 把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法面向过程着重于做什么面向对象着重于谁去做数据结构是指相互之间存在一种或多种特定关系的数据元素的集合类:用来描述具有相同的属性和方法(能.原创 2022-02-26 16:36:52 · 172 阅读 · 0 评论 -
python的super super easy教程 | python函数式编程
yield关键字在python中的作用:• 当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。• 当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。• yield关键字:保留中间算法,下次继续执行send的值:除了可以使用 next() 方法来获取下一个生成的值,用户还可以使用 send() 方法将一个新的或者是被修改的值返回给生成器。除此之外,还可以使用 close() 方法来随时退出生成器。如:def counter(start_at=.原创 2022-02-26 16:34:14 · 254 阅读 · 0 评论 -
python的super super easy教程 | 迭代器与生成器
python推导式: 以从一个数据序列构建另一个新的数据序列的结构体列表推导式:(可以过滤嵌套列表)基本格式:variable = [返回值 for 返回值 in 列表 if 条件] 如: a=[1,2,3,4,5,6,7] b=[x**2 for x in a if x%2==1] 等同于 b=[] for i in a: if i%2==1: b.append(i**2) b=[i if i%2==0 .原创 2022-02-26 16:31:03 · 188 阅读 · 0 评论 -
python的super super easy教程 | 正则表达式3
既要匹配 又不想显示出结果,那就活用findall捕获分组和非捕获分组正则的命名分组:(?P<名字>正则规则)然后用search方法捕获 match.groupdict()就可以获取所有匹配的字符串-字典形式 {名字:匹配的字符等}match.groups()获取所有匹配到的字符串对于向后引用 只有捕获分组才可以向后引用 而从左到右的第一个分组就是第一组\1正则标记-第三个参数(使用多个的时候用|连接)re.I 是匹配对大小写不敏感 如re.findall(r'^py.原创 2022-02-26 16:30:07 · 107 阅读 · 0 评论 -
python的super super easy教程 | 正则表达式2
正则表达式的规则:基本正则:区间匹配 []:可以根据编码顺序来规定范围A:65 a:97 Z:90 z:122re.findall(r"[pP]ython","Python or python")的匹配结果包括python 和 Python[]里面的内容表示里面内容任选一个一个一个字符从左往右依次匹配 匹配成功就扔进列表也可以这么用[A-Za-z]表示大写字母和小写字母 也可以[A-z]区间取反:re.findall(r"^[pP]ython","Python or python"..原创 2022-02-26 16:28:41 · 223 阅读 · 0 评论 -
python的super super easy教程 | 正则表达式
动态规划算法十分重要:爬楼梯问题 找规律 最大子序和问题 最大子序积问题 找零钱问题等动态规划:1.中间状态值需要保存2.想办法找到规律 当前的问题可不可以由上一个或者是其他结果推导出来3.确定好初始状态动态规划比递归快python高级部分:正则表达式:1.数据挖掘(文本过滤)2.验证输入是否合法非必要时 不要用正则 计算很慢 耗cpu优点:提高工作效率 节省代码缺点:难以理解python里面一切皆对象在python里面的re模块:import re查找.原创 2022-02-26 16:26:37 · 179 阅读 · 0 评论 -
python的super super easy教程 | 时间复杂度和空间复杂度
现在常用subprocess.run()运行操作系统的命令要记模块随机整数:random.randint(start,end)随机小数:random.uniform(start,end)随机小数(0-1):random.random()是没有重复字母的:random.sample(范围)可以有重复字母 更加随机:random.choices(范围)time模块中时间表现的格式主要有三种: a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算.原创 2022-02-24 21:09:34 · 135 阅读 · 0 评论 -
python的super super easy教程 | python下划线
绝对导入:没有.或者..的导入就是绝对导入绝对导入的路径就是从top-level 一层一层往下数,超过top-level也会报错相对导入:(推荐使用相对导入)模块路径由.开的导入,就是相对导入相对导入不能识别到top-level那一层,只能识别top-level以下层 . 当前 .. 上一层 ... 上上层top-level:哪个模块作为主程序直接运行,那模块所在的的目录就是top-level若实在想导入top-level以上的,就把那个模块放入sys.pat.原创 2022-02-24 21:06:01 · 155 阅读 · 0 评论 -
python的super super easy教程 | python 模块与包
向图片的地址(url)发送请求来得到图片的内容爬虫: 获取网上资源 不要钱requests模块:requests.get(url) :向url发起请求 获取整个网页的数据 (浏览器默认发送的就是get请求)requests.post():提交页面信息requests.put():修改页面信息requests.delete():删除页面信息http方法:get() post() put() delete()html语言:<img>里面src指向的那一整段都是图片地址在字.原创 2022-02-24 21:03:15 · 110 阅读 · 0 评论 -
python的super super easy教程 | python文件操作
python文件操作:文件是存放在外部介质 (如硬盘、U盘) 上的一组完整信息的集合。这些信息可为各种文字、图形、图像、电影、音乐,甚至包括病毒程序等两种重要的文件类型• 文本文件(Text File)。文本文件是可直接阅读的,使用记事本打开即可看到文件的内容。• 二进制文件(Binary File)。这类文件将数据按照它的进制编码的形式存储。如BMP。由于这类文件内容是二进制编码,使用记事本打开是显然是乱码,BMP可用图片查看器解码。文本: 优点:输出内容友好,不需要手动..原创 2022-02-24 21:00:40 · 164 阅读 · 0 评论 -
python的super super easy教程 | 垃圾回收 引用计数 深拷贝和浅拷贝
input最好是放在函数外面range(i)表示从0到(i-1)函数的作用:接收一个参数 返回一个参数python的内存管理 (常见的面试题)python的内存机制: 以引用计数为主,分代回收,标记清除为辅的垃圾回收方式, 以及对小整型进行缓存以及简单字符驻留的内存池机制内存管理:怎么去回收?python是动态类型语言对象是存储在内存中的实体a=1000(a是对象名 1000是对象)对象名只是指向这一对象的引用引用和对象分离,是动态类型的核心引用可以随时.原创 2022-02-24 20:59:07 · 596 阅读 · 0 评论 -
python的super super easy教程 | 变量
匿名函数:在创建时不需要命名 函数体只能有一个表达式 不用写return 返回值就是表达式的值lambda 参数1,参数2等:表达式lambda x,y:x+y (返回x+y的和)函数里面最好不要再放进printmax():比较大小的函数 如max(1,2.3,5,55)sum():累加求和的函数round():保留小数的函数 如round(x,2) 保留x的两位小数递归函数:自己调用自己 形成循环定义出口条件 什么时候结束递归通常是一个大问题通过寻找规律可以缩小规模的.原创 2022-02-24 20:56:31 · 224 阅读 · 0 评论 -
python的super super easy教程 | 函数
函数:定义:def 函数名(参数1,参数2): return 结果没有定义return的时候 默认为none封装函数:1.方便维护 模块化设计2.减少代码冗余函数的参数1.形参 函数定义的时候指定的参数2.实参 函数调用的时候传递的参数按形参来分:1.必选参数:调用的时候必须要传的参数 如name age sex def stuinfo(name,age,sex): print(f"myname is {name},my age is {a.原创 2022-02-24 20:54:01 · 120 阅读 · 0 评论 -
python的super super easy教程 | 元组 字典
所有的赋值都是引用赋值元组tuple: 有序的项目集合 可以存放任何数据类型 不可变数据类型(不可在原基础上修改它)定义: tu1=()(若元组里面只有一个元素,一定要在后面打个逗号 如tu1=(1,)否则会认为tu1为int类型) tu2=tuple(“abc”)--》tu3元组就是('a','b','c')工厂函数(内建函数的一种):牵扯到类型转换的函数 如 tuple()int()str()list()(不需要导入import等额外操作就是内建函数)元组只有i.原创 2022-02-24 20:52:31 · 117 阅读 · 0 评论 -
python的super super easy教程 | 列表
import randomrandom.choice('pack01',k=12)#随机获取12个0或1 形成列表while 循环while 成立的条件: do somethingelse: do something """"""2021-11-04:如果函数是布尔类型 返回值应该是 True False 屏幕输出值为true falseabs()函数就是取数据的绝对值python里的容器类型(基本数据类型):列表 元组 字典 集合 字符串列表特点:.原创 2022-02-24 20:50:14 · 194 阅读 · 0 评论 -
python的super super easy教程 | 运算符
什么是表达式? 表达式由一个或多个操作数通过操作符组合而成。 最简单的表达式仅包含一个字面值常量或变量。 算数运算符:+ - * / //(向下取整 不需四舍五入) %(取余)a**b(取a的b次方)python2里整数除法答案为整数(地板除)(向下取整),需要精确答案只能转化为浮点数python3里整数除法答案为精确答案赋值运算符a+=1;a-=1;a*=2;a/=2;比较运算符(返回类型为布尔类型):x>y, x<y, x>=y, x<=y, x==y, x.原创 2022-02-24 20:45:42 · 114 阅读 · 0 评论 -
python的super super easy教程 | 字符串
#思考解决Git的冲突 (两人同时修改同一份文件的同一处地方的情况):大多数为手动解决 删除其中一个人的修改#可以自学一下git的分支管理 每个人分支是独立的,改变的时候不改变主分支(master),当测试通过时到时候会合并到master里面去#字符串是不可变序列 一旦创造str="abdd"就不可以在原基础上修改了 如 str[2]="c"是不可行的 因为str指向的为字符串开创的内存的地址#如果要修改只能重新开辟一个内存重新赋值,然后再让str指向新的地址 如:str="abcd"#字符串.原创 2022-02-23 20:57:52 · 97 阅读 · 0 评论 -
python的super super easy教程 | 数据类型
#数据类型#基本数据类型 (数字 字符串 布尔)#数字:整数 (在python3都叫做整型) type()函数看类型 python2整型分为长整型和整型 python3只有整型#浮点数############################ 复数complex(python中是j,非i)#dir()函数看属性 如a=-5+4jdir(a)##查看对象的属性方法 如果有这个属性就可以通过.方式去访问调用a.image ###获取虚部 无论定义的的时候是整型还是浮点型都会以浮点型方式输出.原创 2022-02-21 21:19:09 · 129 阅读 · 0 评论 -
python的super super easy教程 | 有关连接MySQL数据库
import MySQLdb #安装那个库之后要导入的模块名#访问数据首先建立连接 连接对象conn 为模块里面的函数# 其中里面为参数# 首先为IP地址host# 端口(缺省窗口3306可以不写)port# 用户名字user# 密码password# 访问哪个库哪个表名字db# 数据库的数据字符串的编码格式(一般为UTF8)charestconn=MySQLdb.connect( host=' ', user=' ', passwd=' ', db='.原创 2022-02-21 21:15:34 · 487 阅读 · 0 评论 -
python的super super easy教程 | python 基础
虚拟机 敲python3 这是python解释器 这就是一个程序 用这个程序来运行我们编写的python程序包括ls mv等命令都是需要运行文件的 想查看可以用输入which +命令 就可以看到相对应的运行文件echo 虚拟机中间的输出Linux里面的命令是python3 window是python交互式python解释器是一行一行执行的按ctrl d 或者 输入exit()推出Window的python推出为CTRL zLinux上面的.py文件是python...原创 2022-02-21 21:12:39 · 448 阅读 · 0 评论