![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
GouZe1
把喜欢当做动力
展开
-
Python的垃圾回收机制
Garbage Collection小整数对象池Python中为了避免为整数频繁申请和销毁内存空间,Python对小整数[-5,257)这些整数对象是提前创建好的,不会被垃圾回收。在一个Python程序中,所有位于这个返回内的整数使用的都是同一个对象。同理,单个字母也是如此。对于超过这个数值大小的数字就单独创建一个地址。intern机制如果多个变量同时指向同一个str对象,相应...原创 2019-10-12 12:17:11 · 107 阅读 · 0 评论 -
闭包
闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。...原创 2019-05-16 22:35:27 · 100 阅读 · 0 评论 -
Python中与进程有关的模块
os模块中提供部分函数处理子进程-----os.fork # 要求系统创建一个子进程-----os.getpid # 获取当前进程的pid-----os.getppid # 获取当前进程的父进程的pid...原创 2019-05-16 21:59:26 · 317 阅读 · 0 评论 -
Python2和Python3的区别
1.print函数:(Python3中print为一个函数,必须用括号括起来;Python2中print为class)Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。2.通过input()解析用户的输入:(Python3中input得到的为str;Python2的input的到的为int型,Python2的raw_in...原创 2019-05-15 22:06:16 · 126 阅读 · 0 评论 -
Flask和Django框架的区别
**Flask:1:轻量级web框架,只有一个内核,默认依赖两个外部库:Jinja2 模板引擎和 Werkzeug WSGI 工具集,自由,灵活,可扩展性强,开发者可以根据需求自己造轮子2:适用于做小型网站以及web服务的API,开发大型网站无压力,架构需自行设计3:与关系型数据库结合不弱于Django,而与非关系型数据库的结合远远优于Django**Django:1:重量级web框...原创 2019-05-15 21:57:02 · 627 阅读 · 0 评论 -
if __name__ == '__main__'
**if name == 'main,入口函数**如果创建了一个模块,那么这个模块就会有一个__name__,用于表示当前模块的名字__main__:是当前执行文件的名称当模块直接被执行时,则代码会被运行如果模块是被导入的,则代码不会被执行...原创 2019-05-15 21:50:31 · 132 阅读 · 0 评论 -
Python中的生成器和迭代器
迭代器所谓迭代器,是指具有next方法的对象。注意调用next方式的时候,不需要任何参数。调用next方法时,迭代器会返回它的下一个值。如果迭代器没有值返回,则会抛出StopIteration的异常。简单示例:list = [1, 2, 3]it = list.__iter__() #调用列表的__iter__方法返回一个迭代器print(it)>&...原创 2019-05-15 21:37:52 · 71 阅读 · 0 评论 -
MVC编程模式
**MVC编程模式MVC是一种使用MVC(Model View Controller)模型–视图–控制器设计创建web应用程序的模式1. Model(模型)表示程序核心,比如数据库记录列表2. View(视图)显示数据,比如数据库的记录3. Controller(控制器)处理输入,比如写入数据记录Model:业务层(模型逻辑)View:显示层(视图逻辑)Controll:控制输入...原创 2019-05-15 20:49:33 · 700 阅读 · 0 评论 -
Python中的深浅拷贝
定义在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,python没有拷贝这个对象,只是拷贝了这个对象的引用而已浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用,也就是把对对象复制一遍,但是该对象中引用的其他对象我不复制。深拷贝:外围和内部元素都进行拷贝对象本身,而不是引用。也就是说,把对象复制一遍,并且该对象中引用的其他对象我也复制...原创 2019-05-15 15:16:46 · 167 阅读 · 0 评论 -
re模块的详细解析
**Python中re模块主要包含以下几种方法:**re.compile::编译一个正则表达式模式(pattern)re.match::从头开始匹配,使用group()方法可以获取第一个匹配值re.search :用包含方式匹配,使用group()方法可以获取第一个匹配值re.findadll:用包含方式匹配,把所有匹配到的字符放到以列表中的元素返回多个返回值re.sub:匹配字符...原创 2019-05-15 11:13:45 · 2354 阅读 · 0 评论 -
Python中的request模块
Request模块用于网络访问模块使用get方法获取请求import requestsr = requests.get("https://www.baidu.com/")print(r)print(type(r))返回一个request对象get方法传入一个params关键字import requestspayload = {'key1': 'value1', '...原创 2019-05-14 21:43:34 · 923 阅读 · 0 评论 -
Python中的threading模块
threading-更高级别的线程接口源代码:Lib/threading.py该模块在较低级别thread模块之上构建更高级别的线程接口。另请参见mutex和Queue模块。该dummy_threading模块适用于threading因thread缺失而无法使用的情况 。threading.active_count()threading.activeCount()返回Thread当前活...转载 2019-05-16 22:24:56 · 1044 阅读 · 0 评论 -
Lock和Rlock
Lock.acquire([blocking])获取一把锁,阻塞的或者非阻塞的。当调用时blocking参数设置为True(默认值),将阻塞直至锁变成unblocked,然后设置它的状态为locked并返回True。当调用时blocking参数设置为False,将不会阻塞。Lock.release()释放一把锁。当锁是locked时,重置它为unlocked,然后返回。如果存在其他阻塞...原创 2019-05-16 22:29:54 · 3817 阅读 · 0 评论 -
Kafka的基本概述
kafka概念解释kafka是用于构建实时数据管道和流应用程序,具有横向扩展,高容错,wicked fast(变态快)等优点。Apache kafka是消息中间件的一种,举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),...原创 2019-08-12 10:22:05 · 165 阅读 · 0 评论 -
Python面经,无图全文字那种,适合打印减少油墨
**Python常见面试题**懒的加图,最近面试的面经汇总!Python中的with语句:with语句经常适用于对资源进行访问的场合,确保在访问的过程中不管是否发生异常都会指执行必要的清理操作,比如文件的自动关闭以及线程中锁的自动获取与释放。WITH为什么会执行清理操作呢1.执行 context_expression,生成上下文管理器 context_manager2.调用上下文...原创 2019-07-28 00:44:46 · 259 阅读 · 0 评论 -
网络编程
网络编程网络编程就是如何在程序中实现两台计算机的通信。也就是两个进程之间的通信Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。客户端网络编程导入socket库:import socket创建一个socket:s = socket.socket(socket.AF_...原创 2019-08-07 23:43:40 · 117 阅读 · 0 评论 -
Python后台面试题
WEB开发面试题1. 解释什么是Flask及其好处?Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务。2. Django和Flask有什么区别?FlaskFlask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过Flask自由、灵活,可扩展性强,第三方...原创 2019-08-07 23:35:31 · 476 阅读 · 0 评论 -
Python算法
排序冒泡算法arr = [1, 36, 7, 102, 54]def BubbleSort(arr): n = len(arr) for i in range(0,n-1): #最后一位不用排了,所以是n-1 for j in range(0,n-1-i): #冒泡排序从后到前,不断减少范围 if arr[j]>arr...原创 2019-08-07 23:10:48 · 218 阅读 · 0 评论 -
Python就地快速排序
基于交换的方式,减少了原来快排的L,G,pivot等内存使用"""Data: 2019/6/24 14:42"""def inplace_quick_sort(S, a, b): if a >= b: return pivot = S[b] left = a right = b-1 while left <= right: ...原创 2019-06-24 15:13:45 · 389 阅读 · 0 评论 -
验证URL的合法性
通过正则表达式验证url的合法性"""Data: 2019/5/27 13:56"""import redef legal_url(url): pattern = re.compile(r'^(http|https|ftp|rtsp|mms)://' # 头部协议 ...原创 2019-05-27 16:01:28 · 2410 阅读 · 0 评论 -
Python中的线程,进程与协程
**Python进程**进程优点:它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。进程缺点:进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程...原创 2019-05-14 09:53:31 · 116 阅读 · 0 评论 -
Python中的装饰器
**装饰器的介绍**装饰器就是对被装饰的对象(函数、类)进行重构的,其可以在不改变原来对象的情况下调用对象时执行重构后的行为解决问题:在函数执行之前和执行之后添加功能,调用函数的方式改变了不改变原有函数的调用方法:函数里面嵌套函数,并且返回嵌套的函数def login(): print('中秋节快乐') print('login') print('正在登入。...原创 2019-05-14 09:42:18 · 125 阅读 · 0 评论 -
Flask通用项目框架
Flask通用项目框架form:验证层libs:HTTP请求层models:显示模型层spider:API请求数据层templates:模板层view_models:业务层webs:视图函数层构造函数:Flask核心对象实例化,载入配置文件配置文件:1.secure.py 保密的机密文件2.setting.py 保存不算是机密的消息内容入口文件:创建实例对象,端口初始化...原创 2019-04-03 14:56:04 · 293 阅读 · 0 评论 -
Python之小和问题
**Python之小和问题**小和问题就是在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和,求一个数组的小和例子:[1, 3, 4, 2, 5]左边比1小的数: None左边比3小的数:1左边比4小的数:1,3左边比2小的数:1左边比5小的数:1,3,4,2所以小和为:1+1+3+1+1+3+4+2=16**普通解法**arr = [1, 3, 4, 2...原创 2019-04-12 15:23:10 · 330 阅读 · 0 评论 -
Python基础算法之快速排序
**Python基础算法之快速排序**经典快排就是将序列中在序列中选取一个基准值,比如选择arr[0]作为基准值,将小于基准值的放在左边,大于基准值的放在右边,对以该元素为界的左右两个子序列(均不包括该元素)重复此操作。经典排序的时间复杂度与数据状况有关,如果每一次quicksort时,尾元素都是序列中最大或最小的,那么去除该元素序列并未如我们划分为样本量相同的左右两个子序列,而是只安排好...原创 2019-04-15 19:39:22 · 196 阅读 · 0 评论 -
Python基础算法之归并排序
Python基础算法之归并排序该算法采用经典的分治策略,将问题分解成一些小问题然后递归分解,而治的阶段将各个阶段修补在一起时间复杂度:O(N*logN) 空间复杂度:O(N)#先拆分,之后再和回去def Merge(arr): #先分为两部分 n = len(arr) if n <= 1: return arr mid...原创 2019-04-12 14:33:03 · 143 阅读 · 0 评论 -
Python递归算法解决斐波那契数列
**Python递归算法解决斐波那契数列**斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…这个数列从第3项开始,每一项都等于前两项之和。递归算法定义:就是一个函数直接或间接调用自身的一种方法,他...原创 2019-04-11 22:13:56 · 11279 阅读 · 0 评论 -
Python基础算法之插入排序
**Python基础算法之插入排序**每一步将一个待排序的元素按其序码大小,插入到前面已经排好的一组元素中去,直到元素插入完为止时间复杂度:O(N^2) 空间复杂度:O(1)arr = [1, 36, 7, 102, 54]def InsertionSort(arr): n = len(arr) for i in range(1,n): j = ...原创 2019-04-11 21:39:04 · 183 阅读 · 0 评论 -
Python基础算法之选择排序
**Python基础算法之选择排序**扫描一遍数组,选出最小的元素将其放在最小处第二轮同样将第二小的数放在第二个位置arr = [1, 36, 7, 102, 54]# 扫描一遍,把最小的放在最小位置def SelectSort(arr): n = len(arr) for i in range(0,n-1): min_index = i #...原创 2019-04-11 21:34:04 · 167 阅读 · 0 评论 -
Python基础算法之冒泡算法
**Python基础算法之冒泡算法**冒泡排序,又称为气泡排序或是泡沫排序遍历若干次要排序的数列,每次遍历时,他都会从前往后依次比较相邻的大小,并将较小的放前面arr = [1, 36, 7, 102, 54]def BubbleSort(arr): n = len(arr) for i in range(0,n-1): #最后一位不用排了,所以是n-1...原创 2019-04-11 21:30:05 · 320 阅读 · 0 评论 -
Flask框架的视图函数编写
Flask框架的视图函数编写# 用户注册信息视图函数from flask import render_template, request, url_for, flash, redirectfrom werkzeug.security import check_password_hashfrom app.form.auth import RegisterForm, LoginForm, E...原创 2019-04-03 15:22:49 · 423 阅读 · 0 评论 -
Flask框架下的view_model业务处理层
Flask框架下的view_model业务处理层# 定义单本的类# 静态方法是直接可以[类名.方法]调用的class BookViewModel: def __init__(self, book): self.title = book['title'] self.publish = book['publish'] self.pages ...原创 2019-04-03 15:24:51 · 1145 阅读 · 0 评论 -
Flask框架下的API封装层
Flask框架下的API封装层# 封装业务逻辑from app.libs.http import HTTPfrom flask import current_appclass QinShu: per_page = 15 isbn_url = 'http://t.yushu.im/v2/book/isbn/{}' keyword_url = 'http://t.y...原创 2019-04-03 15:26:24 · 939 阅读 · 0 评论 -
Python中的异常处理
Python中的异常处理异常的抛出机制:1、如果在运行时发生异常,解释器会查找相应的处理语句(称为handler).2、要是在当前函数里没有找到的话,它会将异常传递给上层的调用函数,看看那里能不能处理。3、如果在最外层(全局“main”)还是没有找到的话,解释器就会退出,同时打印出traceback以便让用户找到错误产生的原因。try…except语句str = 'Hello boy!...原创 2019-05-14 09:12:12 · 172 阅读 · 0 评论 -
Python中的文件处理
**Python中的文件处理**简单示例:对比文本方式和二进制方式两种方式打开同一个文件的差异r = open('C:\\Users\\123\Desktop\\test.txt', 'r')print(r.readline())f = open('C:\\Users\\123\Desktop\\test.txt', 'rb')print(f.readline())结果如下:...原创 2019-05-13 22:03:09 · 172 阅读 · 0 评论 -
Python中json格式
**Python中的json格式**Python中的json模块主要用来进行Python对象的序列化和反序列化模块中提供了四种方法序列化json.dump将Python中的对象序列化为Json格式的数据流并写入文件类型的对象中json.dumps将Python对象序列化为Json格式的字符串反序列化json.load从文件类型的对象中读取Json格式的数据并反序...原创 2019-05-13 21:12:46 · 838 阅读 · 0 评论 -
如何模拟用户登录爬取知乎
**如何模拟用户登录爬取知乎**import requests# 可以读取本地的cookie送给requeststry: import cookielib # Python2中叫cookielibexcept: import http.cookiejar as cookielib # Python3中叫做cookiej...原创 2019-05-08 20:25:47 · 857 阅读 · 1 评论 -
Python实现旋转打印矩阵
**Python实现旋转打印矩阵**思路:逆时针旋转矩阵,打印完一行删除一行,直到打印结束class Solution(object): def printMatrix(self, matrix): # 打印矩阵 result = [] while matrix: result += matrix.pop(0) if matrix: ...原创 2019-04-18 00:12:45 · 826 阅读 · 0 评论 -
Python对数器
**Python对数器**一、对数器1、用途:验证算法是否正确的一种方式。2、使用:(1)有一个想测的方法func(2)实现一个绝对正确但是复杂度不好的方法RightMathod(3)实现一个随机样本产生器(4)实现比对的方法(5)把方法a和方法b比对很多次来验证方法a是否正确(6)如果有一个样本使得比对出错,打印样本分析是哪个方法出错import random, oper...原创 2019-04-17 23:58:05 · 457 阅读 · 0 评论 -
Flask下的验证层
Flask下的验证层# 验证层,验证注册的用户from wtforms import StringField, Form, PasswordFieldfrom wtforms.validators import DataRequired, Length, Email, ValidationError, EqualTofrom app.models.user import User#...原创 2019-04-03 15:30:25 · 224 阅读 · 0 评论