自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 MySQL之多表查询

Directory:一、介绍# 建表create table department(id int,name varchar(20) );create table employee(id int primary key auto_increment,name varchar(20),sex enum('male','female') not null default 'male',age int,dep_id int);# 插入数据insert into department

2020-09-07 19:03:24 142

原创 数据库MySQL

Directory:数据库一、数据库管理软件的由来二、数据库介绍三、MySQL介绍四、mysql下载安装五、mysql软件基本管理六、库相关操作创建数据库1、语法2、数据库命名规则数据库相关操作1、查看数据库2、选择数据库3、删除数据库4、修改数据库七、表相关操作切换文件夹查看所有的表名查看刚刚创建表的命令查看创建成功的表结构八、存储引擎1、什么是存储殷勤一、下载:http://dev.mysql.com/downloads/mysql/数据库一、数据库管理软件的由来数据要想永久保存,都是保存于

2020-08-31 21:31:20 391 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 120

原创 day 38

Directory:一、生产者消费者模型1 理论:2 代码实现:初级生产者消费者模型如果queue中没有数据了,消费者会一直卡住制造两个消费者多个生产者和多个消费者(制造两个消费者)最终版本,不用放None二、线程理论三、开启线程的两种方式4 TCP服务端实现并发效果5 线程对象join方法6 同一个进程下的多个线程数据共享7 线程对象及其他方法8 线程互斥锁9 GIL全局解释器锁理论作业一、生产者消费者模型1 理论:-生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。-生产者和消费者

2020-08-25 18:25:59 173

原创 Python并发编程之多进程

并发编程1、程序程序就是一堆代码文件2、进程进程一个抽象的概念进程指的是程序的运行过程进程是操作系统最核心的概念3、操作系统1、操作系统的作用 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序2、多道技术 1:产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个 c

2020-08-19 21:18:42 115

原创 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 97

原创 Python之猴子补丁

Directory:一、什么是猴子补丁?二、Monkey Patch功能简介三、运行时动态改变类的方法四、总结五、应用场景一、什么是猴子补丁?猴子补丁:Monkey Patch,主要功能就是动态的属性的替换,模块运行时替换的功能。二、Monkey Patch功能简介Monkey Patch 允许在运行期间动态修改一个类或模块(注意:python中一切皆对象,包括类、方法、甚至是模块)三、运行时动态改变类的方法# 方法一:class A: def func(self):

2020-08-19 15:27:58 287

原创 Python之面向对象

一、面向对象的发展史1、面向机器1940年前的程序设计都是采用机器语言(二进制码0和1)来编写的,机器只能识别和执行的指令和数据。例如:使用0000 代表 加载(LOAD)使用0001 代表 存储(STORE)等2、面向过程1940年面向机器的语言被认为是一种“低级语言”,为了解决面向机器语言的问题,创建了面向过程语言。面向过程语言被认为是一种“高级语言”。面向过程语言不在关注机器本身的操作指令等,而是关注如何一步步的解决具体的问题:解决问题的过程。3、面向对象1980年第二次软件危机,

2020-08-18 16:10:47 83

原创 元类

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 112

原创 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 122

原创 选课系统

选课系统:一、start.py二、src.py1、admin.py2、teacher.py3、student.py三、common.py四、settings.py五、db_handler.py六、models.py七、interface1、common_interface.py2、admin_interface.py3、teacher_interface.py4、student_interface.py一、start.pyimport sys, ospath = os.path.dirname(__

2020-08-16 22:02:58 178

原创 网络编程

目录:一、客户端/服务端架构1、CS架构2、BS架构一、客户端/服务端架构1、CS架构Client---------网络------------Server客户机--------网络------------服务器建立在局域网(专用的网络)面向相对固定的用户群,信息安全高更注重流程,可以对权限多层次校验,系统运行速度快2、BS架构Browser--------网络------------Server客户机----------网络------------服务器建立在广域网在浏览器上

2020-08-10 21:31:09 117

原创 异常处理

目录:异常处理一、介绍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 112

原创 博客目录

Directory:一、计算机基础:1、计算机硬件与工作原理2、计算机硬件基础知识普及

2020-08-10 19:50:39 65

原创 Python之继承

继承Directory:一、继承介绍1 什么是继承2 为何要继承3、如何实现继承通过类的内置属性 _base_ 可以查看类继承的所有父类按照定义Student类的方式再定义一个Teacher类的继承案列:二、在子类派生的新方法中重用父类的功能方式一三、属性查找四、继承的实现原理1)补充知识:2)继承的实现原理2.1 菱形问题:一个子类继承的多条件分支最终汇聚到一个非object类,在菱形继承下五、深度和广度优先一、继承介绍1 什么是继承继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为父类

