自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 【翻译字幕】The Technology History of "JavaScript and JQuery"

字幕汉语参考 仅仅标注部分专业释义的词汇,避免通俗释义You can open this follow Link>>“JavaScript之父访谈记录 vedio from IEEE computer” I was hired at(供职于)Netscape in April, 1995. Netscape had already launched(上线发布) its 1.0 M

2017-08-30 11:03:39 967

转载 Git

@【廖雪峰】Git忽略特殊文件 、配置Git别名 和 搭建Git服务器忽略特殊文件你必须把某些文件放到Git工作目录中,但又不能提交它们。这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置

2017-08-26 16:25:29 581

转载 Python 代码规范小结

law一: 一切都与复杂度有关 二: 代码应当易于理解对人:"好程序员”应当竭尽全力, 把程序写得让其他程序员(以及以后的自己)容易理解.对代码: 代码被阅读的次数远多于编写和修改的次数 E = mc2 (Error = more codes)对项目:公式: 可行性=(当前价值+未来价值)/(实现成本+维护成本). 即相比降低实现成本, 降低维护成本更加重要基础: 风格团队成员

2017-08-26 10:29:54 699

翻译 [翻译]Python中如何使用*args和**kwargs

在Python中如何使用可变长参数列表?函数定义 这是一种特殊的语法,在函数定义中使用*args和kwargs传递可变长参数.。 *args用作传递非键值可变长参数列表(类似list); **kwargs用作传递键值可变长参数列表 (类似dict)例子:传递一个位置参数以及两个可变长参数def test_var_args(farg, *args): print ("for

2017-08-26 10:21:55 572

转载 Python内存管理结合源码 整理补充 (未完成)

《Python源码阅读》之 内存管理机制1 @转载:py社区 Python的内存管理架构 _____ ______ ______ ________ [ int ] [ dict ] [ list ] ... [ string ] Python core |+3 | <----- Object-specific memory ----->

2017-08-26 10:06:13 671

原创 数学思想 之 归纳法

数学归纳法(mathematical induction)是一种数学证明方法,常用于证明命题(命题是对某个现象的描述)在自然数范围内成立。随着现代数学的发展,自然数范围内的证明实际上构成了许多其他领域(比如数学分析)的基础,所以数学归纳法对于整个数学体系至关重要。数学归纳法本身非常简单。如果我们想要证明某个命题对于自然数n都成立,那么: 第一步 证明命题对于n = 1成立。 第二步 假设命

2017-08-25 11:36:59 1612

原创 Python标准库2 时间包

time包time包基于C语言的库函数(library functions)。Python的解释器通常是用C编写的,Python的一些函数也会直接调用C语言的库函数。import timeprint(time.time()) # wall clock time, unit: secondprint(time.clock()) # processor clock time, unit: se

2017-08-25 11:20:46 982

原创 Python标注库1 Re正则

在Python中使用正则表达式需要标准库中的一个包re。import rem = re.search('[0-9]','abcd4ef')print(m.group(0)) re.search()接收两个参数: 第一个’[0-9]’就是我们所说的正则表达式,它告诉Python的是”从字符串想要找的是从0到9的一个数字字符”。 re.search()第二个参数是目标字符串,如果找到

2017-08-25 11:17:33 569

原创 高级包实现python服务器

在Python 3.x中,BaseHTTPServer, SimpleHTTPServer, CGIHTTPServer整合到http.server包,SocketServer改名为socketserver socket接口,制作了一个处理HTTP请求的Python服务器。任何一台装有操作系统和Python解释器的计算机,都可以作为HTTP服务器使用。当引入更高级的Python包,就可以写出更

2017-08-25 10:51:45 526

原创 用Python实现简单的服务器

socket接口是实际上是操作系统提供的系统调用。socket的使用并不局限于Python语言,你可以用C或者JAVA来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apache就是使用C实现的服务器) Web框架就是提前写好了服务器。不能跨语言的使用框架。框架的好处在于帮你处理了一些细节,从而实现快速开发,但同时受到Python本身性能的限制。我们已经看到,许多成功的

2017-08-25 10:39:44 5883 6

原创 Python Study (06)内存管理GC

