自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python中的内存管理

Python中的内存管理内存是一本空白的书可以将计算机的内存想像成一本用来写短篇小说的空书。它的页面上还没有任何的内容,但是到了后面,不同的作者将会出现。每个作者都想要一些空间来书写它们的内容。由于它们不允许书写在不属于它们的页,因此它们必须小心写内容在页面上,在它们开始写作之前,它们会咨询负责管理这本书的“经理”,然后由经理来决定允许它们写书的位置。由于这本书已经存在了很长的时间,所以其...

2019-07-16 16:33:55 807

转载 Python中的线程和进程

Python中的进程和线程对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,进程内...

2019-07-14 15:32:39 298

原创 Python的GIL详解

GIL详解GIL全称global interpreter lock,全局解释器锁,是 Python 解释器中的一个布尔值,受到互斥保护。这个锁被 CPython 中的核心字节码用来评估循环,并调节用来执行语句的当前线程。每个线程在执行的时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU。执行单线程程序的开发人员看不到GIL的影响,但它可能是CPU绑定...

2019-07-10 20:20:16 4245 2

原创 Python从零开始编写轻量级Web框架(4):实现重定向功能

重定向redirect最近阅读了Flask的源码,弄懂了原理之后就想尝试来实现自己的一个Web框架。因为大部分的实现思路都参照Flask0.1版本,也就是最初版本的思路。所用的基本库是werkzeug。框架的完整代码都放在了Github上,之后会继续更新:https://github.com/jyz0309/WebFrame求star,球球了T_T完成了session功能后,接下来来继续...

2019-09-27 17:47:19 466

原创 Python从零开始编写轻量级Web框架(3)

编写一个轻量级的Web应用框架最近阅读了Flask的源码,弄懂了原理之后就想尝试来实现自己的一个Web框架。因为大部分的实现思路都参照Flask0.1版本,也就是最初版本的思路。所用的基本库是werkzeug。框架的完整代码都放在了Github上,之后会继续更新:https://github.com/jyz0309/WebFrame求star,球球了T_T在完成了ORM模块之后,接下来为...

2019-09-01 00:01:30 304

原创 Python从零开始编写轻量级Web框架(2)

编写一个轻量级的Web应用框架最近阅读了Flask的源码,弄懂了原理之后就想尝试来实现自己的一个Web框架。因为大部分的实现思路都参照Flask0.1版本,也就是最初版本的思路。所用的基本库是werkzeug。框架的完整代码都放在了Github上,之后会继续更新:https://github.com/jyz0309/WebFrame求star,球球了T_T在完成了框架的最基本的GET、P...

2019-08-25 23:33:28 420

原创 Python从零开始编写轻量级Web框架(1)

编写一个轻量级的Web应用框架最近阅读了Flask的源码,弄懂了原理之后就想尝试来实现自己的一个Web框架。因为大部分的实现思路都参照Flask0.1版本,也就是最初版本的思路。所用的基本库是werkzeug。框架的完整代码都放在了Github上,之后会继续更新:https://github.com/jyz0309/WebFrame求star,球球了T_T总体思想:按照flask的最基...

2019-08-21 16:47:26 490

原创 Leetcode K个一组反转链表C++实现

题目要求:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序基本思路:采用了栈来完成,遍历整个链表,并将结点逐个存入栈中,当栈中存放结点数量=k时,将栈中元素依次弹出,创建一个新的链表。值得注意的是,当最后剩下的数不足k个时,此时虽然剩下结点全都在栈中,但还...

2019-08-16 17:40:32 625

原创 一次性弄懂Python中的垃圾回收机制

垃圾回收机制最近针对Python中的垃圾回收机制做了一些了解,参考了多个博客之后写出了这一篇东西引用计数Python中,主要依靠gc模块的引用计数技术来进行垃圾回收。所谓引用计数,就是在一个引用被创建或者复制的时候,让Python把相关对象的引用计数+1;相反当引用被销毁的时候就把相关对象的引用计数-1。当发生下面四种情况的时候,对象的引用计数器+1:对象被创建对象被引用对象被作...

