- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 http概述
概述HTTP(Hyper Text Transfer Protocol),超文本传输协议,是一种建立在TCP上的无状态连接,整个工作流程基本是由客户端(client)向服务端(server)发送一个http请求,向server端请求需要的资源,到server端收到客户端的请求后,根据请求做出相应的动作访问服务器资源,然后通过HTTP相应将结果返回给client端。HTTP请求http请求的格...
2018-10-27 23:44:50
227
原创 python学习之线程
线程什么是线程?在一个程序中,可独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率(线程之间可以共享内存和变量,资源消耗少)。线程是在同一时间需要完成多项任务的时候实现的。线程的优劣 - 优势:线程之间可共享内存和变量,资源消耗少 - 不足:线程之间的同步...
2018-09-10 21:06:17
221
原创 最大连续子序列和
问题描述给定一个数列,其中可能有正数也可能有负数,找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大解题思路状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}. (sum[i]记录以a[i]为子序列末端的最大序子列连续和)其实完全可以不用开数组,累计sum直到sum + a < a,把sum赋值为a,更新最大值就行了代码实现#...
2018-09-03 20:48:59
208
转载 python学习之装饰器
转载自:https://www.cnblogs.com/cicaday/p/python-decorator.htmlPython中的装饰器是你进入Python大门一道坎,因此必须掌握。为什么需要装饰器我们假设你的程序实现了say_hello()和say_goodbye()两个函数。def say_hello(): print "hello!"def say_goodbye(...
2018-08-25 16:14:13
158
原创 python学习之延迟初始化
概述Python的延迟初始化主要是指对象第一次被创建时才进行初始化,其主要是为了提高计算性能,避免计算浪费并减少,减少程序的内存需求, 总结起来如下: 类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算下面一步步了解一下python的这一功能原始程序class my_class(obj...
2018-08-25 14:48:29
509
原创 python学习之list/tuple/set
概述序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字( 它的位置,或索引),第一个索引是0,第二个索引是1,依此类推。下面就看看这些数据结构listlist是python的内置数据类型,以‘[]’标识,包含的数据类可以不同(整数、浮点数、字符串、list、tuple、dict、set、bool、空值、常量)创建list1 = [1,2,3,4...
2018-08-22 21:04:47
246
原创 python学习之yield
概述为什么会出现yield,说白了就是为了减少内存消耗,减少代码冗余。为了理解这句话,我们一步一步进行斐波那契数斐波那契数是一个很简单的递归数列,大家都很容易写出来这一功能def fib(num): n, a, b = 0, 0, 1 while n < num: print b a, b = b, a + b ...
2018-08-22 00:41:59
146
原创 python学习之偏函数
什么是偏函数?实际上,偏函数主要辅助原函数,作用其实和原函数差不多,不同的是,我们要多次调用原函数的时候,有些参数,我们需要多次手动的去提供值。而偏函数便可简化这些操作,减少函数调用,主要是将一个或多个参数预先赋值,以便函数能用更少的参数进行调用。为清楚了解,我们看下面的代码def my_sum(*args): result = 0 for i in args: ...
2018-08-21 17:20:55
1368
原创 urlparse模块和json模块详解
urlparseurlparse主要是URL的分解和拼接,分析出URL中的各项参数,其主要的函数如下urlparse主要将url分解成6个片段,返回一个包括6个片段的对象scheme:协议netloc:服务器地址path:服务器的相对地址params:参数query:查询条件fragment:片段import urlparseurl=urlparse.u...
2018-08-20 21:10:42
615
原创 web.input()和web.data()
概述基于web.py框架,web.input()与web.data()是web.py模块中的两个函数,其都用来获取http请求包中的信息,但是获取的信息却是不同,以下我们来看看这两个函数有何不同web.input()web.input()方法返回一个包含从url(GET方法)或http header(POST方法,即表单POST)获取的变量的web.storage对象(类似字典)...
2018-08-20 20:14:40
4340
原创 python学习之列表生成式
列表生成式,主要是Python内置的一种极其强大的生成list的表达式。下面先看一个例子,如果要生成一个1-9的list,我们可用python的内置函数range完成list = range(1,10)print list# 结果[1, 2, 3, 4, 5, 6, 7, 8, 9]从上述代码可看出,这样很方便,但如果要生成[1*1,2*2,3*3,4*4,…,9*9]怎么做呢...
2018-08-20 00:01:28
279
原创 python写排序算法
对于各类排序算法的介绍,在这里就不在阐述了,推荐下面这篇博客,看完排序的概念应该可以完全理解 http://www.cnblogs.com/eniac12/p/5329396.html冒泡排序传统排序def bubbleSort(list): for i in range(len(list)-1): for j in range(len(list)-1-i...
2018-08-19 20:42:45
459
原创 python学习之字典(dict)
字典字典是一种通过关键字引用的数据结构,是一种key-value的形式,其主要利用hash的方式存储数据,复杂度为O(1),查询速度极快,就像字典一样,通过目录便可找到单词对应的页数,不用像list一样,逐条查找。创建dict ={ 'name':'xiaoming', 'id':20, 'course':{ 'c++':80, ...
2018-08-17 17:54:54
398
原创 Tornado初见
Tornado概念Tornado主要为减少并发连接产生的开销(传统一个连接起一个线程,如Django,但单台服务器并处理不了太高的并发,集群又耗资金),而tornado利用线程进行循环响应,因此,所有代码必须是异步和非阻塞的,不能阻塞等待,太耗时,并且长连接保持异步:非顺序执行,不需要等待返回,结束之前就可走,等待调用即可。异步函数在函数运行结束前便返回,而且通常会在程序中触发一些动作然...
2018-08-16 20:44:27
207
原创 RESTful浅谈
什么是RESTfulREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。直白来说,REST指的是一组架构约束条件和原则。” 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。详细描述资源(Resources):网络上的一个实体,或者说是网络上的具体信息。它可以是一段文本、一张图片、一...
2018-08-13 16:35:00
215
原创 python学习之logging模块
什么是日志日志记录了软件运行时所产生的信息,而信息的重要又不同,因此可根据信息的重要性将日志分等级,分类存储何时使用日志记录程序正常操作的事件记录程序中发生的错误记录程序发生的警告记录程序异常一个小例子# -*- coding: utf-8 -*-import loggingimport sys# 获取logger实例,如果参数为空则返回root...
2018-08-09 12:58:16
248
原创 python学习之入门基础
hello woldprint ‘hello world!’print是一个常用函数,其功能就是输出括号中的字符串或者其他类型的数值python脚本新建sum.py#!/usr/bin/env pythona=1b=1print a+bchmod +x sum.py./sum.py结果输出为2数据类型a = 3print (ty...
2018-08-07 17:19:05
262
原创 用python写wordcount
hadoop是建立在MapReduce机制之上,其中wordcount是hadoop最典型的一个实例,然而众所周知,hadoop的源码是java,并且大多数的hadoop代码都是基于java搭建起来,那如何利用python实现wordcount,这将是本篇博客主要想完成的功能,并将写好的程序放入hadoop集群上跑新建mapper.py#-*- encoding=UTF-8 -*-...
2018-08-05 19:09:13
4605
原创 Redis发布订阅
Redis发布订阅Redis的发布(publish)和订阅(subscribe)是一种消息的通信模式,发布者发布消息,订阅者接受消息。订阅者可订阅任意数量的情报,发布者只给对应的频道发布消息,如下图所示Redis发布订阅指令Redis所有指令详解参考:http://doc.redisfans.com/index.htmlPUBLISH channel message:...
2018-08-02 11:39:50
128
原创 限制IP访问
本文以python为基础问题描述后台服务器如何限制某些特定ip的访问?问题分析如果对ip进行限制,那么第一步就必须得到用户的ip,才能进行限制,第二部才是限制问题解决得到用户ip首先,python提供了获取ip的代码语句ip = request.remote_addr 但是通过这行代码,我们却得到的不是用户的真是ip,那么是为什么呢?不急,我们下...
2018-08-01 20:36:47
4954
原创 Redis初见
基础key-value的存储系统(键值对)基于内存可持久化,持久存储支持网络数据结构服务器非关系性数据库Redis在CentOs6.5的安装Redis依赖安装wget http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gztar -zxvf tcl8.6.3-src.tar.gzcd tcl8.6....
2018-08-01 18:30:40
128
原创 单例模式
最原始的单例模式:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。class singleton{protected: singleton(){}private: static singleton* p;pub...
2018-08-01 10:48:46
130
转载 IP浅谈
IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。 八位的TTL字段:规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现...
2018-08-01 10:43:26
135
转载 TCP的一些问题总结
TCP精辟问题:TCP是可靠的,面向连接,每走一步都需要确认,缺点就是耗费太大的资源,但是也就是贵的东西才耗费资源,如果处理重要的文件,还是需要选择TCP,毕竟他是可靠的TCP面向连接、字节流和可靠传输有序的流控:管理发送数据的速率,不要超过设备的承载能力三次握手为什么建立三次握手? 维持一个连接状态 通信双方互相通知对方自己初始化的sequence nu...
2018-08-01 10:20:00
535
原创 CentOS6.5设置固定IP
查看网卡名称ifconfig -a进入到网卡配置目录cd /etc/sysconfig/network-scripts/找到对应网卡名称的文件,进行编辑vim **配置修改,以下几条没有加上,有进行更改BOOTPROTO=staticIPADDR=192.168.1.150NETMASK=255.255.255.0GATEWAY=192.168.1.1O...
2018-07-31 20:56:14
512
转载 一个网页打开的全过程
转载于:https://blog.csdn.net/qq_22313585/article/details/78926141 1、概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下...
2018-07-31 20:36:16
304
转载 DHCP理解
DHCP在网路中缺之不可,分配IP,供客户端上网,打dota必备DHCP分为两个部分:一个是服务器端,另一个是客户端。所有客户机的IP地址设定资料都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP地址。自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。动态分配是当DHCP客户端第一次从DH...
2018-07-31 19:32:30
739
原创 ICMP理解
概要(查询报文和差错报文)ICMP 是 IP 层的一个组成部分,它传递差错报文以及其他需要注意的信息。ICMP 报文通常被 IP 层或更高层协议(TCP 或 UDP)使用。ICMP 报文是在 IP 数据报内部传输的。IP 协议是不可靠协议,不能保证 IP 数据报能够成功的到达目的主机,无法进行差错控制,而 ICMP 协议能够协助 IP 协议完成这些功能。ICMP协议是通过IP协议发送的,I...
2018-07-31 19:23:15
1200
原创 Flask留言板Demo
初学Python,用flask框架写了一个留言板,分享出来供大家观赏,希望对大家有帮助环境搭建pycharmpython2.7Navicatmysql基础知识pythonhtml依赖模块flaskjinja2bootstrapflask-loginflask-mysqlSQLAlchemyFlask-script留言板功能...
2018-07-31 15:36:13
2612
2
转载 web.py初见
概念最轻量级的web框架安装pip install web.py实例代码import weburls = ( '/(.*)', 'hello')app = web.application(urls, globals())class hello: def GET(self, name): i = web.inpu...
2018-07-31 11:17:14
113
原创 Flask基础
Flaskweb轻量级框架默认渲染引擎使用jinja2route进行url路由methods参数设置请求的具体方法装饰器其实和java里的注解是一个东西将函数调入到装饰器中,嵌套函数,有点像函数模板,减少重复项,方便初级版# -*- encoding=UTF-8def log(func): def w(): print 'befo...
2018-07-31 11:13:43
148
原创 策略者模式
策略模式官方定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。个人理解:策略模式将各种不同的方式进行封装,都变成一个类,并且这些类都有一些共性,都有共同的目的,只是中间的方法和资源有些不同,这样我们就可以定义一个抽象基类,给一个接口,让子类进行继承,然后通过用户进行动态调用,决定用哪一种方式去实现。例如就想旅...
2018-07-31 10:51:43
283
原创 僵尸进程
僵尸进程怎样产生的?一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用 exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留...
2018-07-30 19:13:44
88
原创 UNIX多线程通信
多线程进程和线程的区别进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1至n个线程。线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。多进程是指操作系统能同时运行多个任务(程序)。多线程是指在同一程序中有多个顺序流在执行。...
2018-07-30 19:09:51
333
原创 Effective C++阅读笔记
条款1.C++和C,它是一个语言联邦,有很多东西一起存储 C++ 是由C、面向对象、模板和STL组成,我们是站在C这个巨人的肩膀上进行的,C++ 引入类和对象的概念,进行了封装和抽象,非常重要的一点。模板由编译器自动执行,减少了代码的 冗长,提供复用性,不用提供所有的类型函数的重载版本。STL提供了优秀的C++模板库,以便程序员进行使用,特别棒。条款2. 尽量以const...
2018-07-30 18:55:27
553
原创 第一个Makefile
MakeFile 不加变量的第一个版本all:reader writerreader:reader.o g++ reader.o -o readerreader.o:reader.cpp g++ -c reader.cpp -o reader.owriter:writer.o g++ writer.o -o writerwriter.o:writer.c...
2018-07-30 18:50:53
167
原创 grep/sed/awk
grep sed awkgrep:负责搜索sed:(编辑)处理行,是一种在线编辑器,一次处理一行内容,处理时,把当前处理的行存储在零时缓冲区中,然后用sed命令处理缓冲区中的内容,处理完毕后,把缓存区的内容送往屏幕,然后转而执行下一行,这样不断重复,直到文件末端,这里的文件的内容并没有改变。可以用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。awk:(内容分许...
2018-07-30 18:46:32
325
原创 TCP/UDP的连接与关闭详解
传输层:总体作用:在广域网中建立数据传输通道,进行数据传输,负责端到端的通信那么是什么是端到端呢? A: 两个方面 - 物理实际意义上,意味着网络通信双方不再同一链路上,不是点对点连接的(通信双方直接通过电缆进行通信,直接相连,中间没有其他设备) - 虚拟上,以用户的角度,两端是直接进行的,不考虑核心网络结构和各种子网间的差异。 服务类型:TCP和UDP ...
2018-07-30 18:34:18
20781
原创 TCP四种定时器
重传定时器为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,则撤销计时器;若在收到对特定报文段的确认之前计时器超时,则重传该报文,并把计时器复位。坚持定时器问题:当接收端的缓存满的时候,接收端回向发送端回复一个窗口为0的ack,当是ack的输出是不可靠的,如果...
2018-07-30 18:10:36
246
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人