python基础课程
文章平均质量分 59
以实战与理论相结合,方便小白理解的python文章(个人)
givenchy_yzl
早安
午安
晚安
——一个不配拥有晚安的追梦人
展开
-
2021-01-20关于僵尸进程,孤儿进程,守护进程,互斥锁的讲解
如何让程序的执行效率高:减少网络IO与硬盘IO,能从本地取数据就不要从网络上拿,能从内存拿就不要去硬盘拿如何抗住高并发:将一部分固定不变的数据让用户缓存到本地,使用时再让操作系统问本地拿,父进程与子进程:由谁开启,开启者就是被开启者的父进程,被开启者叫子进程我们运行的python程序其实就是调了Python解释器这个程序将我们写的代码文件传进去例:from multiprocessing import Processimport osdef task(): print('父进程pid原创 2021-01-20 21:22:56 · 69 阅读 · 0 评论 -
2021-1-19操作系统的历史,与进程的理论与基础用法
操作系统的发展史:第一代计算机:真空管和穿孔卡片(1940-1955)特点:没有操作系统的概念,所有的程序都是直接控制计算机硬件的,此时运行模式为串行,浪费了计算机资源第二代计算机:晶体管和批处理操作系统(1955-1964),特点:有了操作系统的概念,将程序放在磁带上中间需要人在中间传输数据,节省了机时几个人攒一波,一起输出,但仍然是串行,有了进程的概念,一次运行一批第三代计算机集成电路芯片和多道程序(1965-1980),特点:采用小规模芯片集成电路的主流机型,与采用晶体管的第二代计算机相比,性价原创 2021-01-20 21:15:12 · 93 阅读 · 0 评论 -
2021-1-18网络编程解决粘包问题,与基于udp协议的网络编程
客户端粘包版:import socketclient=socket.socket(socket.AF_INET,socket.SOCK_STREAM)client.connect(('127.0.0.1',8090))while True: msg = input(">>>:").strip() if len(msg) == 0: continue client.send(msg.encode('utf-8')) data = cl原创 2021-01-18 21:24:21 · 106 阅读 · 1 评论 -
书写基于tcp协议的套接字程序
ARP协议的通信原理:同一局域网下将自己的IP地址与子网掩码进行按位与运算,得到子网地址,将对方的IP地址与子网掩码进行按位与运算,得到对方的子网地址,一旦双方的子网地址一模一样,ARP会将原Mac地址加12位ff:ff:ff:ff:ff:ff加原IP地址加目标IP地址发给局域网下的每一个计算机,计算机进行比对,若与目标IP一致,会将自己MAC地址返回给ARP,若目标IP与自己IP不一致则丢弃ff:ff:ff:ff:ff:ff 表示为获取目标IP的MAC地址的信号不同局域网若原主机与目标主原创 2021-01-15 20:21:08 · 102 阅读 · 0 评论 -
2021-01-14了解套接字编程概念,知道osi的四层协议,掌握tcp的三次握手四次挥手
学习套接字编程的目的是为了开发一个c/s或者B/S架构的软件client ----- 网络 ----server用客户端与服务端建立连接,他们通过网络进行通信,不需要遵守一些浏览器的协议规定,需要写两个程序,想怎么交互就怎么交互,不过因为要写两个程序相对麻烦一些browser----- 网络 ----server用户通过浏览器与服务端建立连接,同样通过网络进行通信,不过必须遵守浏览器之间的协议规定,只写服务端即可,简单,要遵循浏览器的规定互联网 = 物理连接介质 + 通信协议为何要学协议,只有原创 2021-01-14 18:55:02 · 131 阅读 · 0 评论 -
2021-1-13多态、鸭子类型、isinstance、issubclass、__str__和__del__,字符串控制属性,异常处理的内容
多态与多态性同一种事物有多种形态,就叫多态性多态的特性:归一化,当我们调用子类的某种属性时,只需让子类遗传父类的标准即可,所以父类的功能是用来定义标准的,查看子类的功能有没有哪些东西时,直接看父类的功能即可,若父类中有的功能,子类中一定有,且用法一致多态不是为了解决类之间的代码冗余问题,而是为了用父类来统一多个子类之间的用法父类定义的功能,子类需要派生一些相似的功能,子类也可以不执行,但若不执行,这就违背了归一性这一原则父类可以强制让子类按照它的标准(抽象基类,无法被调用,只能定标准)执行代码如原创 2021-01-13 19:21:20 · 106 阅读 · 0 评论 -
2021-01-11
class people : def __init__(self,name): self.name = name @property def name(self): return self.name @name.setter def name(self,x): if type(x) is not str : raise Exception("名字必须是字符串类型") .原创 2021-01-11 17:06:06 · 86 阅读 · 0 评论 -
2020-01-08面向对象思想基础、类的介绍、对象的应用、封装属性中的隐藏属性
面向对象编程:核心是对象,对象就是一个盛放数据与功能的容器基于该思想编写程序就是创造一个个容器优点:扩展性强缺点:编程复杂度提升类与对象定义类发生的事 :只有相同属性的事物才能被分为一类,定义类名用驼峰体,类一定义就会产生一个名称空间1、立刻运行类体代码2、将运行过程中产生的名字都丢进类的名称空间调用类发生的事:1、创造一个对象的字典,用来存放对象独有的数据2、将对象与类建立好关联调用类的过程1、先创造一个空对象2、自动触发类内的__init__函数的运行,将空对象当做第一个参数自原创 2021-01-08 16:56:22 · 53 阅读 · 0 评论 -
2021-01-07os与sys、subprocess、hashlib、configparser的使用
hash算法的特点:传入一段内容会得到一串hash值,hash值有三大特点:1、如果传入的内容与采用的算法一样,那么得到的hash值一定一样2、只要采用的算法固定,hash值的长度就是固定的,不会随着内容的增多而变长3、hash值不可逆,即不能通过hash值反解出内容是什么不同的hash算法,hash值不同,复杂程度不同,可变类型不可hashimport hashlibm = hashlib.md5()m.update("你好".encode('utf-8'))m.update("hel原创 2021-01-07 20:33:23 · 94 阅读 · 0 评论 -
2021-01-06 re、time与datetime、json与pickle、random模块的使用
不要将文件名与第三方库的名字一样,否则会冲突(可能会导致第三方库无法导入)re模块正则表达式模块re.findall()字符串里都找正则表达式常用匹配格式:\w 匹配字母数字下划线\W 匹配字母数字下划线\s 匹配任意空白字符 等价于[\t\n\r\f]\S 匹配非空字符\d 匹配任意数字,等价于[0-9]\D 匹配任意非数字\A 匹配字符串开始\Z 匹配字符串结束,如果存在换行,只匹配到换行前的结束字符串\z 匹配字符串结束\G 匹配最后原创 2021-01-06 20:50:38 · 139 阅读 · 0 评论 -
2021-01-05包的用法,及一些常用模块的用法
模块被当做执行文件直接运行的时候,和模块被导入使用时,这个模块有两个名字被当做执行文件是名字为__main__ 被导入使用时名字是他自己的模块名首次导入包发生的事情:1、运行包下的__init__.py文件,创建一个包的名称空间,将__init__.py运行过程中产生的名字全部丢入名称空间里2、在当前名称空间中得到一个名字aaa,改名字是指向包名称空间什么是包?包就是一个文件夹,同时也是一种模块,他可以直接当做模块使用如何用包?包其实就是一种拥有模块的文件夹,如果想要使用,正确的导入就可以原创 2021-01-05 19:16:32 · 85 阅读 · 0 评论 -
2021-01-04模块的初级使用及入门
什么是模块模块就是一系列功能的集合体模块大致分为四种类别:1、一个py文件就是一个模块,文件名叫test.py,模块名叫test2、一个包含__int__.py文件的文件夹称之为包,包也是模块3、使用c编写并连接到python解释器的内置模块4、已被编译为共享库或dll的c或c++扩展模块有三种来源:1、自带的模块2、第三方模块:pip3 install requests3、自定义的模块为何要用模块1、(自带的模块,第三方模块)拿来主义,提升开发效率2、自定义模块为了解决代码冗余问原创 2021-01-04 20:09:50 · 122 阅读 · 1 评论 -
2020-12-31函数其他
三元表达式:x=20y=15 res= "yes" if x>y else "no"条件:x>y 一元条件成立:yes 一元条件不成立:no 一元生成式:列表生成式l = [i for i in range(10)]#一行代码生成10以内的列表衍生:l = [i for i in range(10) if i>5] #生成大于五的列表列表生成式可以套多个for循环但不建议,套多个降低了代码可读性例:names = [lxx,hxx,wxx]l= [name原创 2020-12-31 16:01:41 · 101 阅读 · 0 评论 -
2020-12-30随堂笔记无参装饰器模板及多个装饰器套用
装饰器模板:def outter(func): #func = 被装饰对象func函数的内存地址 def wrapper(*args,**kwargs): res = func(*args,**kwargs) return res return wrapper #一定不能加括号func = outter(func) #outter(被装饰对象func函数的内存地址) ——>返回wrapper函数的内存地址原创 2020-12-30 16:35:11 · 91 阅读 · 1 评论 -
2020-12-29随堂笔记函数,名称空间与作用域
1、函数对象在python中,函数是第一类对象、第一等公民本质:函数可以当变量用,故引发下列操作:1、可以被赋值例:def func(): print('from func')f = funcprint(f)f()2、可以当参数传给另外一个函数def foo(x): x()foo(func)3、可以当做函数的返回值def foo(x): return xres = foo(func)print(res)4、可以当做容器类型的元素l = [fun原创 2020-12-29 17:29:21 · 97 阅读 · 1 评论 -
2020-12-28函数定义及语法
什么是函数? 函数就是盛放代码的容器具备某一功能的工具-》函数事先准备工具的过程-》函数的定义遇到应用场景直接拿来用即可 -》函数的调用为何要用函数:解决下述问题1、代码组织结构不清晰、可读性差2、可扩展性差3、遇到重复的功能只能重复编写实现代码,代码冗余如何用函数:定义的语法:def 函数名(参数1,参数2,参数3…):“”“函数的文档注释 “””代码1代码2代码3retrun 返回值1、申请内存空间把函数体放进去2、将函数的内存地址绑定给函数名 #原创 2020-12-28 16:49:21 · 515 阅读 · 0 评论 -
2020-12-25文件管理具体操作
在python3里,只会将unicode格式的二进制数字转成字符,其余编码格式均不转换,故在python3中,永远无法查看Unicode格式的二进制x = “上”res = x.encode(“gbk”) #以gbk格式编码字符print(res)res.decode(“gbk”) #以gbk格式解码字符文件处理:文件处理的三种模式:r #如果文件不存在则报错,文件存在则将文件指针调至整个文件的开头如:f= open(r"a.txt",mode = “rt”,encodig原创 2020-12-25 21:26:17 · 89 阅读 · 0 评论 -
2020-12-24集合、文件管理笔记
课外拓展:队列:先进先出(FIFO)像排队的队列,队伍前面的一定先完成某件事堆栈:后进先出(LILO)像叠衣服一样,后叠的往往在最上面集合set类型主要用途:(1)去重,但非常鸡肋,可以去重,但处理的必须是不可变类型的数据,同时得到的得数据是无序的,手动去重:l=['a','b',1,'a','a']list = []for i in l: if i not in list: list.append(i) print(list) (2)定义方式原创 2020-12-24 20:02:42 · 71 阅读 · 1 评论