2019-08-14 08:30:57 506

原创 Windows下redis服务器重启数据丢失问题

最近在Win10系统下使用redis数据库,遇到一个问题,当redis服务器关闭后再开启,原本存在里面的数据会丢失。查找原因,原来是因为我启动redis服务器是直接进入redis目录下启动redis-server.exe这个文件的,这样的启动方式会导致redis服务器忽略配置文件中的配置。如果要避免,应该使用cmd到redis目录下,输入redis-server.exe redis.windo...

2019-08-11 15:37:53 2860 2

原创 Flask转至Django后模板'url_for' is undefined问题解决

问题来源:将原本使用Flask框架编写的后台项目的前端模板移植到前端模板的时候,因为模板引擎不同,Django使用的是自带的默认模板引擎,flask使用的是Jinja2模板引擎,虽然可以将Django的模板引擎改为Jinja2,但有些只能在flask中使用的语法。比如:这里,本质是想通过static调用静态文件夹中的资源,但是url_for函数是在Flask下的函数,在Django中并没有...

2019-08-08 11:08:11 1081

原创 Flask源码剖析(二)

Flask源码剖析(2)看完了Flask最初0.1版本的源码后,接下来来看看下一次的大版本:1.0版本的Flask的源码。1.0版本相比更新了很多东西较为重要的如下:CLI更加灵活。开发服务器默认情况下多线程处理开发过程中的并发请求。test_client新增用于发布JSON数据的json参数,Response对象新增get_json方法来在测试中将数据解码为JSON。新增test_...

2019-07-28 20:18:28 815

原创 Mysql常用时间函数

Mysql常用时间函数函数功能CRUDATE()返回当前日期CURTIME()返回当前时间NOW()返回当前的日期和时间UNIX_TIMESTAMP(date)返回UNIX时间戳的日期值WEEK(date)返回日期date为一年中的第几周YEAR(date)返回日期date的年份HOUR(time)返回time的小时值M...

2019-07-24 16:54:53 197

原创 Flask源码剖析(一)

Flask源码剖析(1)from flask import Flaskapp = Flask(__name__)@app.route("/")def hello(): return "Hello World!"if __name__ == "__main__": app.run()如上是一个最简单的创建Flask应用的服务端程序。当用户的gunicorn收到了h...

2019-07-19 15:33:59 226

原创 Leetcode多线程编程:交替打印FooBar Python题解

