- 博客(49)
- 收藏
- 关注
原创 网络通信协议基础
网络通信协议基础一.操作系统基础二.网络通信原理2.1 互联网的本质就是一系列的网络协议2.2 osi七层协议2.3 tcp/ip五层模型讲解2.3.1 物理层2.3.2 数据链路层2.3.3 网络层2.3.4 传输层2.3.5 应用层2.3.6 socket2.3.7 小结三.网络通信实现四.DNS域名解析4.1 dns的作用4.2 dns的两种查询方式4.3 DNS解析流程举例4.4 DNS缓存4.5 DNS缓存分类4.6 浏览器DNS查找顺序4.7 清除DNS缓存4.8 其他了解五 网络通信流程一.
2021-01-14 18:32:17
575
原创 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
原创 day33 异常处理
异常处理什么是异常异常处理何时使用异常处理什么是异常异常是程序发生错误的信号。程序一旦出现错误,便会产生一个异常,若程序中没有处理它,就会抛出该异常,程序的运行也随之终止。在Python中,错误触发的异常如下而错误分成两种,一种是语法上的错误SyntaxError,这种错误应该在程序运行前就修改正确>>> if File "<stdin>", line 1 if ^SyntaxError: invalid syntax另一类就是逻辑错误
2021-01-14 15:13:17
146
原创 xml 模块
xml 模块一、xml简介二、Python使用xml三、自己创建xml文档一、xml简介xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。xml的格式如下,就是通过<>节点来区别数据结构的:<?xml version="1.0"?><data> <country name="Lie
2021-01-13 15:19:44
135
原创 day32 各种魔法方法
各种魔法方法`__init__` 在 类名() 触发它的执行`__setattr__` :在 对象.属性=值 会触发它的执行`__getattr__` :在 对象.属性 获取值会触发它的执行`__delattr__ ` :在 del 对象.属性 会触发它的执行多态性的使用`__getattribute__`无论属性在对象中是否存在,都先触发__getattribute__的执行`__setitem__`和`__getitem__`和`__delitem__``__format__`
2021-01-13 14:55:11
639
原创 typing 模块
typing 模块# typing模块:返回值类型规范,并不会报错# python:3.6以后才有的这个模块from typing import List, Tuple, Dict'''int、long、float: 整型、长整形、浮点型bool、str: 布尔型、字符串类型List、 Tuple、 Dict、 Set:列表、元组、字典、集合Iterable、Iterator:可迭代类型、迭代器类型Generator:生成器类型'''# def test(a:int,b:int)-
2021-01-13 14:15:38
142
原创 zipfile、tarfile 模块
zipfile、tarfile模块zipfile压缩zipfile解压tarfile 压缩tarfile 解压zipfile压缩import zipfile# 压缩z = zipfile.ZipFile('a.zip', 'w')z.write('a.txt')z.write('b.txt')z.close()zipfile解压import zipfile# 解压缩z = zipfile.ZipFile('a.zip', 'r')z.extractall(r'D:\\')
2021-01-13 14:13:15
118
原创 sys 模块
sys 模块sys.argv文件应用打印进度条1 sys.argv 命令行参数List,第一个元素是程序本身路径2 sys.exit(n) 退出程序,正常退出时exit(0)3 sys.version 获取Python解释程序的版本信息4 sys.maxint 最大的Int值5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值6 sys.platform 返回操作系统
2021-01-13 14:07:06
99
原创 day31 元类
元类元类介绍class关键字创建类的流程分析自定义元类控制类StanfordTeacher的创建自定义元类控制类StanfordTeacher的调用再看属性查找练习题1、在元类中控制把自定义类的数据属性都变成大写2、在元类中控制自定义的类无需__init__方法3、在元类中控制自定义的类产生的对象相关的属性全部为隐藏属性4、基于元类实现单例模式1、模块导入2、使用类装饰器实现3、使用类的绑定方法实现4、使用`__new__`实现5、使用元类实现单例元类介绍什么是元类呢?一切源自于一句话:python中
2021-01-13 13:30:03
76
原创 day31 反射、内置方法
反射、内置方法反射内置方法反射python是动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行状态中对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为反射机制。在python中实现反射非常简单,在程序运行过程中,如果我们获取一个不知道存有何种属性的对象,若想操作其内部属性,可以先通过内置函数dir来获取任意一个类或者对象的属性列表,列表中全为字符串格式&g
2021-01-03 21:15:48
72
原创 day30 绑定方法与非绑定方法
绑定方法与非绑定方法绑定方法与非绑定方法非绑定方法绑定方法与非绑定方法类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。 在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。我们在之前的章节中已经介绍过对象方法了,本节我们主要介绍类方法。类方法通常用来在__init__的基础上提供额外的初始化实例的方式# 配置文件settings.py的内容HOST='127.0.0.1'
2021-01-03 21:07:51
89
原创 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
原创 day28 继承与派生
继承与派生继承介绍继承与抽象属性查找继承的实现原理菱形问题继承原理深度优先和广度优先python Mixins机制派生与方法重用组合继承介绍继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,新建的类可称为子类或派生类,父类又可称为基类或超类class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubClass1(ParentClass1): #单继承 passcl
2021-01-03 20:56:54
105
原创 day27 封装
封装引入隐藏属性开放接口隐藏数据接口隐藏函数接口property引入 面向对象编程有三大特性:封装、继承、多态,其中最重要的一个特性就是封装。封装指的就是把数据与功能都整合到一起,听起来是不是很熟悉,没错,我们之前所说的”整合“二字其实就是封装的通俗说法。除此之外,针对封装到对象或者类中的属性,我们还可以严格控制对它们的访问,分两步实现:隐藏与开放接口隐藏属性Python的Class机制采用双下划线开头的方式将属性隐藏起来(设置成私有的),但其实这仅仅只是一种变形操作,类中所有双下滑线开头的属性都
2021-01-03 20:23:07
57
原创 re 模块
re 模块即正则表达式import reprint(re.findall('123', 'aAbBcC123_%$#-*/123')) # 匹配一样的# ['123', '123']print(re.findall('\w', 'aAbBcC123_%$#-*/')) # 只取字母、数字、下划线# ['a', 'A', 'b', 'B', 'c', 'C', '1', '2', '3', '_']print(re.findall('\W', 'aAbBcC123_%$#-*/')) #
2020-12-22 19:19:09
97
原创 day26 面向对象编程
面向对象编程对象的概念类与对象面向对象编程类的定义与实例化属性访问类属性与对象属性属性查找顺序与绑定方法小结对象的概念”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思?所有的程序都是由”数据”与“功能“组成,因而编写程序的本质就是定义出一系列的数据,然后定义出一系列的功能来对数据进行操作。在学习”对象“之前,程序中的数据与功能是分离开的,如下# 数据:name、age、sexname='lili'age=18sex='female'# 功能:tell_infode
2020-12-21 21:42:54
82
原创 subprocess 模块
subprocess 模块import subprocess # 子进程的意思obj = subprocess.Popen(r'dir F:\学习课件\python\项目', shell=True, # 如果是mac,'ls /' stdout=subprocess.PIPE, # 把正确结果放到管道里 stderr=subprocess.PIPE, # 把错误结果放到管道里
2020-12-21 20:36:42
82
原创 hashlib 模块
hashlib 模块1、什么是哈希hash2、hash的用途3、如何用撞库的方式破解加密密码密码加盐1、什么是哈希hash# 该算法接受传入的内容,经过运算得到一串hash值# hash值的特点是:# 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验# 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码# 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值
2020-12-21 20:35:09
208
原创 shutil 模块
shutil 模块shutil.copyfileobj(fsrc, fdst[, length])shutil.copyfile(src, dst)shutil.copymode(src, dst)shutil.copystat(src, dst)shutil.copy(src, dst)shutil.copy2(src, dst)shutil.ignore_patterns(\*patterns)shutil.copytree(src, dst, symlinks=False, ignore=None)s
2020-12-21 20:32:21
154
1
原创 json 与 pickle 模块
json与pickle模块json 模块json简介dumpsloadsdump、load 文件应用补充:ensure_ascii=Falsepickle 模块pickle 序列化与反序列化文件+序列化和反序列化比较pickle和jsonjson 模块json简介1、json格式是什么# 把python中的字典,列表..数据类型转成json格式字符串# 下面格式是标准的json格式字符串{"name":"xio","age":18,"handsome":true,"xx":null}2、
2020-12-14 20:41:37
118
原创 logging 模块
logging 模块一 日志级别二 默认级别为warning,默认打印到终端三 为logging模块指定全局配置,针对所有logger有效,控制打印到文件中logging.basicConfig()format参数中可能用到的格式化串:四 logging模块的Formatter,Handler,Logger,Filter对象五 配置文件程序文件调用程序logging 配置文件格式一 日志级别CRITICAL = 50 #FATAL = CRITICALERROR = 40WARNING = 30
2020-12-12 22:01:06
244
原创 os 模块
os 模块os.getcwd()os.chdir("dirname")os.curdiros.pardiros.makedirs('dirname1/dirname2')os.removedirs('dirname1')os.mkdir('dirname')os.rmdir('dirname')os.listdir('dirname')os.remove()os.rename("oldname","newname")os.stat('path/filename')os.sepos.linesepos.pat
2020-12-11 20:44:12
138
原创 random 随机模块
random 随机模块import randomprint(random.random()) # (0,1)----float 大于0且小于1之间的小数print(random.randint(1, 3)) # [1,3] 大于等于1且小于等于3之间的整数print(random.randrange(1, 3)) # [1,3) 大于等于1且小于3之间的整数print(random.choice([1, '23', [4, 5]])) # 1或者23或者[4,5
2020-12-11 20:25:18
151
原创 time与datetime模块
time与datetime模块一:time格式化字符串的时间格式二:datetime时间加减时间格式的转换了解time.sleep()time.asctime().now() .utcnow().fromtimestamp()一:time时间分为三种格式:1、时间戳:从1970年到现在经过的秒数 作用:用于时间间隔的计算import timeprint(time.time()) # 1607425475.59313252、按照某种格式显示的时间:2020-03-30 11:11:11
2020-12-11 20:20:44
141
原创 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
原创 day23 包
包包的介绍包的使用导入包与_init_.py绝对导入与相对导入from 包 import *包的介绍随着模块数目的增多,把所有模块不加区分地放到一起也是极不合理的,于是Python为我们提供了一种把模块组织到一起的方法,即创建一个包。包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或子包,例如pool/ #顶级包├── __init__.py ├── futures #子包│ ├── __init__.py│
2020-12-10 14:49:29
289
原创 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
原创 day21 面向过程与函数式
面向过程与函数式一 编程范式二 面向过程三 函数式3.1 匿名函数与lambda3.2 map、reduce、filter一 编程范式 很多初学者在了解了一门编程语言的基本语法和使用之后,面对一个’开发需求‘时仍然会觉得无从下手、没有思路/套路,本节主题“编程范式”正是为了解决该问题,那到底什么是编程范式呢?编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程、函数式、面向对象等,本节我们主要介绍前两者。
2020-12-08 17:06:19
93
原创 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
原创 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
原创 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
原创 day17 装饰器
装饰器一 装饰器介绍1.1 为何要用装饰器1.2 什么是装饰器二 装饰器的实现2.1 无参装饰器的实现2.2 有参装饰器的实现一 装饰器介绍软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。软件包含的所有功能的源代码以及调用方式,都应该避免修改,否则一旦改错,则极有可能产生连锁反应,最终导致程序崩溃,而对于上线后的软件,新需求或者
2020-11-29 20:26:06
69
原创 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
原创 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
原创 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
原创 day13 函数的基本使用
函数的基本使用一 引入二 定义函数三 调用函数与函数返回值一 引入基于前一部分的学习,我们已经能开发一些功能简单的小程序了,但随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复编写该功能的实现代码,日积月累,程序将变得冗长,并且当某一功能需要修改时,又不得不找出所有定义及使用这段功能的地方修改之,管理维护的难度极大,好吧,装了半天逼,到底该如何解决提出的这些问题呢?我们完全可以从现实生活
2020-11-25 20:11:15
69
原创 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
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人