![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础
文章平均质量分 64
Henry_Lv
这个作者很懒,什么都没留下…
展开
-
集合
集合set={1,2,3}里的元素只能是不可变的(如字符串,整型等,列表不能放在集合中),set中无重复元素,且无序.添加add()#只能添加一个元素删除pop()#随机删除remove()#删除指定元素,元素不存在时会报错discard()#删除指定元素,元素不存在时不会报错集合运算求交集set1.intersection(set2)或者set1&set2求并集set1.unio(set...原创 2018-03-23 22:08:46 · 111 阅读 · 0 评论 -
装饰器
装饰器本质就是函数,作用是为其他函数添加附加功能且必须满足以下两点:1.不修改原函数的代码2.不改变原函数的调用方式装饰器=高阶函数+函数嵌套+闭包高阶函数:满足以下任一条件既是1.把函数作为参数传入 2.把函数作为返回值函数嵌套+闭包:在函数中定义函数形成闭包例子:计算程序运行时间import timedef timmer(func): def wrapper(): ...原创 2018-03-29 14:09:15 · 117 阅读 · 0 评论 -
描述符
描述符的本质就是新式类,其至少实现了__get__(),__set__(),__delete__()中的一个,也被称为描述符协议;__get__():在调用一个属性时,触发__set__():在为一个属性赋值时,触发__delete__():在用del删除属性时,触发描述符的作用:用来代理另一个类的类属性(必须是类属性,不能在类的函数构造中),且描述符在自身调用,赋值,删除属性时不会被触发clas...原创 2018-04-04 20:55:27 · 237 阅读 · 0 评论 -
类的内置方法(三)
__str__与__repr__在用print()函数时是调用类的__str__方法进行输出,且__str__方法里必须return字符串__repr__是在Python解释器里被调用,当__str__方法不存在时print()函数会调用__repr__方法 class Foo: def __init__(self,name): self.name=name ...原创 2018-04-04 17:31:58 · 267 阅读 · 0 评论 -
类的内置方法(二 )
__getattr__与__getattribute__class Foo: def __init__(self,x): self.x=x def __getattr__(self, item): print('执行getattr') def __getattribute__(self, item): print('执行get...原创 2018-04-03 23:43:39 · 216 阅读 · 0 评论 -
生成器
列表解析与生成器表达式只要将列表解析式的[]改为()就是一个生成器,用next()或者for循环获得值res=[x**2 for x in range(20) if x%2==0]ret=(x**2 for x in range(20) if x%2==0)print(res,ret)#[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]#<gene...原创 2018-03-28 17:43:27 · 200 阅读 · 0 评论 -
类的私有属性以及内置方法(一)
类的私有化class People: _country='China'#私有属性,仍然可以通过._country访问 __language='Chinese'#私有属性,不可以通过.__language访问,可以通过_People__language访问 def __init__(self,name,age,gender): self.name=name ...原创 2018-04-02 21:56:55 · 491 阅读 · 0 评论 -
For循环机制
在可迭代对象内部有一个__iter__方法,使其变成一个迭代器使用for循环时,相当于调用对象的__iter__方法,然后调用不停__next__方法直到碰到StopIteration后结束l=[1,2,3,4,5,6]for i in l: print(i)相当于l=[1,2,3,4,5,6]iter_l=l.__iter__()print(iter_l.__next__())p...原创 2018-03-27 17:59:17 · 655 阅读 · 0 评论 -
文件操作
用open()函数打开文件f=open('d.txt','r',encoding='utf-8')data=f.read()print(data)f.close()输出你好hellohahaha11111111112222223333333d.txt文件为你好hellohahaha11111111112222223333333格式为open('文件地址','打开方式...原创 2018-03-27 17:22:40 · 128 阅读 · 0 评论 -
函数式编程
匿名函数形式为lambda 形参:表达式(相当于是return)lambda x:x+1等价于def f(x): return x+1当返回多个值时,表达式要用括号括起来lambda x,y,z:(x+1,y+1,z+1)匿名函数通常和其他函数一起使用,当单独调用时要用变量指向匿名函数然后调用(fun指向函数内存地址)fun=lambda x:x+1print(fun,fun(5))...原创 2018-03-27 10:54:08 · 127 阅读 · 0 评论 -
递归函数以及函数名即变量
函数名即变量定义函数时,函数名其实就是变量,指向函数。def foo(): print('from foo') bar()def bar(): print('from bar')foo()虽然函数foo中包含了未在foo之前未定义的函数bar,但是在调用函数foo()前已定义bar函数,在调用时会指向bar()函数,可以正常运行,结果为from foofrom bar...原创 2018-03-26 20:10:10 · 1218 阅读 · 0 评论 -
元类
元类是类的类,是类的模板元类是用来控制如何创建类的,正如类是创建对象的模板一样,而元类的主要目的是为了控制类的创建行为class Foo: def __init__(self,name): self.name=namef1=Foo('alex')print(type(f),type(Foo))元类的实例化的结果为我们用class定义的类,正如类的实例为对象(f1对象是...原创 2018-04-08 22:08:41 · 145 阅读 · 0 评论 -
类的装饰器
装饰可以是一个函数class Type: def __init__(self,key,type): self.key=key self.type=type def __get__(self, instance, owner): pass return instance.__dict__[self.key] de...原创 2018-04-08 21:23:56 · 176 阅读 · 0 评论 -
简单模拟选课系统(类的组合)
class School: def __init__(self,name,addr): self.name=name self.addr=addr def tell_school(self): print('你选择的是%s校区的%s'%(self.addr,self.name))class Course: def __ini...原创 2018-03-31 21:46:18 · 940 阅读 · 0 评论 -
类
类与实例属性class Room: style='欧式豪宅' def __init__(self,owner,width,length,heigh): self.owner=owner self.width=width self.length=length self.heigh=heigh def area(s...原创 2018-03-31 20:35:22 · 154 阅读 · 0 评论 -
上下文管理协议
__enter与__exit__class Open: def __init__(self,name): self.name=name def __enter__(self): print('执行enter') def __exit__(self, exc_type, exc_val, exc_tb): print('执行ex...原创 2018-04-07 22:05:01 · 361 阅读 · 0 评论 -
全局变量与局部变量
全局变量global局部变量只能在函数内进行更改,不会影响函数以外的值,即不可全局赋值global全局变量在函数内发生变化后会影响全局变量值,即可全局赋值x=10def local_x(): x=11 return '变量x是',xprint(local_x(),'全局变量x还是',x)('变量x是', 11) 全局变量x还是 10def global_x(): g...原创 2018-03-24 23:28:53 · 351 阅读 · 0 评论 -
time模块与random模块
time模块import time#时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量print('当前时间戳',time.time())#结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)# 将一个时间戳转换为当前时区的str...原创 2018-03-29 20:50:22 · 265 阅读 · 0 评论 -
爬虫之requests基础
Requests 基础# coding=utf-8import requests# 方法关系requests.get()requests.post()requests.put()requests.delete()# 参数# --method: 提交方式# --url: 提交地址# --parems: 在url中传递的参数,如requests.get(...原创 2018-06-14 17:10:39 · 348 阅读 · 0 评论