![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python知识
文章平均质量分 74
七冬与小糖
天天敲代码,早日拿高薪
展开
-
Python知识——进程间通信、生产者与消费者模型、线程
Python知识进程间通信IPC主进程跟子进程借助于队列通信子进程与子进程进行通信生产者与消费者模型线程开启线程的两种方法进程间通信IPC主进程跟子进程借助于队列通信from multiprocessing import Queue, Processdef producer(q): q.put('队列里面的信息') print('hello world')if __name__ == '__main__': q = Queue() p = Process(转载 2021-08-12 17:25:04 · 220 阅读 · 0 评论 -
Python知识——进程对象及其他方法、互斥锁
Python知识进程对象及其他方法僵尸进程与孤儿进程守护进程互斥锁进程对象及其他方法一台计算机上面运行着很多进程,那么计算机是如何区分并管理这些进程服务端的呢?计算机会给每一个运行的进程分配一个PID号如何查看:Windows,加入cmd输入tasklist即可查看tasklist | findstr PID查看具体的进程mac电脑 进入终端后输入ps auxfrom multiprocessing import Process, current_processimport time原创 2021-08-11 16:46:41 · 127 阅读 · 0 评论 -
Python知识——多道技术、进程、join方法
Python知识多道技术多道技术单核实现并发的效果必备知识点并发:看起来像同时运行的就可以称之为并发并行:真正意义上的同时执行ps:并行肯定算并发单核计算机肯定不能实现并行,但是可以实现并发。...原创 2021-08-10 11:00:30 · 164 阅读 · 0 评论 -
计算机网络基础——粘包问题、socketserver模块
计算机网络基础粘包何为粘包现象解决粘包问题socketserver模块基于tcp协议基于udp协议粘包先基于tcp协议写一个远程执行命令的程序:客户端:from socket import *client = socket(AF_INET, SOCK_STREAM)client.connect(('127.0.0.1', 8080))while True: msg = input('请输入命令:>>>').strip() if len(msg) == 0原创 2021-08-05 21:17:53 · 174 阅读 · 0 评论 -
计算机网络基础——套接字
计算机网络基础套接字基于tcp协议的套接字案例基于udp协议的套接字通信案例套接字基于tcp协议的套接字一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。案例用代码的形式进行通信:模拟客户端:import socket# 1 、买手机phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)原创 2021-08-04 20:44:44 · 120 阅读 · 0 评论 -
Python知识——异常处理
Pyhton知识异常处理异常处理异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止#异常的追踪信息Traceback (most recent call last): File "D:\python\py", line 1, in <module> xNameError: name 'x' is not defined#异常的类型 #异常的内容为何要处理异常?为了增强程序的健壮性,即便是程序运行过程中出错了,也不要终止程序,而是捕捉异常并处理:原创 2021-08-02 21:58:27 · 6295 阅读 · 1 评论 -
Python知识——元类、自定义元类
Python知识元类class机制分析自定义元类元类Python中有这么一句话,一切皆为对象,那么看下面的代码:class People: def __init__(self, name, age): self.name = name self.age = age def say(self): print('<%s:%s>' % (self.name, self.age))obj = People('egon', 18原创 2021-08-02 01:17:30 · 421 阅读 · 0 评论 -
Python知识——反射机制,内置方法
Python知识反射内置方法反射python是动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行状态中:对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为反射机制。在python中实现反射非常简单,在程序运行过程中,如果我们获取一个不知道存有何种属性的对象,若想操作其内部属性,可以先通过内置函数dir来获取任意一个类或者对象的属性列表,列表中全为字符串格式转载 2021-07-30 23:10:08 · 224 阅读 · 0 评论 -
Python知识——多态、绑定方法与非绑定方法
Python知识多态什么是多态?多态性鸭子类型绑定方法与非绑定方法绑定方法1、绑定给对象的方法2、绑定给类的方法非绑定方法多态什么是多态?同一事物多种形态class Animal: # 同一类事物:动物 def talk(self): passclass Cat(Animal): # 动物的形态之一:猫 def talk(self): print('喵喵喵')class Dog(Animal): # 动物的形态之二:狗 def原创 2021-07-28 23:42:35 · 125 阅读 · 0 评论 -
Python知识——深度优先与广度优先、Mixins机制、super方法
Python知识深度优先与广度优先Mixins机制深度优先与广度优先如果多继承是菱形继承,经典类与新式类的属性查找顺序不一样:经典类:深度优先,会在检索第一条分支的时候就直接一条道走到黑,即会检索共同的父类新式类:广度优先,会在检索最后一条分支的才会检索共同的父类class A(object): def test(self): print('from A')class B(A): # def test(self): # print('fro转载 2021-07-27 12:05:42 · 224 阅读 · 1 评论 -
Python知识——继承、菱形问题与MRO介绍
Python知识继承什么是继承如何实现继承菱形问题继承什么是继承继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。子类会“”遗传”父类的属性,从而解决代码重用问题class Parent1(object): x = 1111class Parent2(object): passclass Sub1(Parent1): # 单继承 passclass Sub2(Parent转载 2021-07-23 23:56:25 · 217 阅读 · 1 评论 -
Python知识——封装、property
Python知识封装将封装的属性进行隐藏操作为何要隐藏属性?特性(property)property第一种使用方式property第二种使用方式本文参考:面向对象之封装封装面向对象三大特性最核心的一个特性封装<—>整合将封装的属性进行隐藏操作如何隐藏属性:在属性名前加__前缀,就会实现一个对外隐藏属性效果class Foo: __x = 1 def __f1(self): print('hello world')''' print(Fo转载 2021-07-22 15:00:49 · 176 阅读 · 0 评论 -
Python知识——面向对象编程的案例
面向对象编程的案例学校类的定义与使用班级定义与使用关联学校与班级以学校、班级、课程、学生数据和功能的整合,来加深面向对象编程的理解与运用。学校类的定义与使用lass School: school_name = '广师大' def __init__(self, address, nickname): self.address = address self.nickname = nickname self.classes = []原创 2021-07-21 21:35:39 · 182 阅读 · 0 评论 -
Python知识——类、产生对象
Python知识类产生对象__init__方法解决方法一:通过定义函数,将重复功能简化解决方法二:总结属性查找类在程序中:务必保证先定义类,后产生对象这与函数的使用是类似的,先定义函数,后调用函数,类也是一样的,在程序中需要先定义类,后调用类。不一样的是,调用函数会执行函数体代码返回的是函数体执行的结果,而调用类会产生对象,返回的是对象。#先定义类 驼峰体class Student: # 1、变量的定义 stu_school = 'NUPG' # 2、 功能的定义原创 2021-07-20 21:04:49 · 343 阅读 · 2 评论 -
Python知识——日志模块
日志模块日志基本配置日志级别:logging.debug('调试debug') #10logging.info('消息info') #20logging.warning('警告warn') #30logging.error('错误error') #级别为40logging.critical('严重critical') #级别为50默认日志级别为30,可以通过logging.basicConfig(level)进行修改默认级别logging.basicConfig(level=原创 2021-07-04 21:06:43 · 570 阅读 · 2 评论 -
Python知识——序列化、JSON函数、pickle、configparser、hashlib模块
序列化 & 反序列化把内存的数据类型转换成一种特定的格式,该格式的内容可用于存储或者传输给其他平台使用内存中的数据类型——>序列化——>特定的格式(json格式或者pickle格式)内存中的数据类型<——反序列化<——特定的格式(json格式或者pickle格式)用途:可用于存储——>用于存档传输给其他平台使用——>跨平台数据交互针对用途1的特定格式:可以用一种专用的格式——>pickle 只有python可以识别针对用途2的特定格式:应原创 2021-07-03 20:26:11 · 198 阅读 · 3 评论 -
Python知识——random模块、os模块、打印进度条
random模块import randomprint(random.random()) #随机产生一个(0,1)之间的浮点数print(random.randint(1,3)) #[1,3] 随机产生一个1<= and <=3的整数print(random.randrange(1,3)) #[1,3) 随机产生一个 1<= and <3的整数print(random.choice([1,'aaa',[1,5,6]])) #随机从choice([])中挑选一个值,注意()转载 2021-07-02 20:05:41 · 151 阅读 · 0 评论 -
Python知识——模块查找优先级、包、软件开发的目录规范、时间模块
模块查找的优先级无论是import还是from…import在导入模块时都涉及到查找问题优先从内存中寻找模块,其次是硬盘中寻找。sys.path 值为一个列表,存放了一系列的文件夹,其中第一个文件夹是当前执行文件所在的文件夹import sysprint(sys.path)'''['d:\\python', 硬盘中查找模块的文件夹以及压缩包顺序'C:\\Users\\***\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip',原创 2021-06-29 21:17:03 · 539 阅读 · 1 评论 -
Python知识——二分法、面向过程编程思想、匿名函数、模块
二分法需求:有一个按照从小到大顺序排列的数字列表,找到目标数字,如果目标数字不在列表,打印不存在nums = [1, 3, 5, 11, 20, 22, 35, 36, 37, 40, 45, 46,57,84,93,99,101,156]def binary_search(find_num, nums): print(nums) #每轮都打印列表,以观察列表的变化 if not nums == []: #判断列表是否为空,不为空才可以进行比较 mid_val原创 2021-06-24 23:28:05 · 120 阅读 · 1 评论 -
Python知识——叠加多个装饰器的加载以及运行分析、yield返回值、生成式、函数递归
叠加多个装饰器的加载、运行分析def deco1(func1): def warpper1(*args, **kwagrs): #func1 = wrapper2的内存地址 print('正在运行===》deco1.warpper1') res1 = func1(*args, **kwagrs) return res1 return warpper1def deco2(func2): def warpper2(*args, **原创 2021-06-23 13:39:29 · 159 阅读 · 0 评论 -
Python知识——迭代器、生成器
迭代器什么是迭代器迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次结果而继续的,单纯的重复并不是迭代count = 0while count < 5: print(count) count += 1为何要有迭代器迭代器是用来取值的工具,而涉及到把多个值取出来的类型有:列表,字符串,元组,字典,集合,文件。以下是一个用while循环取值的案例:l = ['张三', '李四', '王五']i = 0while i < len(l): prin原创 2021-06-20 01:36:02 · 165 阅读 · 0 评论 -
Python知识——装饰器、有参装饰器
装饰器器:指的是工具,可以定义成函数装饰:指的是为其他事物添加额外的东西点缀合在一起的解释:装饰器指的定义一个函数,该函数是用来为其他函数添加额外的功能为何要用装饰器:开放封闭原则:开放:指的是对拓展功能是开放的封闭:指的是对修改源代码是封闭的装饰器就是在不修改被装饰器对象源代码以及调用方式的前提下,为被装饰对象添加新功能如何使用装饰器:需求:在不修改index函数的源代码以及调用方式的前提下为其添加统计运行时间的功能def index(x,y): time.sleep(3)原创 2021-06-18 00:00:02 · 218 阅读 · 3 评论 -
Python知识——函数对象、闭包函数
函数对象可以把函数当成变量去用func=内存地址可以赋值def func(): print('form func')#1、可以被赋值f=func #赋值的是func的内存地址print(f,func)f()'''<function func at 0x000001C6F3F4DF70> <function func at 0x000001C6F3F4DF70>form func'''可以当做函数参数传入def func(): p原创 2021-06-16 20:48:20 · 136 阅读 · 0 评论 -
Python知识——名称空间、作用域
名称空间(namespaces)名称空间:存放名字的地方,是对栈区的划分官方文档:A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries。命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的。命名空间提供了在项目中避免名字冲突的一种方法。各个命名空间是独立的,没有任何关系的,所原创 2021-06-13 13:43:13 · 193 阅读 · 2 评论 -
Python知识——形参与实参
形参与实参形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名def func(x,y) #形参实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值func(1,2) #实参形参与实参的关系:在调用阶段,实参(变量值)会绑定给形参(变量名) ,这种绑定关系只能在函数体内使用实参与形参的绑定关系在函数调用时生效,函数调用结束后解除绑定关系实参传入的值,可以有以下几种形式:形式一:func(1,2)形式二:a=1b=2func(a,b)形式原创 2021-06-11 01:10:48 · 4691 阅读 · 3 评论 -
Python——文件修改的两种方法,函数
文件修改两种方式运用之前文件操作方式对一个文本文件进行修改,对text.txt中“这是一个txt文件” 修改成 “这不是一个txt文件” :原理很简单,就在“是”前面加上一个“不”with open(r'D:\text.txt',mode='r+t',encoding='utf-8') as f: f.seek(3,0)#一个汉字占3个字节 f.write("不")使用了r+t,使文件变成了一个可读可写的文件,运行代码发现与原来的想法不一致。并没有在“是”前面加上“不”,而是直原创 2021-06-10 17:16:35 · 748 阅读 · 0 评论 -
Python知识——x、b模式、文件指针移动
x模式(了解)只写模式「不可读;不存在就创建、存在就报错」with open(r'D:\x模式',mode='xt',encoding='utf-8') as f: f.write('哈哈哈哈哈')文件不存在时:文件存在时:Traceback (most recent call last): File "d:\python\study_6_9.py", line 29, in <module> with open(r'D:\x模式.txt',mode='xt'原创 2021-06-09 21:14:57 · 549 阅读 · 0 评论 -
Python知识——文件操作
文件操作1、什么是文件文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟的概念/接口用户/应用程序(open())操作系统(文件)计算机硬件(硬盘)2、为何要用文件用户/应用程序可以通过文件将数据永久保存在硬盘中,即操作文件就是操作硬盘3、如何用文件:open()(1)控制文本读写内容的模式t和b 不能单独使用,必须和r/w/a连用t文本(默认的模式)读写都是以str(unicode)为单位的文本文件必须指定encoding=‘utf-8’操作文件1、打开文件o原创 2021-06-08 23:57:45 · 180 阅读 · 5 评论 -
Python知识——集合类型
集合类型1、定义在{ }内用逗号分隔开多个字符,多个元素满足以下三个条件:集合内元素必须为不可变类型s={1,2,3,4,[1,2,3,4]} #是错误的集合内元素无序集合内元素没有重复s={1,2,3,4,5,1,1,2,1}print(s)s={} #默认是空组字典#定义空集合s=set{}2、关系运算取交集 &或者 intersectionf={"张三","李四","王五","老六","老七"}f2={"王尼玛","张三","赵铁柱","原创 2021-06-06 20:02:56 · 239 阅读 · 1 评论 -
Python知识——列表类型,字典类型
列表类型优先掌握的操作类型转换:但反能够被for循环遍历的类型都可以当做参数传给list( )转成列表res=list("hello")print(res)msg=list({"k1":111,"k2":222,"k3":333})print(msg)内置方法优先掌握的操作:1、按索引存取值(正反向存取):即可取也可改索引不存在就报错l=[111,"hello","play basketball"]#正向取print(l[0])#反向取print(l[-1])#可以取可以原创 2021-06-05 21:02:55 · 391 阅读 · 0 评论 -
Python知识——for循环、数字类型
for 循环for循环#语法for 变量名 in 可迭代对象#列表 字典 字符串 元组 集合 代码1例子:列表:for x in ["a","b","c"]: print(x)字典:dic={"k1":111,"k2":222}for i in dic: print(i,dic[i])for循环控制循环次数: range( )for i in range(100): print("i")打印的结果是100个" i "...原创 2021-06-05 08:29:21 · 2020 阅读 · 1 评论 -
Python知识——深浅copy、while循环
深浅copylist1=['egon','lxx',[1,2]]list2=list1list1[0]='ni'print(list2[0])此时对list1的第一个元素的值进行改变时,list2的第一个元素也产生了改变,因为指向就是同一个地址此时想让list2拷贝list1的内容,并独立出来1、浅拷贝list1=['egon','lxx',[1,2]]list2=list1.copy()list1[0]=2print(list2[0])发现输出的结果并没有随着list1的更原创 2021-06-02 19:54:42 · 189 阅读 · 1 评论 -
Python知识——格式化输出、基本运算符、if 判断
垃圾回收机制详解(了解)1、引用计数x = 10print(id(x)) #直接引用 x的引用次数为1l=['a',x]print(id(l[1])) #间接引用 x的引用次数为2d={"mmm":x,"nnn":20}print(id(d["mmm"])) #间接引用 x的引用次数为3y=x #直接引用 x的引用次数为4z=x #直接引用 x的引用次数为52、标记清除3、分代回收与用户交互接收用户的输入在Python3:input会将用户输入的所有内容都存成字符串类型原创 2021-05-31 20:35:44 · 244 阅读 · 1 评论 -
Python知识——变量、基本数据类型
变量如何使用变量先定义后使用name = 'egon'print(name)内存管理:垃圾回收机制垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,就为垃圾引用计数增加:x = 10 # 10的引用计数为1y = x # 10的引用计数为2z = x # 10的引用计数为3引用计数减少:x = 10 y = x z = x del x # 解除变量名x与值10的绑定关系,10的引用计数变为2# print(x)print(y)print(z原创 2021-05-29 23:39:21 · 185 阅读 · 1 评论