随笔分类 -  python学习记录

记录python学习中的收获和记录
摘要:异常处理: 异常分为2种, 一种是语法错误:必须在调试的时候处理掉 一种是逻辑错误:为了保证程序的健壮性与容错性,即在遇到错误时程序不会崩溃,我们需要对此异常进行处理 Exception异常是其他所有异常类的基类,可代表所有异常 s1 = 'hello' #异常多分支 try: int(s1) ex 阅读全文
posted @ 2020-04-29 23:05 轰天雷 阅读(154) 评论(0) 推荐(0)
摘要:知识碎片:locals() # 所有局部变量组成的字典locals().values() # 所有局部变量值的列表a = 0 or 2 or 1 # 布尔运算赋值,a值为True既不处理后面,a值为2print '%-10s %s' % ('aaa','bbb') # 左对齐 占10个字符print 阅读全文
posted @ 2020-04-27 22:22 轰天雷 阅读(154) 评论(0) 推荐(0)
摘要:通过 类的装饰器 + 数据描述符 为类的数据属性定义数据类型 class Typed:#通过类的描述符限制类的属性类型及实例化对象的属性,(数据描述符优先级最高) def __init__(self,key,expected_type): self.key=key self.expected_typ 阅读全文
posted @ 2020-04-25 01:36 轰天雷 阅读(121) 评论(0) 推荐(0)
摘要:上下文管理协议: with obj as f: '代码块' 1.with obj 》触发obj.__enter__(),拿到返回值 2.as f >f=返回值、 3.with obj as f 等同于 f=obj.__enter__() 4.执行代码块一:没有异常的情况下,整个代码块运行完毕后去触发 阅读全文
posted @ 2020-04-24 23:43 轰天雷 阅读(101) 评论(0) 推荐(0)
摘要:数据描述符定义:一 描述符本身应该定义成新式类,被代理的类也应该是新式类二 必须把描述符定义成这个类的类属性,不能为定义到构造函数中三 要严格遵循该优先级,优先级由高到底分别是1.类属性2.数据描述符3.实例属性4.非数据描述符5.找不到的属性触发__getattr__()1 描述符是什么:描述符本 阅读全文
posted @ 2020-04-23 01:32 轰天雷 阅读(239) 评论(0) 推荐(0)
摘要:通过 . 的方式访问、设置、删除对象属性的时候会触发类的内置属性__getattr__、__setattr__、__delattr__ class Dog: def __init__(self,name,age): self.name=name self.age=age def __getattr_ 阅读全文
posted @ 2020-04-21 20:02 轰天雷 阅读(148) 评论(0) 推荐(0)
摘要:包装:(通过继承来定制标准类型) 功能:实现对标准类型的属性的修改,或者对增加新功能 class List(list): def append(self,object): if type(object) is str: super().append(object)#调用父类的方法,修改append方 阅读全文
posted @ 2020-04-18 01:42 轰天雷 阅读(150) 评论(0) 推荐(0)
摘要:类的继承有两层意义:改变和扩展多态就是两层意义的具体实现机制 面向对象的多态 不同数据类型执行相同的方法 不同子类调用父类相同的方法,这个方法可以体现多态的体现方式,多态体现在执行的时候 多态是由继承来的 面向对象的封装: 第一层面:类就是麻袋,调用者看不到类的属性 第二层面:类中定义私有的只在内部 阅读全文
posted @ 2020-04-17 00:00 轰天雷 阅读(106) 评论(0) 推荐(0)
摘要:类:描述一类事物的共同特征,是一种抽象的概念 对象:类的具体实现 实例化:通过类创建一个具体的实例 过程:实例化的对象在调用自己的数据属性,然后通过类调用类的函数属性,如果不是使用.的调用方式,打印的是变量是全局定义的变量,非对象的属性 例题如下: class Dog:#D大写 name='类' d 阅读全文
posted @ 2020-04-14 23:14 轰天雷 阅读(142) 评论(0) 推荐(0)
摘要:作用:配置文件解析模块,用来增删改查配置文件内容,不区分大小写 配置文件案例: tets.ini [模块] key=value import configparser config = configparse.configParser()查询:config.read('test.ini') 读取配置 阅读全文
posted @ 2020-04-13 01:24 轰天雷 阅读(157) 评论(0) 推荐(0)
摘要:XML模块:(用到的时候再看)tree=xml.parse('xmltest.xml')root= tree.getroot()print(root.tag) 打印对象的标签root.attrib 获取对象的属性root.text 获取对象的文本内容 RE模块:re.findall("匹配条件"," 阅读全文
posted @ 2020-04-12 00:47 轰天雷 阅读(151) 评论(0) 推荐(0)
摘要:OS模块: os.getcwd()获取当前路径os.chdir()改变目录os.curdir返回当前目录os.pardir()父目录os.makedirs('a/b/c')创建多层目录os.removedirs()删除多层目录中的空目录os.mkdir()创建目录os.listdir()列出文件夹下 阅读全文
posted @ 2020-04-11 20:25 轰天雷 阅读(210) 评论(0) 推荐(0)
摘要:定义: 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。 重点: 1、模块的名字不要和自带的模块名字相同,不然会优先调用自己的那个模块,因为查找模块的时候是按照sys.path()的路径查找的(time,sys模块除外),可以使用import 模块先测试下名字是否有冲突 2 阅读全文
posted @ 2020-04-10 01:08 轰天雷 阅读(161) 评论(0) 推荐(0)
摘要:f.read(3)代表读取3个字符,如果是b模式打开的文件,则是读取三个字节f.flush将文件从内存刷到硬盘f.closeed文件如果关闭则返回Truef.encoding查看使用open打开文件的编码 tell查看光标位置seek移动光标truncate截断文件 0模式,从开头开始移动光标位置, 阅读全文
posted @ 2020-04-07 23:40 轰天雷 阅读(95) 评论(0) 推荐(0)
摘要:编程理论:面向过程面向对象函数式编程 函数是编程:高阶函数:1、函数接受的参数是一个函数名2、返回值中包含函数 map 函数处理序列的每个元素,得到的结果是一个“列表”,该列表的元素及位置与原一样filter 遍历序列中的每个元素,判断每个元素得到一个布尔值,如果是True就留下来reduce 处理 阅读全文
posted @ 2020-04-07 00:29 轰天雷 阅读(122) 评论(0) 推荐(0)
摘要:read读取文件全部内容,默认就是读模式,所以不需要指定模式: f = open('test2.py',encoding='utf8') data = f.read() print(data)f.close() redline读取文件的一行内容,打印的时候加上end=''否则会有空格: f = op 阅读全文
posted @ 2020-04-07 00:21 轰天雷 阅读(123) 评论(0) 推荐(0)
摘要:字符串相关方法:print(str.conut("a")) #查找字符串的个数,后面可跟上索引范围进行统计,列表一样的print(list.count("yuansu")) #查找元匹配元素的个数 print(tsr.casecold()) #将字符串转换成些小写,使用范围较广print(tsr.l 阅读全文
posted @ 2020-04-06 15:42 轰天雷 阅读(163) 评论(0) 推荐(0)
摘要:集合概念: 每个元素必须是不可变类型 没有重复元素 无序 可变类型:列表,字典 不可变类型:数字、字符、元组 集合之间的关系运算: intersection 求交集 & union 求并集 | diffrence 求差集 - sysmmeteric_diffrence 求交叉补集 ^ 删除元素: . 阅读全文
posted @ 2020-04-05 11:15 轰天雷 阅读(244) 评论(0) 推荐(0)
摘要:列表(list)的属性:有序的切片取值索引取值列表可以被修改列表可以嵌套任何类型可以被for循环 列表的方法:.append() 在列表最后新增元素,通过切片添加多个元素.clear() 清空列表.copy() 浅拷贝.count() 根据元素值计算元素出现的次数.extend() 扩展列表,参数为 阅读全文
posted @ 2020-04-03 14:07 轰天雷 阅读(140) 评论(0) 推荐(0)
摘要:一、数字: int: test = "123" test.int() 将字符转换成数字bit_length: a = 5 a.bit_length() 计算数字至少用多少为2进制表示 二、字符串的方法: 1、删除空格: .lstrip()左边空格 .rstrip()右边空格 .strip()左右空格 阅读全文
posted @ 2020-04-03 00:15 轰天雷 阅读(129) 评论(0) 推荐(0)