![](https://img-blog.csdnimg.cn/20201211205644700.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
python笔记(持续更新中……)
文章平均质量分 83
python之骚
Xio小蜗
一条咸鱼的梦想……………………
展开
-
day34 网络编程
网络编程一 客户端/服务器架构二 osi七层三 socket层四 socket是什么五 套接字发展史及分类六 套接字工作流程七 基于TCP的套接字八 基于UDP的套接字九 粘包现象十 什么是粘包十一 解决粘包的low比处理方法十二 ????????解决粘包的方法十三 认证客户端的链接合法性十四 socketserver实现并发一 客户端/服务器架构1.硬件C/S架构(打印机)2.软件C/S架构互联网中处处是C/S架构如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种)原创 2021-01-14 16:54:21 · 147 阅读 · 0 评论 -
day33 异常处理
异常处理什么是异常异常处理何时使用异常处理什么是异常异常是程序发生错误的信号。程序一旦出现错误,便会产生一个异常,若程序中没有处理它,就会抛出该异常,程序的运行也随之终止。在Python中,错误触发的异常如下而错误分成两种,一种是语法上的错误SyntaxError,这种错误应该在程序运行前就修改正确>>> if File "<stdin>", line 1 if ^SyntaxError: invalid syntax另一类就是逻辑错误原创 2021-01-14 15:13:17 · 146 阅读 · 0 评论 -
day32 各种魔法方法
各种魔法方法`__init__` 在 类名() 触发它的执行`__setattr__` :在 对象.属性=值 会触发它的执行`__getattr__` :在 对象.属性 获取值会触发它的执行`__delattr__ ` :在 del 对象.属性 会触发它的执行多态性的使用`__getattribute__`无论属性在对象中是否存在,都先触发__getattribute__的执行`__setitem__`和`__getitem__`和`__delitem__``__format__`原创 2021-01-13 14:55:11 · 639 阅读 · 0 评论 -
day31 元类
元类元类介绍class关键字创建类的流程分析自定义元类控制类StanfordTeacher的创建自定义元类控制类StanfordTeacher的调用再看属性查找练习题1、在元类中控制把自定义类的数据属性都变成大写2、在元类中控制自定义的类无需__init__方法3、在元类中控制自定义的类产生的对象相关的属性全部为隐藏属性4、基于元类实现单例模式1、模块导入2、使用类装饰器实现3、使用类的绑定方法实现4、使用`__new__`实现5、使用元类实现单例元类介绍什么是元类呢?一切源自于一句话:python中原创 2021-01-13 13:30:03 · 76 阅读 · 0 评论 -
day31 反射、内置方法
反射、内置方法反射内置方法反射python是动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行状态中对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为反射机制。在python中实现反射非常简单,在程序运行过程中,如果我们获取一个不知道存有何种属性的对象,若想操作其内部属性,可以先通过内置函数dir来获取任意一个类或者对象的属性列表,列表中全为字符串格式&g原创 2021-01-03 21:15:48 · 72 阅读 · 0 评论 -
day30 绑定方法与非绑定方法
绑定方法与非绑定方法绑定方法与非绑定方法非绑定方法绑定方法与非绑定方法类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。 在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。我们在之前的章节中已经介绍过对象方法了,本节我们主要介绍类方法。类方法通常用来在__init__的基础上提供额外的初始化实例的方式# 配置文件settings.py的内容HOST='127.0.0.1'原创 2021-01-03 21:07:51 · 89 阅读 · 0 评论 -
day29 多态性与鸭子类型
多态性与鸭子类型多态与多态性多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪class Animal: #同一类事物:动物 def talk(self): passclass Cat(Animal): #动物的形态之一:猫 def talk(self): print('喵喵喵')class Dog(Animal): #动物的形态之二:狗 def talk(self): print('汪汪汪')class Pig(原创 2021-01-03 21:03:00 · 104 阅读 · 0 评论 -
day28 继承与派生
继承与派生继承介绍继承与抽象属性查找继承的实现原理菱形问题继承原理深度优先和广度优先python Mixins机制派生与方法重用组合继承介绍继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,新建的类可称为子类或派生类,父类又可称为基类或超类class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubClass1(ParentClass1): #单继承 passcl原创 2021-01-03 20:56:54 · 105 阅读 · 0 评论 -
day27 封装
封装引入隐藏属性开放接口隐藏数据接口隐藏函数接口property引入 面向对象编程有三大特性:封装、继承、多态,其中最重要的一个特性就是封装。封装指的就是把数据与功能都整合到一起,听起来是不是很熟悉,没错,我们之前所说的”整合“二字其实就是封装的通俗说法。除此之外,针对封装到对象或者类中的属性,我们还可以严格控制对它们的访问,分两步实现:隐藏与开放接口隐藏属性Python的Class机制采用双下划线开头的方式将属性隐藏起来(设置成私有的),但其实这仅仅只是一种变形操作,类中所有双下滑线开头的属性都原创 2021-01-03 20:23:07 · 57 阅读 · 0 评论 -
day26 面向对象编程
面向对象编程对象的概念类与对象面向对象编程类的定义与实例化属性访问类属性与对象属性属性查找顺序与绑定方法小结对象的概念”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思?所有的程序都是由”数据”与“功能“组成,因而编写程序的本质就是定义出一系列的数据,然后定义出一系列的功能来对数据进行操作。在学习”对象“之前,程序中的数据与功能是分离开的,如下# 数据:name、age、sexname='lili'age=18sex='female'# 功能:tell_infode原创 2020-12-21 21:42:54 · 82 阅读 · 0 评论 -
day 25 常用模块(更新中)
常用模块time与datetime模块random 随机模块os 模块原创 2020-12-11 20:47:50 · 64 阅读 · 0 评论 -
day24 软件开发的目录规范
软件开发的目录规范为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下Foo/|-- core/| |-- core.py||-- api/| |-- api.py||-- db/| |-- db_handle.py||-- lib/| |-- common.py||-- conf/| |-- settings.py||原创 2020-12-10 15:01:34 · 116 阅读 · 0 评论 -
day23 包
包包的介绍包的使用导入包与_init_.py绝对导入与相对导入from 包 import *包的介绍随着模块数目的增多,把所有模块不加区分地放到一起也是极不合理的,于是Python为我们提供了一种把模块组织到一起的方法,即创建一个包。包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或子包,例如pool/ #顶级包├── __init__.py ├── futures #子包│ ├── __init__.py│原创 2020-12-10 14:49:29 · 289 阅读 · 0 评论 -
day22 模块
模块一 模块介绍二 模块的使用2.1 import语句2.2 from-import 语句2.3 其他导入语法(as)2.4 循环导入问题2.5 搜索模块的路径与优先级2.6 区分py文件的两种用途2.7 编写一个规范的模块一 模块介绍在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能。如果把开发程序比喻成制造一台电脑,编写模块就像是在制造电脑的零部件,准备好零部件后,剩下的工作就是按照逻辑把它们组装到一起。将程序模块化会使得程序的组原创 2020-12-09 17:31:17 · 94 阅读 · 0 评论 -
day21 面向过程与函数式
面向过程与函数式一 编程范式二 面向过程三 函数式3.1 匿名函数与lambda3.2 map、reduce、filter一 编程范式 很多初学者在了解了一门编程语言的基本语法和使用之后,面对一个’开发需求‘时仍然会觉得无从下手、没有思路/套路,本节主题“编程范式”正是为了解决该问题,那到底什么是编程范式呢?编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程、函数式、面向对象等,本节我们主要介绍前两者。原创 2020-12-08 17:06:19 · 93 阅读 · 0 评论 -
day20 函数递归
函数递归一 函数递归调用介绍二 回溯与递推一 函数递归调用介绍函数不仅可以嵌套定义,还可以嵌套调用,即在调用一个函数的过程中,函数内部又调用另一个函数,而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身例如在调用f1的过程中,又调用f1,这就是直接调用函数f1本身def f1(): print('from f1') f1()f1()在调用f1的过程中,又调用f2,而在调用f2的过程中又调用f1,这就是间接调用函数f1本身def f1():原创 2020-12-08 16:35:25 · 92 阅读 · 0 评论 -
day19 生成器
生成器一 生成器与yield二 yield表达式应用三 三元表达式、列表生成式、生成器表达式3.1 三元表达式3.2 列表生成式3.3 生成器表达式一 生成器与yield若函数体包含yield关键字,再调用函数,并不会执行函数体代码,得到的返回值即生成器对象>>> def my_range(start,stop,step=1):... print('start...')... while start < stop:... yield sta原创 2020-12-08 16:09:02 · 68 阅读 · 0 评论 -
day18迭代器
迭代器一 迭代器介绍1.1 可迭代对象1.2 迭代器对象二 for循环原理三 迭代器的优缺点3.1 优点:3.2 缺点:一 迭代器介绍迭代器即用来迭代取值的工具,而迭代是重复反馈过程的活动,其目的通常是为了逼近所需的目标或结果,每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代while True: msg = input('>>: ').strip() print(msg)下述while循环才是一个迭代过程,不仅满原创 2020-12-08 15:55:34 · 52 阅读 · 0 评论 -
day17 装饰器
装饰器一 装饰器介绍1.1 为何要用装饰器1.2 什么是装饰器二 装饰器的实现2.1 无参装饰器的实现2.2 有参装饰器的实现一 装饰器介绍软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。软件包含的所有功能的源代码以及调用方式,都应该避免修改,否则一旦改错,则极有可能产生连锁反应,最终导致程序崩溃,而对于上线后的软件,新需求或者原创 2020-11-29 20:26:06 · 69 阅读 · 0 评论 -
day16 函数对象和闭包
函数对象和闭包一 函数对象1.1 函数可以被引用1.2 函数可以作为容器类型的元素1.3 函数可以作为参数传入另外一个函数1.4 函数的返回值可以是一个函数二 闭包函数2.1 闭与包2.2 闭包的用途一 函数对象函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用,我们如下1.1 函数可以被引用>>> def add(x,y):... return x+y... >>> func=add>>> func(1,2)原创 2020-11-29 20:17:43 · 53 阅读 · 0 评论 -
day15 名称空间与作用域
名称空间与作用域一 名称空间1.1 内建名称空间1.2 全局名称空间1.3 局部名称空间二 作用域2.1 全局作用域与局部作用域2.2 作用域与名字查找的优先级一 名称空间名称空间即存放名字与对象映射/绑定关系的地方。对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,del x表示清除该绑定关系。 在程序执行期间最多会存在三种名称空间1.1 内建名称空间伴随python解释器的启动/关闭而产生/回收,因而是第一个被加载的名称空间,用来存放一些内置的名原创 2020-11-29 20:13:22 · 59 阅读 · 0 评论 -
day14 函数的参数
函数的参数一 形参与实参介绍二 形参与实参的具体使用2.1 位置参数2.2 关键字参数2.3 默认参数2.4 可变长度的参数(*与**的用法)2.4.1 可变长度的位置参数2.4.2 可变长度的关键字参数2.5 命名关键字参数2.6 组合使用一 形参与实参介绍函数的参数分为形式参数和实际参数,简称形参和实参:形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。实参即在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合:#1:实参是常量res=my_原创 2020-11-26 21:40:32 · 552 阅读 · 0 评论 -
day13 函数的基本使用
函数的基本使用一 引入二 定义函数三 调用函数与函数返回值一 引入基于前一部分的学习,我们已经能开发一些功能简单的小程序了,但随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复编写该功能的实现代码,日积月累,程序将变得冗长,并且当某一功能需要修改时,又不得不找出所有定义及使用这段功能的地方修改之,管理维护的难度极大,好吧,装了半天逼,到底该如何解决提出的这些问题呢?我们完全可以从现实生活原创 2020-11-25 20:11:15 · 69 阅读 · 0 评论 -
day12 文件处理
文件处理一 引入二 文件操作的基本流程2.1 基本流程2.2 资源回收与with上下文管理2.3 指定操作文本文件的字符编码三 文件的操作模式3.1 控制文件读写操作的模式3.1.1 案例一:r 模式的使用3.1.2 案例二:w 模式的使用3.1.3 案例三:a 模式的使用3.1.4 案例四:+ 模式的使用(了解)3.2 控制文件读写内容的模式3.2.1 案例一:t 模式的使用3.2.2 案例二: b 模式的使用四 操作文件的方法4.1 重点4.2 了解五 主动控制文件内指针移动5.1 案例一: 0模式详解原创 2020-11-24 20:17:49 · 164 阅读 · 1 评论 -
day11 字符编码
字符编码引子知识储备三大核心部件文本编辑器读取文件内容的流程python解释器执行文件的流程总结字符编码介绍什么是字符编码字符编码的发展史阶段一:一家独大阶段二:诸侯割据、天下大乱阶段三:分久必合编码与解码utf-8的由来字符编码的应用4.1 文本编辑器nodpad++存取文本文件4.2 python解释器执行文件的前两个阶段4.3 python解释器执行文件的第三个阶段4.4 字符串encode编码与decode解码的使用引子 字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要原创 2020-11-24 19:49:11 · 102 阅读 · 0 评论 -
day10 基本数据类型及内置方法
基本数据类型及内置方法一、引子二、数字类型int与float定义类型转换使用三、字符串定义类型转换使用优先掌握的操作需要掌握的操作1.strip, lstrip, rstrip2.lower(),upper()3.startswith,endswith4.格式化输出之format5.split,rsplit6.join7.replace8.isdigit了解操作四、列表定义类型转换使用优先掌握的操作了解操作五、元组作用定义方法类型转换使用一、引子数据类型是用来记录事物状态的,而事物的状态是不断变化的(如原创 2020-11-20 21:16:22 · 143 阅读 · 0 评论 -
day09 Python语法入门之流程控制
Python语法入门之流程控制一 引子二 分支结构2.1 什么是分支结构2.2 为什么要用分支结构2.3 如何使用分支结构2.3.1 if 语法2.3.2 if 应用案例三 循环结构3.1 什么是循环结构3.2 为什么要用循环结构3.3 如何使用循环结构3.3.1 while循环语法3.3.2 while循环应用案例3.3.3 for 循环语法3.3.4 for 循环应用案例一 引子流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支原创 2020-11-18 20:54:06 · 73 阅读 · 0 评论 -
day08 Python语法入门之与用户交互、运算符
Python语法入门之与用户交互、运算符一 程序与用户交互1.1 什么是与用户交互?1.2 为什么要与用户交互?1.3 如何与用户交互1.3.1 输入input1.3.2 输出print1.3.3 输出之格式化输出1) 什么是格式化输出2) 为什么要格式化输出?3) 如何格式化输出?二 基本运算符2.1 算术运算符2.2 比较运算符2.3 赋值运算符2.3.1 增量赋值2.3.2 链式赋值2.3.3 交叉赋值2.3.4 解压赋值2.4 逻辑运算符2.4.1 连续多个and2.4.2 连续多个or2.4.3原创 2020-11-18 20:28:20 · 111 阅读 · 0 评论 -
day07 Python语法入门之垃圾回收机制
Python语法入门之垃圾回收机制一 引入二、什么是垃圾回收机制?三、为什么要用垃圾回收机制?四、理解GC原理需要储备的知识4.1、堆区与栈区4.2 直接引用与间接引用五、垃圾回收机制原理分析5.1、引用计数5.2、引用计数的问题与解决方案5.2.1 问题一:循环引用5.2.2 解决方案:标记-清除5.2.3 问题二:效率问题5.2.4 解决方案:分代回收一 引入解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有原创 2020-11-18 20:10:42 · 63 阅读 · 0 评论 -
day06 Python语法入门之基本数据类型
Python语法入门之基本数据类型一 引子二 数字类型2.1 int整型2.1.1 作用2.1.2 定义2.2 float浮点型2.2.1 作用2.2.2 定义2.3 数字类型的使用三 字符串类型str3.1 作用3.2 定义3.3 使用四 列表list4.1 作用4.2 定义4.3 使用五 字典 dict5.1 作用5.2 定义5.3 使用六 布尔bool6.1 作用6.2 定义6.3 使用一 引子我们学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物原创 2020-11-18 19:55:47 · 80 阅读 · 0 评论 -
day05 Python语法入门之变量
Python语法入门之变量一 引入二 变量1、什么是变量?2、为什么要有变量?3、怎么使用变量 (先定义、后调用)3.1 变量的定义与使用3.2 变量名的命名规范3.3 变量名的命名风格3.4 变量值的三大特性三 常量1、什么是常量?2、为什么要有常量?3、怎么使用常量?一 引入我们学习python语言是为了控制计算机、让计算机能够像人一样去工作,所以在python这门语言中,所有语法存在的意义都是为了让计算机具备人的某一项技能,这句话是我们理解后续所有python语法的根本。二 变量1、什么是变量原创 2020-11-17 21:46:56 · 78 阅读 · 0 评论 -
doy04 编程语言与Python介绍
编程语言与Python介绍一 引子二 编程语言分类2.1 机器语言2.2 汇编语言2.3 高级语言2.3.1 编译型(如C语言):2.3.2 解释型(如python):2.4 总结三 python介绍3.1 Python解释器的发展史3.2 Python解释器有哪些种类?四 安装Cpython解释器4.1 下载python解释器4.2、安装python解释器4.3、测试安装是否成功五 第一个python程序5.1 运行python程序有两种方式5.2 注释六 IDE工具pycharm的使用6.1、什么是ID原创 2020-11-17 21:25:44 · 433 阅读 · 1 评论 -
day03计算机硬件组成
计算机硬件组成一 PC与服务器二 服务器分类2.1按照尺寸分类2.2按照外形分类三 服务器品牌四 去I0E运动一 PC与服务器计算机硬件可以大致分为两类:1 、个人PC:家用台式电脑: 一般用来家庭娱乐使用, 游戏, 电影之类!笔记本电脑: 携带方便快捷, 大部分用来办公使用。2、服务器服务器是大家工作的主战场功能: 搭建网站所使用的服务器, 相对于其他台式机, 笔记本电脑来说, 更加稳定, 更加可靠。简介: 服务器, 也称伺服器(台湾), 是提供计算服务的设备。由于服务器需要响应服务原创 2020-09-29 20:50:32 · 478 阅读 · 0 评论 -
day02Web开发流程图解
Web开发流程图解一 需求分析阶段二 项目开发阶段2.1产品设计.>PM\UE\UI2.2测试用例.>QA2.3前端设计.>FD2.4后端设计.>RD2.5开发2.6测试2.7上线2.8维护一 需求分析阶段在需求分析阶段, 即上图所述"需求明确"之前的阶段产品经理PM召集项目相关人员, 开需求讨论会、讲解原型相关人员需要以此了理解产品的需求, 提出质疑: 这是什么功能, 怎么做, 为啥这么做, 大概包含如下几个方面评估实现难度和实现成本, 是否有潜在技术问题/风险对比一原创 2020-09-29 20:22:01 · 3006 阅读 · 1 评论 -
day01小白入门第一课
**开篇介绍**1 、什么是计算机? 为何要有计算机?计算机诞生的目的就是为了取代人力说到底,计算机就是人类的奴隶 银行行长------------------------------柜台人员 接收用户输入的账号 接收用户输入的密码 判断 输入的账号 等于 正确的账号 并且 输入的密码 等于 正确的密码: 告诉用户登录成功 否则: 告诉用户登录失败 程序员-------------------------原创 2020-09-29 19:17:46 · 90 阅读 · 0 评论