python
今天写点啥
趁现在……
展开
-
Python:魔法方法总结
#常用的魔术方法:在特定的操作时会被自动调用#__init__()方法:初始化一个类,在创建实例对象为其赋值是使用#__str__()方法:在将对象转换成字符串str(对象)测试的时候,打印对象的信息#__new__()方法:创建并返回一个实例对象,调用一次,就会得到一个对象#__class__()方法:获得一致对象的类#__del__()方法:对象在程序运行结束之后进行对象销毁的时候调用该方法,释放资源#__str__() 方法class Animal(object): prin原创 2020-10-13 20:39:00 · 508 阅读 · 0 评论 -
Python:面向对象总结
# 面向过程:根据业务逻辑从上到下写代码,按照步骤去解决问题 关注的是怎么做 不适合做大项目#面向对象:关注的是设计思维 关注的是谁来做 适合大项目#类:就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象是类的具体实现#对象:根据模板创建的实例,通过实例对象可以执行类中的函数 类是对象的抽象#类的组成:类名、属性、方法#如创建人类:类名:人 属性:年龄、身高 方法:吃、跑#类是具有一组相同或相似的特征【属性】和行为【方法】的一系列对象的集合#对象:对象是实实在在的一原创 2020-10-13 20:37:04 · 146 阅读 · 0 评论 -
Python:静态方法总结
#静态方法:类对象所拥有的的方法,需要用@staticmethod来标识为静态方法,静态方法不需要任何参数class Person(object): country='china' def __init__(self,name): self.name=name @staticmethod #标识为静态方法 def get_countey(): #静态方法不需要传任何的参数 return Person.country p原创 2020-10-13 20:35:57 · 480 阅读 · 0 评论 -
Python:间接继承
class GrandFather(): def eat(self): print('吃的动作') pass passclass Father(GrandFather): passclass Son(Father): passs=Son()s.eat() #间接调用祖父类的方法print(Son.__mro__)#总结:在类的传递过程中,父类称为基类,子类称为派生类,父类的属性和方法可以一级一级的传递到子类中print('-原创 2020-10-13 20:34:45 · 236 阅读 · 0 评论 -
Python:递归函数总结
# 递归函数:函数在内部不调用其他的函数,而是调用自己本身,必须有一个明确的结束条件# 优点:逻辑简单# 缺点:容易出现内存资源紧张,甚至内存泄漏def result(n): a=1 for item in range(1,n+1): a*=item pass return aprint('10的阶乘是{}'.format(result(10)))print('--------------------------')def d原创 2020-10-13 20:32:23 · 504 阅读 · 1 评论 -
Python:贪婪与非贪婪
#在 * ? + {m,n} 后面加上?,使贪婪变成非贪婪import reli=re.match('.*\d','a22222').group() #贪婪模式:在满足条件下,尽可能多匹配print(li)print('------------------------------')li1=re.match('.*?\d','a22222').group() #非贪婪模式,在满足条件下,尽可能少匹配print(li1)运行结果...原创 2020-10-13 20:29:54 · 78 阅读 · 0 评论 -
Python:类方法总结
#类方法:类对象所拥有的的方法,需要用@classmethod来标识,第一个参数必须为类对象,# 一般以cls作为第一个参数,类方法可以通过类对象,实例对象调用#类方法只要可以对类属性和类方法进行访问和修改class Person(object): country='china' #类属性 def __init__(self,name): self.name=name @classmethod #类方法,用装饰器classmethod装饰 即声明原创 2020-10-13 20:28:32 · 106 阅读 · 0 评论 -
Python:类属性和实例属性总结
#类属性:类对象所拥有的的属性,它被所有类对象的实例对象共有,类对象和实例对象可以访问#实例属性:实例对象所拥有的属性,只能通过实例对象访问class Student: name='李明' #类属性 def __init__(self,age): self.age=age #实例属性 pass passStudent.name='邓超' #通过类对象去修改类属性 因为name属于类属性print('-----------李明的数据--原创 2020-10-10 12:08:04 · 238 阅读 · 0 评论 -
Python-爬虫:XPATH使用总结
# XPath的常用规则:#nodename:选取此节点的所有子节点#/:从当前节点选取直接子节点#//:从当前节点选取子孙节点#.:选取当前节点#..:选取当前节点的父节点#@:选取属性#匹配规则://[@lang='eng']# from lxml import etree# text='''# <div># <ul># <li class="item-0"><a href="link1.html">first item</a原创 2020-10-10 12:06:43 · 171 阅读 · 0 评论 -
Python-爬虫:requests使用总结
# import requests# r=requests.get('https://www.baidu.com') #调用get方法# r=requests.post('http://httpbin.org/post')# r=requests.put('http://httpbin.org/put')# r=requests.delete('http://httpbin.org/delete')# r=requests.head('http://httpbin.org/get')# r原创 2020-10-10 12:05:49 · 410 阅读 · 0 评论 -
Python:一些参数、方法的解析总结
#urlopen() 模拟浏览器的发起过程,同时还带有处理授权认证、重定向、浏览器cookie以及其他内容# import urllib.request# response=urllib.request.urlopen('https://www.python.org') #python官网的抓取# # print(response.read().decode('utf-8'))# print(type(response)) #查看响应的类型# print(response.stat原创 2020-10-10 12:03:44 · 140 阅读 · 0 评论 -
Python:私有化方法总结
#私有化的方法一般是内部调用,子类你能继承,外部不能调用class Animal(): def __eat(self): print('吃东西') pass def run(self): self.__eat() #在内部可以调用私有化方法 print('飞快地跑') passclass Bird(Animal): passb=Bird()# b.__eat() #不能调用私有化方法原创 2020-10-10 11:58:08 · 299 阅读 · 1 评论 -
Python:私有化属性总结
#使用私有属性的场景:#把特定的一个属性隐藏起来 不想让类的外部直接调用#保护这个属性 不让属性的值随意的改变#保护这个属性 不像让派生类【子类】去继承class People: def __init__(self): self.__name='张三' #__是将属性私有化 self.age=18 pass def __str__(self): ''' 在内部直接返回 :retu原创 2020-10-10 11:55:33 · 400 阅读 · 0 评论 -
Python:爬虫基础知识总结
#2.1# URI:统一资源标志符 URL:统一资源定位符 URN:统一资源名称 只命名资源而不定位资源#URL是URI的子集 URI包含URL和URN#HTTP:超文本传输协议#HTTPS:HTTP的安全版,传输的内容经过SSL加密#网络请求包含#name:请求的名称,一般会将URL的最后一部分内容当做名称#status:响应的状态码 200代表正常响应#type:请求的文档的类型#initiator:请求源,用来标记是由哪个对象或进程发起的#size:从原创 2020-10-10 11:48:39 · 188 阅读 · 0 评论 -
Python:模块导入总结
#模块一般放在文件的最前面#模块的调用:模块名.函数名 可以防止在不同的模块出现的相同方法名import timeprint(time.ctime())#模块搜索路径:当前目录、环境变量、默认路径,Linux系统print('-----------------------------')#一个模块存在很多个函数,如果只想导入其中几个函数,可以使用:from XXX import XX方式导入#缺点:容易与名称空间中的名字冲突from time import ctime,timep原创 2020-10-10 11:44:35 · 169 阅读 · 1 评论 -
Python:析构函数总结
class Animal(object): def __init__(self,name): self.name=name print('__init__方法被调用') pass #析构方法:当对象被销毁时Python解析器会自动调用 def __del__(self): #这个是析构方法 print('__del__方法被调用') print('%s对象被销毁'%self.name) pas原创 2020-10-01 18:06:15 · 206 阅读 · 0 评论 -
Python:文件操作总结
#文件操作的步骤:# 打开文件# 读/写文件# 保存文件# 关闭文件#打开文件:使用open函数:可以打开一个已经存在的文件或者创建一个新文件#语法:open('文件名','打开模式') open('Test.txt','w')# fobj=open('./jr.txt','w',encoding='utf-8') #注:会将存在的文件覆盖## fobj.writ原创 2020-09-29 19:21:07 · 123 阅读 · 0 评论 -
Python:文件备份总结
def copyFile(): old_file=input('请输入要备份的文件名:') file_list=old_file.split('.') #分割文件名 new_file=file_list[0]+'_备份.'+file_list[1] old_f=open(old_file,'r') #打开要备份的文件 new_f=open(new_file,'w') content=old_f.read() #读取需要备份的文件内容原创 2020-09-29 19:16:15 · 557 阅读 · 0 评论 -
Python:正方系统抢课
#Cookie池中保存账号和登录后的Cookie信息,并且还定时检查每个Cookie的有效性,如果有无效的Cookie,就删除# 该Cookie并模拟生成新的Cookie,还要包含获取随机Cookie的接口import requestsfrom PIL import Imagefrom bs4 import BeautifulSoupimport copyimport timeimport reimport osclass Spider: class Lesson:原创 2020-09-29 19:10:17 · 1118 阅读 · 1 评论 -
Python:引用总结
#不可变类型a=1def func(x): print('x的地址{}'.format(id(x))) x=2 print('x修改后的地址{}'.format(id(x))) #x的值修改后得到一个新的地址 print(x) passprint('a的地址{}'.format(id(a)))func(a)print(a)#可变类型li=[]def testRenc(parms): li.append([1,2,3,4,5])原创 2020-09-29 19:04:45 · 59 阅读 · 0 评论 -
Python:序列总结
#all()函数:对象中的元素除了0、空、false外都算trueprint(all([]))print('----------------------')print(all(()))print('----------------------')print(all([1,2,3,4,False]))print('----------------------')print(all((1,2,3,0)))print('----------------------')print(all((1,2原创 2020-09-29 19:02:59 · 240 阅读 · 0 评论 -
Python:异常处理总结
#异常处理的语法:try:# 可能出现错误的代码块# except:# 出错后执行的代码(指定类型捕获异常)# else:# 没有出错的代码块# finally:# 不管有没有出错都执行的代码块try: # print(b) a=1/0 passexcept N原创 2020-09-29 19:01:05 · 117 阅读 · 0 评论 -
Python:常用的匹配规则总结
#.的使用 一个点代表一个字符(除了换行符)import redata='aaaaa'pattern='.'res=re.match(pattern,data)print(res.group())#[]的使用:匹配中括号中的任意一个字符str='hello'res1=re.match('[he]',str)print(res1.group())pattern='[abc]' #使用中括号括起来的内容,代表一个集合,表示匹配集合内的任意一个字符#[abc]表示可以匹配a或b原创 2020-09-28 17:45:58 · 589 阅读 · 0 评论 -
Python:多态总结
#多态:多种形态、多种状态,同一种行为的对于不同的子类【对象】有不同的行为表现#多态必须发生在父类和子类之间、子类重写父类的方法class Animal: ''' 父类 ''' def say_who(self): print('我是一只动物') pass passclass Duck(Animal): ''' 子类 ''' def say_who(self): #重写父类的方法原创 2020-09-28 17:44:36 · 127 阅读 · 0 评论 -
Python:垃圾回收--引用计数
#三种垃圾回收方式:引用计数机制(为主)、标记-清楚、分代收集(为辅)import sysimport psutilimport osimport gcdef showMenSize(tag): pid=os.getpid() p=psutil.Process(pid) info=p.memory_full_info() memory=info.uss/1024/1024 print('{} memory used:{} MB'.format(tag,me原创 2020-09-28 17:42:36 · 148 阅读 · 0 评论 -
Python:匿名函数总结
#匿名函数:没有名字,使用lambda关键字去创建函数# 语法:lambda 参数1、参数2、参数3:表达式#特点:匿名函数冒号后面的表达式有且只有一个、匿名函数自带return,而这个return的结果就是表达式计算后的结果# 缺点:lambda只能是单个表达式,不是一个代码块,仅仅能封装有限的逻辑j=lambda x,y:x*yprint(j(23,34)) #通过变量j去调用匿名函数print('--------------------------------')# 双分支结构原创 2020-09-28 17:38:37 · 111 阅读 · 0 评论 -
Python:匹配字符数量总结
#* 匹配前一个字符出现一次或者无限次,即可有可无import reres=re.match('[A-Z][a-z]*','Harry') #第一个匹配大写,第二个匹配小写print(res.group())#+ 匹配前一个字符出现一次或者无限次,至少出现一次res1=re.match('[a-zA-Z]+','jy') #该语句表示大小写都匹配print(res1.group())#? 匹配前导字符出现一次或者0次res2=re.match('[a-zA-Z][0-原创 2020-09-28 17:37:22 · 878 阅读 · 0 评论 -
Python:动态绑定属性和方法总结
#运行中给对象添加属性和方法import types #添加方法的库class Animal(object): def __init__(self,name,age): self.name=name self.age=age pass passcat=Animal('小猫',2)print(cat.age)cat.color='黄色' #动态绑定color的属性print(cat.color)print('----原创 2020-09-28 17:35:24 · 263 阅读 · 0 评论 -
Python:分组匹配总结
#| 匹配左右任意一个表达式 ‘或’的关系import restring='fsvosdv23'rs=re.match('fsvosdv|fsvosdv23',string)print(rs.group())print('------------------------------------')# (ab)分组匹配 将括号中字符作为一个分组# 例如:匹配电话号码res=re.match('([0-9]*)-(\d*)','05467-23567345')print(res.g原创 2020-09-28 16:46:01 · 358 阅读 · 0 评论 -
Python:函数的返回值总结
#函数返回值:函数执行完后会返回一个对象,如果在函数的内部有return就可以返回实际的值,否则返回none。#类型:可以返回任意的类型,返回值类型取决于return后面的类型#在一个函数体内可以出现多个return,但只能返回一个return#如果在一个函数体内,执行了return,意味着函数执行完成退出,return后面的代码语句将不会执行def Sum(a,b): sum=a+b return sumpassSum(10,20)print('---------------原创 2020-09-28 16:43:05 · 756 阅读 · 0 评论 -
Python:函数的嵌套总结
def fun1(): print('--------------函数开始执行--------------------') print('-----------------函数体-----------------------') print('--------------函数执行结束--------------------') passdef fun2(): print('---------------第二个函数开始执行--------------------'原创 2020-09-28 16:41:49 · 176 阅读 · 0 评论 -
Python:带参函数的总结
# 参数的分类:# 必选参数、默认参数、可选参数、关键字参数# 参数是为了得到函数外部的数据# 必选参数def sum(a,b): #形式参数:只是意义上的一种参数,在定义的时候不占内存 sum=a+b print(sum) passsum(20,30) #20,30是实际参数:实实在在的参数,占内存地址的# 默认参数【缺省参数】def sum1(a=20,b=30): print('默认的参数调用%d'%(a+b)) pass原创 2020-09-28 16:40:04 · 1297 阅读 · 0 评论 -
Python:基本函数使用总结
def printInfo(): print('jr的身高是%f'%1.73) print('jr的体重是%f' % 120) print('jr的爱好是%s' % '打游戏') print('jr的专业是%s' % '计算机科学与技术') passprintInfo()print('-----------------------------------')#带参数的函数def printInfo(name,height,weight,hobby,job):原创 2020-09-27 14:11:40 · 80 阅读 · 0 评论 -
Python:内置函数的总结
#内置函数:Python自带的函数#取绝对值print(abs(-12))#取近似值print(round(3.464,2))#pow求次方print(pow(3,5))#动态执行的函数:eval()函数用来执行一个字符串表达式,并返回表达式的值#语法:eval(expression[,globals[,locals]])#globals:全局变量,如果被提供,则必须是一个字典对象#locals:局部变量,如果被提供,可以是任何映像对象a,b,c=1,2,3pri原创 2020-09-27 14:09:19 · 100 阅读 · 0 评论 -
Python:内存优化总结
#Python为了优化速度,使用了小整数对象池,避免为正数频繁申请和销毁内存空间#小整数值是[-5,256],对象是提前建立好的,不会被垃圾回收a=100b=100print(id(a))print(id(b))del adel bc=100print(id(c))a1=10000b1=10000print(id(a1))print(id(b1))del a1del b1c1=10000print(id(c1))#大整数池和小整数池的区别:# 结果都是一样的原创 2020-09-27 14:06:47 · 122 阅读 · 0 评论 -
Python:全局变量和局部变量的总结
#局部变量:在函数内部定义的变量【作用域仅仅在函数的内部】#不同的函数可以定义相同的局部变量,他们在各自的函数内部起作用,不会相互影响#局部变量的作用:为了临时的保存数据,需要在函数中进行定义保存#通过使用关键字global使得局部变量提升为全局变量def printInfo(): name='jr' print('{}'.format(name)) pass# def Test():# print(name) #name为局部变量,只能在上一个函数中调原创 2020-09-27 14:03:04 · 325 阅读 · 0 评论 -
Python:三态的总结(继承、封装、多态)
继承解析collections 模块中有一些派生自 ABC 的具体类;当然这些类还可以进一步被派生。此外,collections.abc 子模块中有一些 ABC 可被用于测试一个类或实例是否提供特定的接口,例如它是否可哈希或它是否为映射等。该模块提供了一个元类 ABCMeta,可以用来定义抽象类,另外还提供一个工具类 ABC,可以用它以继承的方式定义抽象基类。class abc.ABC一个使用 ABCMeta 作为元类的工具类。抽象基类可以通过从 ABC 派生来简单地创建,这就避免了在某些情况下会令原创 2020-09-27 11:17:04 · 313 阅读 · 0 评论 -
Python:self的一些使用
#self是和对象指向同一个内存地址,可以认为self就是对象的引用class People: def __init__(self,job): ''' :param job: 专业 ''' self.job=job pass ''' 定义类 ''' def eat(a,name,food): ''' 实例方法 :return:原创 2020-09-27 11:06:50 · 204 阅读 · 0 评论 -
python:re模块的总结
re.match解析re.match(pattern, string, flags=0)如果 string 开始的0或者多个字符匹配到了正则表达式样式,就返回一个相应的 匹配对象 。 如果没有匹配,就返回 None ;注意它跟零长度匹配是不同的。注意即便是 MULTILINE 多行模式, re.match() 也只匹配字符串的开始位置,而不匹配每行开始。如果你想定位 string 的任何位置,使用 search() 来替代(也可参考 search() vs. match() )re.fullmat原创 2020-09-27 11:00:48 · 103 阅读 · 0 评论 -
Python:property属性函数的总结
property解析class property(fget=None, fset=None, fdel=None, doc=None)返回 property 属性。fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。并且 doc 为属性对象创建文档字符串。一个典型的用法是定义一个托管属性 x:class C:def init(self):self._x = Nonedef getx(self): return self._xdef原创 2020-09-27 10:56:36 · 381 阅读 · 0 评论