- 博客(33)
- 收藏
- 关注

原创 web.py源码阅读(一) WSGI协议篇
WSGI协议简述WSGI的全称是Python Web Server Gateway Interface, 看这个名称比较晦涩难懂,下面简单解释一下为什么会有WSGI这个东西。一个网站的服务端通常分为两部分,web应用和服务器。 其中web应用通常又包括web框架和业务逻辑代码。 服务器有很多(比如uWSGI,Gunicorn等),web框架也有很多(django,flask等)。为了让框架......
2018-08-26 18:46:27
1367

原创 Linux下的Stdin Stdout Stderr
问题引出在Linux下进行日常操作时,尤其是当执行bash脚本时,经常会看到在执行脚本命令后面会紧跟一个2>&1的命令,比如命令: ./test1.sh > a.log 2>&1以前碰到总是Ctrl+C和Ctrl+V,今天下午学习了一下,算是知其然也知其所以然了,记录一下。追根溯源先看 tesh1.sh,如下图,内容很简单, t 表示一条不存在的错误命令.
2018-02-05 16:41:07
831
原创 深入理解Python迭代器和可迭代对象
1 迭代器 迭代是指对集合元素遍历的一种方式,迭代器是可以实现对集合从前向后依次遍历的一个对象2 可迭代对象定义(表面理解)表面来看,只要可以用 for...in...进行遍历的对象就是可迭代对象 自定义可迭代对象(本质)语法层面,如果一个对象实现了__iter__方法,那么这个对象就是可迭代对象判断是否是可迭代对象(Iterable)通过调......
2018-02-08 11:11:21
5669
原创 服务器编程模型
【注】:本篇侧重基本概念理解,不涉及代码实现细节同步与异步同步同步是指程序在执行一次调用时,在没有得到结果之前,程序不会返回,一旦程序返回了,也就得到了返回结果。异步异步是指程序在发出调用时,不等调用结果返回就会立即返回,异步通常结合回调实现。(异步往往意味着非阻塞)总结同步是自己等结果,异步是别人通知你阻塞与非阻塞阻塞阻塞
2018-01-23 16:36:24
344
原创 Django中的Manager类
管理器类(Manager) django中的Manager类是我们通过模型类去操作数据库的工具,django给每个定义的模型默认添加一个名为objects的manager类的对象。django官网文档对Manager的概述如下: A Manager is the interface through which database query operations are provided
2017-08-21 22:00:23
2437
原创 聊聊编码与解码(弄懂bytes,utf-8,ascii,unicode)
引言 每次坐下来写一篇博客总结的时候都会先长长的舒一口气,从被一个问题困扰开始,到最后搞清楚弄明白原理,其间经历的过程就像从窒息的环境中慢慢恢复呼吸。作为一个计算机专业的学生,大学四年的时间竟然从没仔细思考过编码与解码的细节是惭愧的,只记得当年老师讲过的一条真理:”遇到编码的问题统一选utf8就好了”。知其然不知其所以然,我曾无数次鄙视过我的灵魂,此时此刻就是无数次中的一次。字符编码的由...
2017-08-19 23:57:50
8362
2
原创 跨域请求实现百度搜索和360搜索的智能提示
引言最近打算给自己的小项目加入一个智能搜索的提示,就像在使用百度或者360搜索时,每输入一个字都会出现一个包含关键词的下拉列表的提示,这个轮子如果后端自己造的话,先不谈造出来好不好用,首先肯定会增加一些额外的工作量。俗话说:君子生非异也,善假于物也,于是自然第一想法先去看看有没有现成的接口,后来发现是我想多了,唉,看来这些大厂们还是比较小气的。看来只有亲自去抓一条它们的请求报文分析一下了...
2017-08-11 22:55:58
4068
3
原创 python中的装包与拆包
*args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收形参中的命名参数,其中args是一个元组类型,而kwargs是一个字典类型的数据。其实这两个参数还涉及到了python中的一个重要的知识点,拆包与解包。这篇文章将会通过对这两个参数的拆开揉碎讲解,让小伙伴能对拆包解包有一些更深......
2017-06-28 23:00:06
16192
6
原创 浅谈python中的“ ==” 与“ is”
在python中,== 与 is 之间既有区别,又有联系,本文将通过实际代码的演示,力争能够帮助读到这篇文章的朋友以最短的时间理清二者的关系,并深刻理解它们在内存中的实现机制。扯淡的话不多说,下面马上呈上我的第一张图:通过上面代码的比较,我想很容易看得出," is" 是用来比较 a 和 b 是不是指向同一个内存单元,而"=="是用来比较 a 和 b指向的内存单元中的值是不是...
2017-06-17 22:51:49
41362
29
原创 python高级语法--闭包篇
闭包不是python特有的语法特征,在 javascript等一些动态语言中也存在闭包的概念,初学者对闭包的理解往往只停留在语法层面,本文将从闭包的定义,应用场景,执行过程等多方面来阐述python中的闭包。1. 闭包的定义如果在函数内部再定义一个函数,并且这个函数用到了外部函数的一些变量,我们就将这个内部函数和用到的变量统称为闭包。从概念中,我们只能在脑海里对闭包到底长啥样有个大
2017-06-16 22:50:07
762
4
原创 0-1背包问题(DP)
[题目描述]: 一个背包里面可以存放重量为weight的物品,现有n件物品的集合s,其中质量为w0,w1,......wn-1,问是否可以选出若干物品,其重量之和正好等于weight。[题目分析]背包问题属于动态规划(DP)的一类,背包问题有很多,比如0-1背包,多重背包,完全背包等,其中在面试和考试中被问到最多的就是0-1背包问题,动态规划问题的关键就是找出转移
2017-06-07 00:03:07
765
1
原创 简单工厂模式
简单工厂模式的作用在于解决开发过程中模块与模块之间的耦合性, 使得各个模块之间的功能划分更加清晰,对于设计模式的理解需要结合具体的应用场景才能深入理解,本文将通过一个具体的业务场景来说明简单工厂设计模式的优点以及什么场景下适合用简单工厂模式。某天你所在的软件公司突然接到一个开发的任务,要帮助某个销售汽车的4s店做一个网站,作为项目组长的你把这个任务分配给了程序猿小A,小B和小C, 其中小A主要
2017-06-06 23:44:44
461
原创 Linux基本操作命令(二)
Linux基本命令(二)(1) 输出重定向命令:> && >>Linux 支持将终端命令执行结果保存在一个文件中,这种保存就要用到重定向功能。具体使用格式: 【命令】 > 目标文件名例如 ls /bin ./a.txt (将ls /bin 的命令)>和>>的区别在于 > 输出重定向时会覆盖原来已有的文件,而>>输出重定向时会在已有的文件后面进行追加。(2) 分屏
2017-05-12 21:12:56
394
原创 Linux基本命令操作(一)
1. Linux命令格式:command [parameter] [-options] 括号内的为可选参数例 rm /home/lin/study -r (删除study文件夹下的所有内容)注释:命令解释rm删除命令 (remove) 【command】/home/lin/study路径 【parameter】
2017-05-12 20:38:16
375
原创 (数论)进制转换二(将a进制换成b进制)
数制转换这类题解法很固定,常见的就两种,昨天是第一种,今天是第二种。题目:进制转换时间限制:1 秒内存限制:32 兆题目描述: 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。输入: 输入只有一行,包含三个整数a,n
2017-02-12 18:42:57
2519
原创 (数论)进制转换一(将十进制转换成b进制)
进制转换的题目,题目很简单,记住转换规则即可。题目:又一版 A+B时间限制:1 秒内存限制:32 兆题目描述
2017-02-12 18:16:33
1784
原创 (数论)数位拆解---特殊乘法
数位拆解---特殊乘法时间限制:1 秒内存限制:32 兆题目来源: 2010年清华复试 题目描述:写个算法,对2个小于1000000000的
2017-02-10 13:31:08
723
原创 并查集---畅通工程
图论中经常用到的一个算法就是并查集,主要功能就是判断若干个结点是否属于同一集合,或者求连通分量。最典型的应用就是各种路线联通的最小花费。有些时候用并查集能解决的问题用DFS或者最小生成树也能解决,哪个顺手就用哪个吧。题目描述:(05年浙大的复试上机题)
2017-02-10 00:18:00
478
原创 ACM-ICPC 最短路径问题
最短路径问题时间限制:1 秒内存限制:128 兆题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N当输入为两个0时,输入结束。输出:对于每
2017-02-09 23:27:59
1652
原创 字符串处理之文本规范化
凌晨睡不着觉了,起来撸会代码。华科的一个复试上机题,题型还是字符串处理,只不过这次活细点,自己想了一种解法,又在博客上看到了别人的一种解法,理解了一下别人的思路,两种思路最后都ac了,不过感觉自己的思路钻了OJ输入的一个空子,省去了对回车的判定。这篇文章就把这两种解法整理一下。文本规范化时间限制: 1 Sec 内存限制: 128 MB题目描述字符串是计算机经常处理的对象。现在
2017-02-08 00:59:38
1786
1
原创 字符串处理之HDLC串处理
寻找变化前01序列问题描述给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。例如给你11111010你需要输出1111110Input输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处
2017-02-07 14:46:37
1525
原创 字符串处理之反转单词
103. 反转单词时间限制1000 ms 内存限制 65536 KB题目描述给出一句英文句子(只由大小写字母和空格组成,不含标点符号,也不会出现连续的空格),请将其中的所有单词顺序翻转输入格式多组数据,以EOF结束。每行一句英文句子(确保只由大小写字母和空格组成,不含标点符号,也不会出现连续的空格,字符串总长度1000以内)输出格式每组数据输出一行,为反转后的字
2017-02-07 14:14:37
1521
原创 日期类问题之月份牌问题
Problem : 月份牌问题Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 38 Solved: 11[Submit][Status][Web Board]Description这里有一份2011年的月份牌可以参考 January February M
2017-02-05 22:19:39
614
原创 Windows下最简单安装NLTK的方法
最近在忙着做本科毕业设计,由于研究生报考的方向是自然语言处理(nlp),于是就选了一个nlp中的情感分析的课题,当然不可避免的就要使用nltk。使用nltk的第一步就是先安装nltk,由于nltk是基于python的,而目前python对windows好像还不那么友好,在网上找了很多教程,但感觉很多要么就是太繁琐,要么就是对我不适用,于是决定自己鼓捣,最后装成功了,而且感觉我的方法是......
2017-02-05 14:28:25
30570
38
原创 Zookeeper配置管理
Zookeeper的的配置可以分为三种,单机,伪集群和集群,三者具体操作差不多(集群时无非就修改一下配置文件),因为现在手上就一台服务器,我就以单机模式演示,即一台服务器既当leader,也当follower。Step1: 把zookeeper的tar包放在 /opt目录下 解压。 并把文件夹名改为zookeeper。如下图
2016-06-02 23:34:17
610
原创 JS进阶之路(二) 浅谈JS中的原型链机制
原型链机制是JS这门语言特有的机制,说到原型链就不得不提两个属性,一个是[prototype]属性, 另一个是__proto_属性。在js中直接var声明的为对象,使用new关键创建的为实例, function(构造函数) 则认为是类。 其中__proto_是实例和对象的属性,而[prototype]是类的属性。关于这两个属性的使用方法总结为以下几条: 1.JS内置的对象
2016-03-22 19:24:37
546
原创 JS的进阶之路(一)
JS中的数据类型 JS中基本数据类型有六种:分别是 String Number Boolean Null Undefined object. (1) object类型包含一系列的对象类型(Function,Array,Date等,它们既是JS内置的对象,也是一个"类类型", 即用来构造一系列该类型的实例) (2) 如果对undefined和nul
2016-03-19 09:46:52
902
原创 数字游戏
标题:数字游戏 栋栋正在和同学们玩一个数字游戏。 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k 时,
2015-11-15 10:21:08
506
原创 回文数字
标题:回文数字 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。【输入格式】一个正整数 n (10【输出格式】若干行,每行包含一个满足要求的5
2015-11-15 10:19:04
571
原创 大小之差
题目描述: 某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。 该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。 比如:766431 - 134667 = 631764 就是具有这样特征的数字。 你还能找到另一个这样的6位数吗? 请
2015-11-15 10:16:00
282
原创 JavaBean操作技术之二:BeanUtils框架
JavaBean操作技术之二:BeanUtils框架。用BeanUtils对JavaBean中的字段进行set或get操作时,该框架可以自动完成String类型与八种基本类型的转换。此外BeanUtils还实现了除八种基本类型之外的一些转换器,比如 DateLocaleConverter类,该类就是实现String类型向Date类型转换的转换器。用户还可以自定义转换器。
2015-11-15 10:07:36
378
原创 javaWeb之JavaBean总结
1.从狭义上来说,javaBean就是一个特殊的Java类,它里面只包含属性和set和get方法,不过JavaBean里面的set和get方法名必须是set或get+字段名。2.每一个JavaBean中都隐含包含一个名为class的字段,该字段是从object类中继承而来。3. 对JavaBean操作的两种方式,一种用sun公司自己提供的API, 称为内省(Introspector)API
2015-11-14 18:53:26
1285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人