
Pythonの学习包
Python
麋鹿莜
这个作者很懒,什么都没留下…
展开
-
数据库MySQL
Directory:数据库一、数据库管理软件的由来二、数据库介绍三、MySQL介绍四、mysql下载安装五、mysql软件基本管理六、库相关操作创建数据库1、语法2、数据库命名规则数据库相关操作1、查看数据库2、选择数据库3、删除数据库4、修改数据库七、表相关操作切换文件夹查看所有的表名查看刚刚创建表的命令查看创建成功的表结构八、存储引擎1、什么是存储殷勤一、下载:http://dev.mysql.com/downloads/mysql/数据库一、数据库管理软件的由来数据要想永久保存,都是保存于原创 2020-08-31 21:31:20 · 1293 阅读 · 1 评论 -
day40
Directory:一、线程池和进程池shutdown二、定时器三、协程介绍四、greenlet模块五、gevent模块六、单线程的套接字并发七、asyncio七、io模型八、补充虚拟环境一、线程池和进程池shutdown# 主线程等待所有任务执行完成from concurrent.futures import ThreadPoolExecutorimport timepool = ThreadPoolExecutor(3)def task(name): print('%s 开始'原创 2020-08-27 20:20:04 · 160 阅读 · 0 评论 -
day 38
Directory:一、生产者消费者模型1 理论:2 代码实现:初级生产者消费者模型如果queue中没有数据了,消费者会一直卡住制造两个消费者多个生产者和多个消费者(制造两个消费者)最终版本,不用放None二、线程理论三、开启线程的两种方式4 TCP服务端实现并发效果5 线程对象join方法6 同一个进程下的多个线程数据共享7 线程对象及其他方法8 线程互斥锁9 GIL全局解释器锁理论作业一、生产者消费者模型1 理论:-生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。-生产者和消费者原创 2020-08-25 18:25:59 · 436 阅读 · 0 评论 -
Python并发编程之多进程
并发编程1、程序程序就是一堆代码文件2、进程进程一个抽象的概念进程指的是程序的运行过程进程是操作系统最核心的概念3、操作系统1、操作系统的作用 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序2、多道技术 1:产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个 c原创 2020-08-19 21:18:42 · 169 阅读 · 0 评论 -
Python内置函数大全
这里写自定义目录标题内置函数解析abs()返回数字的绝对值all()用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 Trueany()用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。basestring()用来原创 2020-08-19 16:07:38 · 128 阅读 · 0 评论 -
Python之猴子补丁
Directory:一、什么是猴子补丁?二、Monkey Patch功能简介三、运行时动态改变类的方法四、总结五、应用场景一、什么是猴子补丁?猴子补丁:Monkey Patch,主要功能就是动态的属性的替换,模块运行时替换的功能。二、Monkey Patch功能简介Monkey Patch 允许在运行期间动态修改一个类或模块(注意:python中一切皆对象,包括类、方法、甚至是模块)三、运行时动态改变类的方法# 方法一:class A: def func(self):原创 2020-08-19 15:27:58 · 357 阅读 · 0 评论 -
Python之面向对象
一、面向对象的发展史1、面向机器1940年前的程序设计都是采用机器语言(二进制码0和1)来编写的,机器只能识别和执行的指令和数据。例如:使用0000 代表 加载(LOAD)使用0001 代表 存储(STORE)等2、面向过程1940年面向机器的语言被认为是一种“低级语言”,为了解决面向机器语言的问题,创建了面向过程语言。面向过程语言被认为是一种“高级语言”。面向过程语言不在关注机器本身的操作指令等,而是关注如何一步步的解决具体的问题:解决问题的过程。3、面向对象1980年第二次软件危机,原创 2020-08-18 16:10:47 · 122 阅读 · 0 评论 -
元类
Directory:一、简介1、什么是元类2、class关键字创造类的流程分析四、基于元类实现单例模式1、One:定义一个类方法实现单例模式2、Two:定制元类实现单例模式3、定义一个装饰器实现单例模式五、属性查找一、简介1、什么是元类自python诞生初期,就流传了那么一句话:Python中一切皆为对象。# 先定义一个类class OldboyTeacher(object): school = 'oldboy' def __init__(self,name,age):原创 2020-08-18 15:40:47 · 159 阅读 · 0 评论 -
Python之Socket
Directory:一、基于udp协议的套接字通信1、udp协议的客户端2、udp协议的服务端二、基于socketserver模块实现并发tcp1、client.py2、server.py三、基于socketserver模块实现并发udp1、client.py2、server.py四、阿里云部署1、client.py2、server.py一、基于udp协议的套接字通信1、udp协议的客户端from socket import *client = socket(AF_INET, SOCK_DGRAM原创 2020-08-17 21:25:12 · 168 阅读 · 0 评论 -
网络编程
目录:一、客户端/服务端架构1、CS架构2、BS架构一、客户端/服务端架构1、CS架构Client---------网络------------Server客户机--------网络------------服务器建立在局域网(专用的网络)面向相对固定的用户群,信息安全高更注重流程,可以对权限多层次校验,系统运行速度快2、BS架构Browser--------网络------------Server客户机----------网络------------服务器建立在广域网在浏览器上原创 2020-08-10 21:31:09 · 153 阅读 · 0 评论 -
异常处理
目录:异常处理一、介绍1、什么是异常?2、在python中,错误出发的异常分为两种二、异常处理1、多分支的except2、一个except3、万能异常类型Exception4、多分支except...else...5、try...finally...6、raise7、自定义异常类8、assert expression三、何时使用异常处理1、if2、try...expect异常处理一、介绍1、什么是异常?异常是程序发生错误的信号,程序一旦出现错误,便会产生一个异常,若程序中没有处理它,就会抛出异常,程原创 2020-08-10 20:32:12 · 147 阅读 · 0 评论 -
Python之继承
继承Directory:一、继承介绍1 什么是继承2 为何要继承3、如何实现继承通过类的内置属性 _base_ 可以查看类继承的所有父类按照定义Student类的方式再定义一个Teacher类的继承案列:二、在子类派生的新方法中重用父类的功能方式一三、属性查找四、继承的实现原理1)补充知识:2)继承的实现原理2.1 菱形问题:一个子类继承的多条件分支最终汇聚到一个非object类,在菱形继承下五、深度和广度优先一、继承介绍1 什么是继承继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为父类原创 2020-08-06 16:21:39 · 187 阅读 · 0 评论 -
Python之封装
一、封装1、封装封装指的就是把数据与功能都整合到一起2、在封装的基础上,我可以将装到对象或者类中的属性给隐藏起来注意:(1)在定义类或者初始化对象时,在属性前加__,就会将该属性隐藏起来但该隐藏起始只是一种变形_类名__属性名,并没有真的隐藏起来 (2)该变形操作是在类定义阶段扫描语法时发生的变形,类定义之后添加的__开头的属性不会发生变形 (3)该隐藏是对外不对内 (4) 在继承中,父类如果不想让子类覆盖自己的方法,可以将方法定义为私有的???# 例11class原创 2020-08-06 08:40:16 · 161 阅读 · 0 评论 -
Python之类与对象
Directory:一、类与对象1、如何基于面向对象的思想写程序2、基于对象式的思想进行改写二、初始化方法三、属性查找一、类与对象类即类别、种类,是面向对象设计最终要的概念,对象是特征和技能的结合体,而类则是一系列对象向此的特征与技能的结合体在现实世界中:先有对象,再有类在程序中,先定义类,后产生对象# 注意:1、类中可以有任意python代码,这些代码在类定义阶段就会执行2、因而会产生新的名称空间,用来存放类的变量名与函数名,可以通过oldyboystudent._dict_查看3、原创 2020-08-04 17:24:04 · 108 阅读 · 0 评论 -
Python之面向对象
一、面向对象面向过程编程: 核心是过程二字,过程是解决问题的步骤,即先干啥再干啥后干啥 基于该思想写程序就是在设计一条条的流水线 优点:复杂的问题流程化、进而简单化 缺点:扩展性差面向对象编程: 核心是对象二字,对象是一个用来盛放数据与功能的容器 基于该思想写程序就是在整合程序 优点:可扩展性强 缺点:编程的复杂度高...原创 2020-08-03 15:27:22 · 89 阅读 · 0 评论 -
Python之re模块
一、re模块正则表达式:由一系列特殊字符拼接而成的表达式,该表达式用于从一个大字符串中匹配出符合规则的子字符串import re1)\w# \w:匹配字母数字下划线print(re.findall('\w\w\w',"h ello 123_(0"))# ['ell','123']2)\W# \W:匹配非字母数字下划线print(re.findall('\W',"h ello 123_ (0"))# [' ',' ',' ','(']3)\s# \s:匹配任意空白字符原创 2020-08-03 15:25:54 · 167 阅读 · 0 评论 -
Python之匿名函数和三元表达式
三元表达式# 三元表达式:表达式1 if 条件 else 表达式2# 示例1:name=input('姓名>>: ')res='SB' if name == 'alex' else 'NB'print(res) # 输入alex为sb,其他输入都为NB# 示例2:x=111y=222res=x if x > y else yprint(res) # >>> 222匿名函数# 匿名函数即没有名字的函数# 示例:res=(lambda原创 2020-07-23 17:20:40 · 255 阅读 · 1 评论 -
Python之函数的递归和二分法
Directory:一、函数的递归和二分法1、什么是函数的递归调用?2、递归调用应该分为两个阶段3、二分法一、函数的递归和二分法1、什么是函数的递归调用?# 函数的递归调用:就是在调用一个函数的过程中又直接或间接的调用自己。# 示例1:直接调用自己def foo(): print('hello') foo() >>> hello>>>...>>>RecursionError: maximum recursion dep原创 2020-07-23 15:49:53 · 203 阅读 · 0 评论 -
Python之生成式
一、生成式1、列表生成式1)语法[expression for item1 in iterable1 if condition1for item2 in iterable2 if condition2...for itemN in iterableN if conditionN]类似于res=[ ]for item1 in iterable1: if condition1: for item2 in iterable2: if condit原创 2020-07-22 15:33:06 · 324 阅读 · 0 评论 -
Python之面向过程
面向过程核心是“过程”二字,过程指的是做事的步骤也就是先干什么,再干什么,后干什么基于该思想写程序就好比设计一条条的流水线# 优点: 可以把复杂的问题流程化,进而简单化# 缺点: 牵一发而动全身,扩展性差...原创 2020-07-22 15:12:07 · 167 阅读 · 0 评论 -
Python之迭代器和生成器
迭代器一、什么是迭代器# 迭代器:通俗理解,迭代器就是迭代取值的工具,是一种不依赖于索引的取值工具# 器=》工具# 迭代:是一个重复的过程,但每次重复都是基于上一次的结果继续的,单纯的重复不是迭代names=["egon",'lqz','yj']count = 1while count < len(names): print(names[count]) count+=1二、为何要有迭代器# 涉及到把多个值循环取出来的类型:列表、字符串、元组、字典、集合、打开原创 2020-07-22 15:09:35 · 98 阅读 · 0 评论 -
Python之装饰器
Directory:装饰器1、什么是装饰器2、为何要有装饰器3、如何用装饰器:1) 被装饰器对象index如下:2) 为index添加新功能:3) 无参装饰器的模板4)叠加多个装饰器5) 有参装饰器的模板:装饰器1、什么是装饰器器:工具装饰:为被装饰者添加额外的功能2、为何要有装饰器软件一旦上线运行之后,就应该遵循开放封闭原则: 1、开放指的是对拓展新功能开放 2、封闭指的是对修改源代码封闭定义装饰器的目的: 定义装饰器就是为了在遵循1和2的前提下来为其他函数添加新原创 2020-07-21 20:03:50 · 80 阅读 · 0 评论 -
Python之闭包函数
闭包函数:1、什么是闭包?# 内部函数包含对外部作用域而非全局作用域的引用# 提示:之前我们都是通过参数将外部的值传给函数,闭包提供了另外一种思路,包起来!def counter(): n=0 def incr(): nonlocal n x = n n += 1 return x return incrc = counter()print(c())print(c())print(c())print(c._closure_[0].cell_contents)原创 2020-07-20 21:12:46 · 135 阅读 · 0 评论 -
Python之名称空间与作用域
一、名称空间:名称空间就是存放名字的地方1、内置名称空间:存放的是内置的名字,如print\input\len 生命周期: 解释器启动则产生,解释器关闭则销毁2、全局名称空间:存放的是顶级的名字 生命周期: python程序运行时则产生,python程序结束则销毁# 示例:x = 10def func(): x = 111 print(x)if 1: y = 66663、局部名称空间:函数内的名字 生命周期: 调用函数时则产生,函原创 2020-07-20 19:37:05 · 112 阅读 · 0 评论 -
Python之函数嵌套
1、函数的嵌套调用def bar(): print('from bar')def foo(): print('from foo') bar()foo()# 案例:def max2(x,y): if x > y: return x else: return ydef max4(a,b,c,d): res1 = max2(a,b) res2 = max2(res1,c) res3 = m原创 2020-07-20 19:30:47 · 301 阅读 · 0 评论 -
Python之函数对象
函数对象:# 函数对象指的是函数可以被当成变量去使用def foo(): # foo = 函数的内存地址 print('from foo')1、可以被赋值:f = fooprint(f is foo)f()2、以当作参数传给一个函数:def bar(func): print(func) func()bar(foo)3、可以当成一个函数的返回值:def bar(func): return funcres=bar(foo)print(res)原创 2020-07-20 19:28:25 · 171 阅读 · 1 评论 -
Python之可变长的参数
*与**在形参与实参中的应用一:可变长参数# 可变长指的是参数的个数不固定# 站在实参的角度,实参是用来为形参赋值的,如果实参的个数不固定,那么必须要有对应的形参能够接收溢出实参================================>在形参中用*与**<==============================1.1 在形参名前加*:# *会把溢出的位置实参存成元组,然后赋值其后的形参名def func(x,*y): # y=(2,3,4) print(x原创 2020-07-20 19:21:43 · 309 阅读 · 0 评论 -
Python之函数的参数
Directory一:函数的参数分为两大类:1、形参:2、实参:二:在python中参数的种类:1、位置参数:(1)位置形参:(2)位置实参:2、关键字实参:3、默认形参:一:函数的参数分为两大类:1、形参:# 在定义函数时,括号内定义的变量名,称之为形式参数,简称形参=》变量名def func(x,y): x=1 y=2print(x)print(y)2、实参:# 在调用函数时,括号内传入的值,称之为实际参数,简称实参=》变量值func(1,2)二:在python中原创 2020-07-20 19:10:50 · 262 阅读 · 0 评论 -
python之函数的基本介绍
Directory:一:函数1、什么是函数2、为何要有函数3、如何用函数二:函数的基本使用1、定义函数:2、调用函数:三:定义函数的三种格式2.1: 无参函数2.2: 有参函数2.3: 空函数四:函数的调用四:函数调用的三种格式4.1 语句形式:4.2 表达式形式:4.3 可以把函数的调用当作值传给另外一个函数五:总结:一:函数1、什么是函数具备某一功能的工具 =====》函数工具的使用: 事先准备好工具==========》函数的定义 遇到应用场景拿来就用====》函数的调用原创 2020-07-20 19:06:31 · 144 阅读 · 0 评论 -
python之文件修改
文件修改with open('a.txt',mode='r+t',encoding='utf-8') as f: print(f.writable()) f.seek(7,0) f.write('SB')with open('a.txt',mode='r+t',encoding='utf-8') as f: f.seek(3,0) f.write('h')# 由上例得出结论:硬盘都是用新内容覆盖旧内容,没有修改的概念,但是内存是可以修改的如何修改文件:# 思路:把硬盘的内容先读原创 2020-07-20 18:54:07 · 135 阅读 · 0 评论 -
python之数据类型的大总结
目录数据类型的总结:按照存储空间的占用分(从低到高)按存值个数区分按可变不可变区分按访问顺序区分:数据类型的总结:按照存储空间的占用分(从低到高)数字:整形、浮点型字符串集合:无序,及无序存索引相关信息元组:有序,需要存索引相关信息,不可变列表:有序,需要存索引相关信息,可变,需要处理数据的增删改字典:无序,需要存key与value的相关信息,可变,需要处理数据的增删改按存值个数区分单个:数字、字符串、布尔值多个:列表、元组、字典、集合按可变不可变区分可变原创 2020-07-15 15:26:21 · 112 阅读 · 0 评论 -
python之字符编码
一、知识储备python解释器执行py文件的原理# python3 D:\a.py1、先启动python解释器2、解释器会将a.py的内容当成普通内存从硬盘读入内存,此时没有语法意义3、解释器会解释执行刚刚读入内存的内存,开始识别python语法python解释器与文件本编辑的异同# 1、相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能# 2、不同点:文本编辑器讲文件内容读入内存后,是为了显示或者编辑,根本不去理会python的语法,而python原创 2020-07-15 15:01:32 · 120 阅读 · 0 评论 -
Python之文件处理
一、文件操作操作文件的流程:# 1、打开文件、得到文件句柄并赋值给一个变量# 2、通过句柄对文件进行操作# 3、关闭文件在python中# 1、打开文件,得到文件句柄并赋值给一个变量f = open('a.txt','r',encoding='utf-8') # 默认打开模式就为r# 2、通过句柄对文件进行操作data = f.read()# 3、关闭文件f.close()f=open(‘a.txt’,‘r’)的过程分析# 1、由应用程序向操作系统发起系统调用open(.原创 2020-07-13 20:03:23 · 110 阅读 · 0 评论 -
day 08 元组的常用操作和内置方法
元组的常用操作和内置方法什么是元组?元组就是一个不可变的列表1、用途:按照索引存放多个任意类型的值,索引反应的是位置/顺序2、定义方式# 在()内用逗号分隔开多个任意类下的值/元素t=(10)print(type(t))# 强调:当元组内只有一个元素时,必须加逗号t=(10,)print(type(t))t=(10,1.1,"aaa",[11,22])print(t[-1][0])t[0]=11111t[-1]=333333t=(11,22,[33,44])pr原创 2020-07-13 18:48:18 · 124 阅读 · 0 评论 -
day 08 字典的常用操作和内置方法
字典的常用操作和内置方法1、用途按key:value的形式存放多个任意类型的value,key反映的是value的属性2、定义方式在{}内用逗号分隔开多个key:value,其中value可以是任意类型,而key必须是不可变的类型,通常是字符串类型d={'k1':111,'k1':222,'k1':3333} # key重复,只保留一个print(d)d={1:"aaa",3.1:'bbbb',[1,2]:"ccc"}d={1:"aaa",3.1:'bbbb',():"ccc"}原创 2020-07-13 18:44:19 · 109 阅读 · 0 评论 -
day 08 列表的常用操作和内置方法
列表的常用操作和内置方法1、用途:按照索引存放多个任意类型的值,索引反映的是位置/顺序2、定义方式:在[]内用逗号分割开多个任意类型的元素l=[111,1.1,"aaa",[2222,3333]] # l=list([111,1.1,"aaa",[2222,3333]])print(type(l))数据类型转换:res=list("hello")res=list({"k1":1,"k2":2,"k3":3})print(res)3、常用操作+内置的方法优先掌握的操作:#原创 2020-07-13 18:39:55 · 100 阅读 · 0 评论 -
day 07 字符串类型的常用操作及内置方法
三、字符串(了解)1、find,rfind,index,rindex,count# find:顾头不顾尾,找不到则返回-1不会报错,找到了显示索引x = "hello egon egon egon"res=x.find("egon")print(res) # >>>6res=x.find("egon123")print(res) # >>>-1(找不到)res=x.find("egon",0,3)print(res) # >>&原创 2020-07-13 15:47:04 · 116 阅读 · 0 评论 -
day 06 流程控制之while/for循环
目录一、流程控制之while循环1、为何要用循环?2、如何使用while循环?1)条件循环2)死循环3)循环嵌套与tag4)break与continue5、while + else6、结束流程7、while循环嵌套二、流程控制之for循环一、流程控制之while循环1、为何要用循环?可以用循环语句减少重复代码2、如何使用while循环?1)条件循环while 条件:# 循环体# 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件# 如果条件为假,那么循环体不执行,循环终止原创 2020-07-09 18:54:38 · 128 阅读 · 0 评论 -
流程控制之if判断
流程控制之if判断什么是分支结构:分支结构就是根据条件判断的真假去执行不同分支对应的子代码为什么要用分支结构:if语法# if的完整语法:if 条件1: 缩进的代码块elif 条件2: 缩进的代码块else: 缩进的代码块if应用案例案例1:(if 嵌套)gender = "female"age = 18is_beautiful = Trueis_successful = Trueif gender == "female" and 60 >= age >原创 2020-07-08 15:01:31 · 105 阅读 · 0 评论 -
day 05 基本运算符
基本运算符一、算数运算假设变量: a = 10 ,b = 20+(加 ):两个对象相加a + b = 30-(减):得到复数或是一个数减去另一个数a - b = -10*(乘):两个数相乘或是返回一个被重复若干次的字符串a * b = 200/(除):x除以yb / a = 2%(取模):返回除法的余数b % a = 0**(幂):返回x的y次幂a ** b = 100000000000000000000//(取整除):返回商的整数部分9原创 2020-07-07 21:24:06 · 156 阅读 · 0 评论