对象在内存的存储,我们可以求助于Python的内置函数id()。它用于返回对象的身份(identity)。其实,这里所谓的身份,就是该对象的内存地址。a = 1print(id(a)) #11246696内存地址的十进制print(hex(id(a))) #'0xab9c68'十六进制在Python中,整数和短小的字符,Python都会缓存这些对象,也就是有个对象缓存池,以便重复使用和减少频繁

2017-08-25 09:29:06 532

原创 Python Study (05)装饰器

装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。 装饰器最早在Python 2.5中出现,它最初被用于加工函数和方法这样的可调用对

2017-08-25 09:13:24 392

原创 Python Study (04)闭包

闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (面向过程编程和面向对象编程也都是一种编程范式)。 在面向过程编程中,我们见到过函数(function); 在面向对象编程中,我们见过对象(object)。 函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。 而闭包也是一种组织代码的结构,它同样的目的是提高

2017-08-25 08:45:34 387

原创 Python Study (03)对象的属性

类属性和对象属性 对象的属性可能来自于其类定义,叫做类属性(class attribute)。类属性可能来自类定义自身,也可能根据类定义继承父类得到类属性。 一个对象的属性还可能是该对象实例定义的,叫做对象属性(object attribute)。 对象的所有属性储存在对象的__dict__属性中。__dict__为一个词典,键为属性名,对应的值为属性本身。class bird

2017-08-25 08:25:16 574

原创 Python Study(02)之 Context Manager