首先,要想写出本题,首先先要理解一个概念,就是Semaphore对象Semaphore()Semaphore对象内部管理着一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增。计数器永远不会低于0,当acquire()发现计数器为0的时候,线程阻塞,等待其他线程调用release()`。import timeimport threading def ...

2019-07-18 15:35:14 1072

原创 Leetcode 合并K个排序链表 Python实现

题目要求合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解题思路和合并两个排序链表的基本方式一样,通过递归,进行数组内的链表两两合并,是分治法的一种体现# De...

2019-07-13 08:53:49 408

原创 leetcode 152.乘积最大子序列python实现

题目要求:给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题思路:由于是求的是最大的乘积子序列,所以有可能是由负数与负数相乘得来的,...

2019-07-10 10:02:35 555 1

原创 leetcode 53.最大子序和 python实现

题目要求给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题思路从头开始遍历,以坐标 i 为结束点的最大子序和为f (i) ,则以坐标 i+1 为结束点的最大子序和 f(i+1) 为:if f(i...

2019-07-10 08:57:26 375 1

原创 Linux中nohup的使用

之前因为需求,搭建的一个后台程序需要在Linux的服务器上挂载,在Linux服务器中,想要在后台运行程序,需要使用nohup命令来运行。nohup命令nohup的意思就是不挂断地运行命令,是no hang up的缩写,nohup命令忽略所有的挂断信号(SIGHUP)语法:nohup Command [ Arg ... ] [ & ]其中Command是指运行程序的命令,例如若要...

2019-07-09 15:44:40 2332 2

原创 Leetcode 有效的完全平方数-python实现

题目要求给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例2:输入:14输出:False解题思路和同类题67的x的平方根大同小异,依旧是使用二分查找法来进行判断,将返回值改为True or False就好class Soluti...

2019-07-09 07:29:18 624

原创 leetcode x的平方根 Python

题目要求实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 解题思路使用二分查找法,对中间数进行判断,如果mid^2 <= x 且 (mid+1)^2>...

2019-07-09 07:19:58 462

原创 leetcode 2.两数相加

题目要求给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...

2019-07-08 08:36:15 248

原创 Python字符串与列表的互换

由列表转为字符串:''.join(list)示例:a = ['a1', '32']print(''.join(a)) #注意字符串为空字符串>>>a132由字符串转为列表:示例:str1 = "hi hello world"print(str1.split(" "))输出:['hi', 'hello', 'world']...

2019-07-07 09:34:01 495

原创 leetcode 43.字符串相乘

题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"解题思路将乘法拆分为num2和num1每位数进行乘法,然后存入一个列表中,...

2019-07-07 09:30:09 227

原创 leetcode 67 二进制求和

问题描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"解题思路:老老实实的采用了较为暴力的列举法来作答,所以代码较为复杂,且可读性较差class Solution: d...

2019-07-07 08:58:31 229

原创 leetcode 746 使用最小花费爬楼梯

Leetcode 746. 使用最小花费爬楼梯问题描述数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15...

2019-07-06 08:51:26 246

原创 Leetcode 70 爬梯子

Leetcode 70 爬梯子题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。4. 1 阶 + ...

2019-07-06 08:01:54 245

原创 Python设计模式

Python创建型设计模式原型模式根据现有对象复制出新对象并对其进行修改。class Point: __slot__ = ('x','y') def __init__(self, x, y): self.x = x self.y = y使用原型模式创建对象point1 = Point(1,2)point2 = copy.deepcopy...

2019-06-30 16:33:00 220

原创 Spark-RDD

RDD的特性RDD的3种基本运算RDD运算类型说明“转换”运算会产生另外一个RDD的运算是“转换”运算,具有lazy特性,等到执行“动作”运算时才会执行“动作”运算不产生另外一个RDD,而是产生数值、数组或其他动作的运算“持久化”对于会重复使用的RDD,可以将RDD存入内存中作为后续使用,提高执行性能RDD的容错性Lineage机制:会记录每个R...

2019-06-30 16:32:24 330

转载 阿里云搭建Hadoop伪分布式集群

Hadoop介绍Hadoop是存储和处理大数据的平台,具有可扩展性、经济性、弹性、可靠性四大特性,Hadoop充分利用了集群的特性进行高速的运算和存储,是如今大数据环境下一个很常用的分布式系统基础架构。Hadoop伪分布式的安装阿里云服务器类型:Ubuntu 16.04伪分布式,也就是Hadoop Single Node Cluster,是只有一台服务器的Hadoop集群。安装步骤基本如下...

2019-06-30 16:32:01 1247

原创 基于HMM和BP神经网络的睡眠分期算法

基于HMM和BP神经网络的睡眠分期算法由于在做睡眠监测设备,最近研究了一下睡眠分期的相关…在知网上查到了很多的论文,对其中一篇论文做了一个复现并进行了些许的改进,弄了一个睡眠分期算法,将成果写成博客方便日后查看。首先,在讲述算法模型前,先科普一下睡眠分期的一个相关研究。睡眠分期的相关研究睡眠过程中,脑电图发生各种不同变化,这些变化随着睡眠的深度而不同。根据脑电图的不同特征,又将睡眠分为两种状...

2019-06-30 13:20:46 6711 9

原创 辗转相除法Python实现

辗转相除法无聊写的= =def Euclidean(a, b): max = a if a &gt; b else b min = b if a &gt; b else a if max % min == 0: return min else: return Euclidean(min, max-min*int(max/min))...

2019-03-01 16:16:50 8953

二叉树C语言接口

二叉树的ADT基本操作接口的C语言实现,

2019-04-27

Adaboost算法的Python实现

机器学习七大经典算法中的Adaboost算法,使用Python实现

2019-01-03

空空如也

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

TA关注的人

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