2020-08-06 16:21:39 153

原创 Python之封装

一、封装1、封装封装指的就是把数据与功能都整合到一起2、在封装的基础上,我可以将装到对象或者类中的属性给隐藏起来注意:(1)在定义类或者初始化对象时,在属性前加__,就会将该属性隐藏起来但该隐藏起始只是一种变形_类名__属性名,并没有真的隐藏起来 (2)该变形操作是在类定义阶段扫描语法时发生的变形,类定义之后添加的__开头的属性不会发生变形 (3)该隐藏是对外不对内 (4) 在继承中,父类如果不想让子类覆盖自己的方法,可以将方法定义为私有的???# 例11class

2020-08-06 08:40:16 118

原创 Python之类与对象

Directory:一、类与对象1、如何基于面向对象的思想写程序2、基于对象式的思想进行改写二、初始化方法三、属性查找一、类与对象类即类别、种类,是面向对象设计最终要的概念,对象是特征和技能的结合体,而类则是一系列对象向此的特征与技能的结合体在现实世界中:先有对象,再有类在程序中,先定义类,后产生对象# 注意:1、类中可以有任意python代码,这些代码在类定义阶段就会执行2、因而会产生新的名称空间,用来存放类的变量名与函数名,可以通过oldyboystudent._dict_查看3、

2020-08-04 17:24:04 80

原创 re模式练习题

1、匹配密码,密码必须是由6位数字与字母组成,并且不能是纯数字也不能是纯字母# 知识点:# ?!pattern,表示在没有配到pattern的字符串的前提下,再进行后续的正则表达式匹配,后续匹配仍然从被匹配字符串的头开始# 答案:import reprint(re.search("(?!^[0-9]+$)(?!^[a-zA-Z]+$)^[0-9A-Za-z]{6}$","123asf").group()) # 123asf# 解释:# 上述正则的意思为:在匹配(?!^[0-9]+$)以

2020-08-03 19:19:12 407

原创 Python之面向对象

一、面向对象面向过程编程: 核心是过程二字,过程是解决问题的步骤,即先干啥再干啥后干啥 基于该思想写程序就是在设计一条条的流水线 优点:复杂的问题流程化、进而简单化 缺点:扩展性差面向对象编程: 核心是对象二字,对象是一个用来盛放数据与功能的容器 基于该思想写程序就是在整合程序 优点:可扩展性强 缺点:编程的复杂度高...

2020-08-03 15:27:22 55

原创 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 122

原创 软件开发的目录规范

# conf(配置文件夹,存放配置信息文件)# setting.py(存放路径等信息的配置文件)# 配置文件(常量)import os# ATM根目录路径# D:\python全栈15期\day18\ATMBASE_PATH = os.path.dirname(os.path.dirname(__file__))# DB目录路径# D:\python全栈15期\day18\ATM\dbDB_PATH = os.path.join(BASE_PATH, 'db')'''日志

2020-07-28 21:29:15 504

原创 Python之ATM+购物车项目

# bin(文件夹,存放启动程序)# star.py(启动文件,即执行程序)# 启动程序入口# 1.将当前ATM项目工程,添加解释器的环境变量import os # 与操作系统进行交互import sys # 与解释器进行交互# 1) 获取ATM的目录路径base_path = os.path.dirname(__file__)# 2) 将项目路径添加到解释器的环境变量中sys.path.append(base_path)# 3) 将视图层中的执行函数,引用到当前位置执行