上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦对象进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with…as…关闭文件我们会进行这样的操作:打开文件,读写,关闭文件。程序员经常会忘记关闭文件。上下文管理器可以在不需要文件的时候,自动关闭文件。f = open("new.txt",

2017-08-25 07:59:25 348

原创 Python Study (01) 之 特殊方法

Python深入:特殊方法和多范式 Python是一切皆对象,意思就是python的天生就是个“纯面向对象语言”呀。 但是!!! Python还是一个多范式语言(multi-paradigm),即你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(当然还有函数式编程,java8也支持)。Python的多范式依赖于Python对象中的特殊方法(speci

2017-08-24 23:53:06 446

原创 《Python 源码剖析》 之 tuple

结构定义typedef struct { PyObject_VAR_HEAD PyObject *ob_item[1];} PyTupleObject;说明 PyObject_VAR_HEAD PyTupleObject在底层是个变长对象(需要存储列表元素个数). 虽然, 在python中, tuple是不可变对象 PyObject *ob_item[1]

2017-08-23 10:09:05 868

原创 《Python源码剖析》之 dict对象

Python里的dict和C++ STL的map一样,都是映射容器(key->value),但实现原理不同。由于python内部大量使用dict这种结构,效率要求很高,所以Python没有使用STL map的平衡二叉树,而采用哈希表,最低能在O(1)时间内完成搜索。 使用hash就必须解决冲突的问题,dict采用的是开放寻址法。原因我觉得是开放寻址法比拉链法能更好地利用CPU cache,ca

2017-08-23 10:03:47 579

原创 《Python源码剖析》之 list对象

定义typedef struct { PyObject_VAR_HEAD //list对象是变长对象,所以有变长对象头 PyObject **ob_item; //真正的存储容器,用来存储PyObject对象指针。 Py_ssize_t allocated; //allocated表示list已分配了多少存储空间。} PyListObject;说明 PyObje

2017-08-23 09:43:58 603 1

原创 《Python源码剖析》之 str

PyStringObject定义typedef struct { PyObject_VAR_HEAD //字符串是变长对象,所以有变长对象头 long ob_shash; //ob_shash用来缓存当前字符串的哈希值,这在以字符串作为key的dict对象查询时非常有用。 int ob_sstate; //ob_sstate用来标记该字符串是否为interned。 char ob_

2017-08-23 09:26:24 739

原创 《Python 源码剖析》 之 int

int对象,显然是不可变的对象。那么对于数字,引用的开销显然大,new和free比较费性能。所以py是维护了一个一定范围的Int值,类似于一个int对象池子。和java的string类似,但是java是有普通类型int。 其实, 小整数对象池就是一个PyIntObject指针数组(注意是指针数组), 大小=257+5=262, 范围是[-5, 257) 注意左闭右开. 即这个数组包含了262个

2017-08-23 09:07:53 740

原创 《Python 源码阅读》之 类型Type

py一切皆对象: 那么Type也是个对象。对象类型叫PyTypeObjectdemo>>> a = 1>>> a1>>> type(a)<type 'int'> int类型#等价的两个>>> type(int) int类型的类型就是type<type 'type'>>>> type(type(a)) type(a)是int类型的类型就是type<type 'ty

2017-08-23 08:36:20 632

原创 《Python 源码剖析》之对象

py一切皆对象的实现Python中对象分为两类: 定长(int等), 非定长(list/dict等)所有对象都有一些相同的东西, 源码中定义为PyObject和PyVarObject, 两个定义都有一个共同的头部定义PyObject_HEAD(其实PyVarObject有自己的头部定义PyObject_VAR_HEAD, 但其实际上用的也是PyObject_HEAD).比如这里面就有那个引用计数/*

2017-08-23 08:13:32 302

原创 KMP匹配算法复习。。

KMP算法(Knuth–Morris–Pratt Algorithm),Knuth就是高德纳。 KMP算法是从朴素匹配算法改进而来:就是穷搜匹配。朴素匹配算法:原串:ABCDE 模式串:ACD 1. 将原串和模式串左对齐,然后一位一位比较,直到有一个字符不匹配 2. 发现第二位的B和C不匹配,模式串右移一位 3. 重复这个流程,直到找到完全匹配的子串或者匹配失败。

2017-08-23 01:38:02 291

原创 Python的递归深度

RuntimeError: maximum recursion depth exceeded while calling a Python object 大意是调用 Python 对象时超出最大深度限制Python的递归深度Python语言默认的递归深度是很有限的,当递归深度超过值的时候,就会引发RuntimeError异常。Python专门设置的一种机制用来防止无限递归造成Python溢

2017-08-22 22:30:55 4616

原创 python:单引号,双引号和三引号

python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的需要表示一个字符串对象的话,单引号和双引号没有区别 为什么需要单引号和双引号同时支持,而一般都是”呢? 比如” 双引号’里面有单引号’ 存在” ,可以不用转移字符。三引号的好处在哪,为什么存在? python 三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被完完全全原样保留,包含的单号和双引号不用转义,

2017-08-22 21:17:44 1706

原创 Python中is和==的区别

Python中的对象包含三要素:id、type、value。id用来唯一标识一个对象,映射堆内存地址value是对象的值。type标识对象的类型, is判断的是a对象是否就是b对象,是通过id来判断的。也就是内存地址。其实本质就是判断id(a)==id(b),当然也可以使用==判断。但是必须是id(a)==id(b) 而不是a==b a = [1,2,3] b = [1,2,3]

2017-08-22 21:02:22 311

原创 一个概率题

题目: 从5双不同的鞋子中任取4只,求4只鞋中至少有2只鞋子配成一对的概率。解: 思路:凡是概率类求最少 至多一般都是转换为求对立事件。三种方法: (1)5双鞋子一共10只,那么抽取是不放回的,取4只的取法有10*9*8*7=5040种。 来看取出4只都配不成一双的取法: 首先任取第一只,一共有10种取法; 那么第二只不能取与第一只配对的,所以有

2017-08-22 11:25:28 1806

原创 赌博-值得玩耍的棋牌 3

【不能玩的】期望为0纯概率的游戏  概率固定毫无技术的。浪费时间+无趣+期望为0这类一般有3个结果1.诈骗 做手脚  改变概率2.庄家抽水 3.筹码太少被吸干【能玩的】概率+博弈博弈就是趣味性和竞技性所在呀。推荐玩的 1.德州扑克2.扎金花3.麻将 无数种4.斗地主之类的

2017-08-16 06:49:43 485

原创 LinkedList 和 Array

链表是线性表的一种链式存储结构。数组是线性表的顺序存储结构。【线性表】线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。【线性表的实现】线性表有两种存储方式,一种是顺序存储结构,我们常用的Array数组就是一种典型的顺序存储结构。另一种是链式存储结构。链表LinkedList就是一种典型的链式存储结构

2017-08-16 06:24:33 587

原创 云计算虚拟系统安全和可信——数据中心

《(操作系统和虚拟化)的安全问题研究》————from beijingUnivesert1. 操作系统2. 系统虚拟化平台是云计算的核心。3. 开源的OS和虚拟化项目linx系列……openstack项目组——————————————主要是 性能如何 安全如何————————————————————part1: 《OS

2017-08-16 06:15:31 653

原创 Python里的String

1.字符串对象s1 = str()print(s1)   #  '  '   即得到一个为空的字符串对象s1 = str()print(s1) # 打印为 '' 即得到一个为空的字符串对象---------------------# in python `''` or `""` is the same字符串的 ” “   ' '    ‘’‘ ’‘’‘都是字符

2017-08-16 05:25:07 4688

原创 算法 3步骤

肯定是写个函数P1:首先解决异常处理(空串和边界处理),P2:主体:先特殊再一般,P3:返回什么。如何返回。

2017-08-16 05:02:54 605

原创 【概率论】贝叶斯方法

2017-08-16 04:06:48 393

原创 赌博的如何选择最优策略-2

我们现在讨论一个非常简单的游戏,假设有数量为 nn 的本钱,赌博规则为每次可以压任意多的钱,赌博结果为以 pp 的概率赢回同样多的钱(输了的话压出去的钱就没了)。如果赌博的目标是本钱增长到 NN 或者破产(输光所有的钱为止)。问什么样的方式可以最大化成功(赢到 NN 走人)的概率呢?假设最大成功概率为 f(n,p),那么有f(n,p)=max0x≤min{n,N−n}(pf(n

2017-08-16 04:04:35 2975

原创 一些趣味题

>@ 摘要:  几个Google问题>@ 作者: http://blog.csdn.net/vincent_ceso>@ 声明:不保证正确:) 转载无需注明 就说是你写的。>###[>>作者:http://blog.csdn.net/vincent_ceso](http://blog.csdn.net/vincent_ceso)----------

2017-08-16 03:22:06 830

原创 德州扑克 Base 1

#德州扑克玩家的分类##大鱼特点:松;入池率高;喜欢看一看跟一跟搏一搏;分析:初学者;无论下注和弃牌很被动;舍不得弃牌策略:德州的精髓在于找到大鱼,然后愉快的和他们玩耍注意:大鱼加大注有可能再诈唬也可能就是中了Nets。##顽石特点:紧;入池率低;好的位置入场就加注逼走别人。分析:一半是起手牌大牌才玩。AA AK KK KQ QQ JQ JJ JT TT这些

2017-08-16 01:37:41 1130

原创 读一些博客之后冒出的想法

从问题出发看到整个算法的诞生过程背后的思想算法只是结局而已,而思考过程才是情节。1.本源问题是什么 2.有哪些错误的思考过程 3.最终的结论是如何“高亮”的我们平时学习算法时几乎仅止于“理解”,别人把一个方案放在你面前,你去验证一下,心说“哦,不错,这个的确可以工作”。然后就没了。稍微简单一点的算法还好,复杂一点的对于记忆的负担是很大的,这就是为什么有时候我们看到一个绝妙的解法,这个解法看上去不

2017-08-15 23:09:42 270

原创 草稿 -算法问题的历史。

PageRank算法–Google最早期的发明的算法 1 有点跟美剧《硅谷》里的主角发明的那个 牛逼的压缩算法 。PageRank是伟大的排序算法。 2 所以说创造以个了不起的算法还是很厉害的 3 比如那个处理PBG数字图像做到像素级别的放大和缩小的。图片构造立体三维的那个算法。也呗Google收购了。 算法是简单的一步步的步骤集合。但是发明创造一个算法需要天才创造力。因

2017-08-15 20:55:04 389

原创 【瞎编初中趣味题】欧几里得铺地板

瞎编的故事故事の套路在很久很久以前,有一个伟大的数学家叫欧几里得,有次他打算装修家里铺地砖,打算网购一批地砖。但是作为小工匠兼数学网红的他,网购之前那就要量好尺码,算好需求。 假设欧几里得家里的屋子是标准的直角四边形,长为X,宽为Y。那么买正方形Z*Z的方砖(其中Z=[1,min(X,Y)]),最少需要多少个方砖才能完美的铺满。分析1.标准的直角四边形 意味着可能是正方形或者长方形。需要分情况讨

2017-08-15 09:23:41 518

空空如也

空空如也

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

TA关注的人

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