07 2019 档案
摘要:Python 操作SQLite 如果数据多了存入文件就不太方便了,需要用到数据库 SQLite是一个关系型数据库,比较轻便,没有专门进程或服务维护(如没有用户、角色等),以文件的形式存在,适合小型项目 01 Python项目操作SQLite数据表 (1)创建项目 (2)创建库和表 老师安装了一个软件
阅读全文
摘要:准备excel数据 安装第三方包——读史xlrd 写是xlwt 打开excel并读取所有的工作簿 读取excel某个sheet中具体数据
阅读全文
摘要:Json也是多语言通用的数据交互格式 创建一个json目录和一个文件 字典表数据转换为json数据——dumps(s代表字符串非复数含义) Json数据转换为字典表——loads(s代表字符串非复数含义) 把数据以json格式写入文件中——dump(注意没有s因为不是转为字符串) 读取json文件—
阅读全文
摘要:新建项目3 导入之前的CSV文件 并新建一个py文件 类似29课内容,创建一个项目的虚拟环境 模拟把程序中数据写入CSV文件(注意区分写入一行和写入多行函数区别) 结果:每行多加了一个空行 修改代码,修该改open方法写入时候增加一个参数newline为空 以dict形式写入CSV文件
阅读全文
摘要:很多语言进行数据交互时,用类似txt肯定不方便,很多时候可以用CSV格式的文件,CSV(c表示逗号,s表示分隔,v表示value)即逗号分隔值,TSV表示table键分隔的值 新建一个目录csv 再新建CSV文件(老师从本地数据库导入) 老师用的数据库是SQL Server,从数据库导出CSV文件
阅读全文
摘要:今天讲的内容是关于数据文件的读写,我们都知道如果是普通的文本文件就比较简单,我们可以使用自带的open 方法打开我们的文件,可以使用read 和write进行读写 回顾,我们把不同文件的操作放到不同文件里面 新建一个目录txt,并在下面新建一个run的python文件 查看成文文件 读取文件 分别使
阅读全文
摘要:01 虚拟环境配置 不同项目可能用到不同的包或者不同的库。 一般情况是都安装到全局,但是这样不太方便,我们可以安装到虚拟环境中,从全局继承过来。这样不同的项目不会互相影响。 另外不同版本的一个解决方案也是用虚拟环境来做。 在项目下创建main文件 现在我不想用全局的解析器, 创建一个目录env文件夹
阅读全文
摘要:05参数化装饰器——装饰器更通用 参数化装饰器如何理解,简单理解就是让装饰器可以通用。场景举例,现在有个需求要改某一段文字,既要加<P>标签,又要加<B>,还有加<Div>。是不是意味着需要定义多个装饰器, 答案不需要,可以通过参数化形式共用一个装饰器,传入不同参数就可以了。 001装饰器未使用参数
阅读全文
摘要:04 类定义装饰器 上节通过函数定义装饰器,本节通过类定义装饰器 001 定义类装饰器 定义一个类,类里面两个函数,一个构造函数init(),一个调用函数call() 构造函数init时候,传递一个函数func()进来 调用函数call(),用于装饰传递进来的函数 用装饰器类P修饰get_text(
阅读全文
摘要:03 函数定义装饰器 前面讲解了装饰器的一些概念和装饰器会用到的函数的知识,接下来讲解装饰器的定义,有两种方式可以定义装饰器一种是通过函数定义,一种是通过类定义。 001函数定义装饰器 如何定义 装饰器名称本身是一个函数,定义时候类似函数一样定义 装饰器需要修饰另外一个函数,所以装饰器需要一个传入一
阅读全文
摘要:02函数嵌套及跨域访问 001函数嵌套 要点:返回的函数名有括号返回的是结果,没有括号返回的是对象地址 002函数作用域
阅读全文
摘要:装饰器属于高级知识,自己定义装饰器情况较少。但我们会用到包里面或第三方中的装饰器, 01函数基础 001概述 之前在函数定义时,讲过类里面的方法可以通过@staticmethod把方法定义成静态方法或者叫类的方法,从而区别于实例方法。 场景:如对函数添加一些跟踪或者日志功能,或者调试时候验证有效性测
阅读全文
摘要:讲一个新模块, 该模块给我们提供一个抽象层,我们的程序最终解决还是要依靠多线程和多进程,但是我们不用考虑多进程和多线程的实现细节,我们通过python封装好的组件,能够快速实现多进程和多线程的编码 当我们解决需求时,需考虑好是IO密集型用多线程还是计算密集型用多进程。该模块下提供了多线程执行器和多进
阅读全文
摘要:06 multiprocessing多进程模块 之前讲解了多线程的开发,合理利用多线程可以提高效率,但是由于Python GIL全局解释器锁的限制,多线程更多的适合IO密集型的操作,因为IO密集型会随时释放GIL,这样可以允许更多的并发。所以IO密集型首选多线程。 但是如果是计算密集型,这时候我们可
阅读全文
摘要:05队列queue 通俗理解就是排队,典型的保障多线程共享资源的有序操作。 Python提供了模块queue,分为三种队列,先进先出、后进先出(即栈)、优先级别队列(由算法规则决定出的顺序) 001 以先进先出队列为例 代码导入模块 生产者:每隔半秒往队列放入一个随机数,一共放五个 消费者:每次取内
阅读全文
摘要:001 场景例子 三人同时往一个框里放鸡蛋,没有锁情况,会出现顺序混乱 结果是混乱的 002改进 声明一个锁 放鸡蛋时候加锁和开锁。或者用with lock: 主函数和程序入口 结果正确
阅读全文
摘要:001 例子1:子线程统一执行 代码说明: 声明数组存放线程实例,目的是子线程统一执行开始 threading.Thread()方法的参数说明: 第一个参数group默认为空,无实际意义,为后来版本预留位置 第二个参数target,表示当前线程执行哪个函数 第三个参数args:第二个参数里面函数的是
阅读全文
摘要:多线程并非并发编程的唯一技术手段,但是用的比较多的还是多线程。 001 单线程例子 创建文件 002 多线程例子 缺点没有控制进程结束的机制 _thread已经不推荐使用了(所以前面有有个下划线),学习阶段用于实验 (1)新建文件 函数_thread(第一个参数,第二个参数) 第一个参数,只需要写函
阅读全文
摘要:OS模块常用功能 获取版本 获取工作目录 获取工作目录下面内容 切换工作目录 获取某个目录下面内容 获取当前进程 获取父级进程 了解例子略,有兴趣自己研究
阅读全文
摘要:02 sys模块应用 001观察平台与版本信息 导入 查看平台名称/python版本 Sys.path——显示了一些目录环境,如解析器放在哪个路径下,主环境在哪里,pycharm的路径在哪里 002 观察异常信息 系统里面通过了可以捕获最近的一些异常信息 可以捕获当前程序最后抛出的异常 003 命令
阅读全文
摘要:01系统工具 背景介绍,系统工具就是用于管理系统的工具。如window的命令行工具,linux下的shell脚本,Mac系统叫终端。 Python中提供了模块可以直接操作各系统的系统工具,具体模块有很多,主要讲sys和os,其中os支持跨平台,且os.path提供文件及目录工具
阅读全文
摘要:综合应用 001字符串切割 分隔符切割字符串 非字母形式切割 减号切割 减号切割且把减号包括在结果里面 Spile的另外一个参数,maxsplit表示拆分的最大数量 maxsplit=2表示保留两个切割结果,其余的作为一个整体 maxsplit=1表示只保留一个 002字符串替换sub 如果用模式编
阅读全文
摘要:05 Group编组 该小结查看更详细的编组对象group 001场景 需求:匹配前后字符的模式和内容都一直的结果 下面模式不对,无法匹配内容一致 ‘\1’表达的含义是:在当前的位置重现刚刚的第一个编组,1是模组序号 下面文本没有符合的内容,所以无法匹配 下面内容匹配成功 02模式组声明及声明同时取
阅读全文
摘要:04 Python正则模式对象之MatchObject MatchObject就是模式对象,如果模式用括号进行了分组,MatchObject可以用group等方法进行观察细节 例子 查询有多少个匹配项,用findall 观察细节,加括号进行分组,分组后用group()或者group(0)表示所有分组
阅读全文
摘要:模式分为编译和非编译两种 模式反复重用,建议用编译方式 ,临时用建议用非编译方式 例子1 方式1:先定义一个模式字符串如pattern,并对模式字符串进行编译用方法compile 方式2:不进行编译,直接用re下面的findall(‘模式’,查看内容) 编译小细节:需要注意转移字符 默认从第0个字符
阅读全文
摘要:02 语法:特殊符号与字符 001匹配规则——字符、量词 简要记忆:大写取反\D \S \W 002 贪婪与非贪婪、边界匹配 简单理解:贪婪找到最大范围匹配内容,非贪婪找到最小范围匹配内容 例子:假设有下面文本内容 贪婪匹配 如: 匹配结果如下: 非贪婪匹配——问号 问号说明: 单个字符后面加一个问
阅读全文
摘要:01正则表达式概述 举例: \d+ 用于匹配数字 [A-Z]\w+ 用于匹配首字母大字开头的单词 简要概述
阅读全文
摘要:字符与编码 01 字符串本质 Python字符串相关概念 字符串 str 字节 bytes 字节数组 bytearray 电脑字符串存储机制 字符库:A、B每个字符有一个代码点如A是65 B为66,这种是方便人类读写的形式,但是最终需要存入计算机的CPU和内存,需要转换成字节的二进制,就涉及到字节的
阅读全文
摘要:对象持久化 01持久化概述 序列号和反序列化 内存中数据想存储到硬盘即持久化,举例游戏中途状态存储为下次玩耍保存 02使用格式化文本 扁平文件即文本文件,文本初衷即保存文本。 在内存中运行的一些对象或数据结构都有一定的类型,如列表 字典表 元组,存入文本变成纯文字,当再次载入内存需要反序列化 写入文
阅读全文
摘要:数值 日期与时间 01小数格式化、取整、四舍五入 定义一个整形,一个浮点型,一个负的浮点型 两种方式格式化 方式一用format(a) 方式二f‘{a}’其中f是format的缩写 浮点型格式 千分位分割浮点型 精度定义 精度保留两位例子 百分比形式显示 截断函数trunc()——非四舍五入 向下取
阅读全文
摘要:unittest单元测试 01单元测试概述 02 测试代码组织 略 03常见的断言方法 04类与测试装置 定义一个计算器类 测试类 改进后的测试类 测试类经常使用setup方法和tearDown方法一个用于测试前使用,一个用于测试后使用 如setUp可以用于测试类的实例化,tearDown可以用于关
阅读全文
摘要:异常处理及测试 01常见错误类型 语法错误:SyntaxError 语义错误:如除以0 逻辑错误:重新分析过程排查 02异常处理 语法:try Except 用于捕获异常 else 都没有异常加一个else finally(最终都要执行的内容,如文件打开后需要关闭,或数据库需要释放资源) raise
阅读全文
摘要:面向对象编程OOP 01内容回顾 02属性@property本质是函数 未用属性前内容 使用属性后内容 @property 属性本质是函数,但是用起来像字段 03继承、多态示例 继承通过下面的一个基类 和一个派生类讲解 里面用到了继承和多态 【基类】 【派生类】 【函数调用】 04类嵌套如Emplo
阅读全文
摘要:面向对象编程OOP 01 方法__repr__()和__str__() __repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试 __rept__()和__str__()方法区别 在控制台交互测试时: 输入b返回__rept__()
阅读全文
摘要:面向对象编程 01概述 面向对象特征:封装、继承、多态 02例子 初始化函数中的self,类似于java中的this 表示不同的实例,为什么用self因为不知道实际用哪个实例所以统称为self (推荐开发时导入整个模块) 说明:打印book3时,如何实现自定义类型 增加类型方法 控制台重新交互运行
阅读全文
摘要:包与模块管理及面向对象初步 01模块 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。 创建自己的模块时,要注意: 模块名要遵循Python变量命名规范,不要使用中文、特殊字符; 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执
阅读全文
摘要:函数应用与工具 01 Lambda 接上一节 无参数例子 有参数 多个参数 02Python特性:函数名作为参数传递 该特性可以模拟类似switch case语句,避免多个if else 字典表中的值表示引用各个函数,但是没有调用 完整代码(该内容少截取了hello_chinese) 这是一个Pyt
阅读全文
摘要:函数与Lambda表达式 01 函数传参(回顾) 不可变传复制,可变传指针地址 一类不可以改变:整型、浮点型、字符串、Tuple。传递不可变类型,传递副本给函数,函数内操作不影响原始值 一类可以改变,列表 字典表。传递可变类型,传递地址引用,函数内操作可能影响原始值。如果不想改变可以传递副本。 02
阅读全文
摘要:12 函数定义与参数 01函数 def 函数名(参数1,参数2……): 函数体 return 结果 函数名(实际参数) 最大化代码重用, 最小化代码冗余, 过程分解 例子1:形参 实参 def learning(name, course, start, end): print('{}报名k课程:《{
阅读全文
摘要:该内容笔记为参考网络笔记,该内容讲的更透彻一些 来自网址:(https://www.cnblogs.com/eastonliu/p/9156418.html) 01概述 理解可迭代对象(iterable)、迭代器(iterator)和生成器(generator)的三者关系。 02可迭代对象(iter
阅读全文

浙公网安备 33010602011771号