2020-07-28 21:26:12 426

原创 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 191 1

原创 Python之函数的递归和二分法

Directory:一、函数的递归和二分法1、什么是函数的递归调用?2、递归调用应该分为两个阶段3、二分法一、函数的递归和二分法1、什么是函数的递归调用?# 函数的递归调用:就是在调用一个函数的过程中又直接或间接的调用自己。# 示例1:直接调用自己def foo(): print('hello') foo() >>> hello>>>...>>>RecursionError: maximum recursion dep

2020-07-23 15:49:53 157

原创 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 255

原创 Python之面向过程

面向过程核心是“过程”二字,过程指的是做事的步骤也就是先干什么,再干什么,后干什么基于该思想写程序就好比设计一条条的流水线# 优点: 可以把复杂的问题流程化,进而简单化# 缺点: 牵一发而动全身,扩展性差...

2020-07-22 15:12:07 133

原创 Python之迭代器和生成器

迭代器一、什么是迭代器# 迭代器:通俗理解,迭代器就是迭代取值的工具,是一种不依赖于索引的取值工具# 器=》工具# 迭代:是一个重复的过程,但每次重复都是基于上一次的结果继续的,单纯的重复不是迭代names=["egon",'lqz','yj']count = 1while count < len(names): print(names[count]) count+=1二、为何要有迭代器# 涉及到把多个值循环取出来的类型:列表、字符串、元组、字典、集合、打开

2020-07-22 15:09:35 66

原创 Python之装饰器

Directory:装饰器1、什么是装饰器2、为何要有装饰器3、如何用装饰器:1) 被装饰器对象index如下:2) 为index添加新功能:3) 无参装饰器的模板4)叠加多个装饰器5) 有参装饰器的模板:装饰器1、什么是装饰器器:工具装饰:为被装饰者添加额外的功能2、为何要有装饰器软件一旦上线运行之后,就应该遵循开放封闭原则: 1、开放指的是对拓展新功能开放 2、封闭指的是对修改源代码封闭定义装饰器的目的: 定义装饰器就是为了在遵循1和2的前提下来为其他函数添加新

2020-07-21 20:03:50 53

原创 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 97

原创 Practice questions

Practice questions:一、下述所有代码画图以及分析代码执行流程# 以定义阶段为准,先画出名称空间的嵌套关系图# 然后找到调用函数的位置,写出函数调用时代码的执行过程,涉及到名字的查找时,参照1中画好的嵌套图,标明查找顺序,一层一层直到找到位置# ===================题目一===================input=333def func(): input=444func()print(input)# 答案:333 先全局找到input

2020-07-20 20:59:39 158

原创 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 70

原创 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 236

原创 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 123 1

原创 Python之可变长的参数

*与**在形参与实参中的应用一:可变长参数# 可变长指的是参数的个数不固定# 站在实参的角度,实参是用来为形参赋值的,如果实参的个数不固定,那么必须要有对应的形参能够接收溢出实参================================>在形参中用*与**<==============================1.1 在形参名前加*:# *会把溢出的位置实参存成元组,然后赋值其后的形参名def func(x,*y): # y=(2,3,4) print(x

2020-07-20 19:21:43 244

原创 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 167

原创 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 101

原创 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 105

原创 python之数据类型的大总结

目录数据类型的总结:按照存储空间的占用分(从低到高)按存值个数区分按可变不可变区分按访问顺序区分:数据类型的总结:按照存储空间的占用分(从低到高)数字:整形、浮点型字符串集合:无序,及无序存索引相关信息元组:有序,需要存索引相关信息,不可变列表:有序,需要存索引相关信息,可变,需要处理数据的增删改字典:无序,需要存key与value的相关信息,可变,需要处理数据的增删改按存值个数区分单个:数字、字符串、布尔值多个:列表、元组、字典、集合按可变不可变区分可变

2020-07-15 15:26:21 86

原创 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 88

原创 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 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除