自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 问答 (1)
  • 收藏
  • 关注

原创 说说Python中的iterator,yield表达式及generator,coroutine

每次去看别人写的代码都有个yield,感觉超级geek,今天花点儿时间整理下。按照顺序来:1. iteratoriterator叫做迭代器,用来遍历可以序列化的数据,比如一个list,set 等,当然如果对象想要能够使用迭代器来遍历,只要在该对象的类中添加__iter__()方法,该方法返回一个迭代器对象,迭代器对象中需要实现next()方法,例子如下:>>> class se

2015-03-22 13:45:20 5727 2

原创 javascript 闭包

最近开始学习js,都说js是javascript中很NB的东西,很难理解,我觉得这个应该没那么难,怕的是你看错了书,被概念给忽悠了。首先说下闭包的概念:闭包就是函数内部定义个函数,因而内部函数可以访问外部函数的变量的引用,记住是引用.我觉得javascript提出闭包的概念是因为想让调用一个函数后,还能访问函数内部的变量,所以闭包就产生了。看一个例子:function

2014-08-26 12:49:17 1243

原创 windows系统安装-无法引导启动-bootmgr-is-missing

windowns系统安装,重新引导系统启动,解决bootmgr-is-missing的问题

2014-08-20 14:15:31 10864

原创 数据库优化<八>SQL优化之SELECT优化 ——避免全表扫描

在数据库操作中,一个全表扫描(full table scan)可能是整个应用的瓶颈,因此,我们尽量要避免不必要的全表扫描。而如果你发现一条sql是全表扫描,一般的解决步骤是:        1、运行执行计划获得具体的sql语句查询分析:                   方法:explain sql;                   分析:至少能或得这些信息,1、表的join

2013-12-06 18:24:59 5276

原创 数据库优化<七>SQL优化之SELECT优化 ——group by 优化

在数据库查询中,group by语句经常使用,而这个语句的使用是最耗性能的,按常理,我们生活中要这样做也很麻烦,有两种情形:        1、有索引的情况        2、无索引的情况对于第一种情况,如果在生活中要做这样的事情,很恼火,我们正常的想法是,先把所有的按高矮顺序来排序,最后是一组的就直接挑出来了,但 怎样实现这个排序呢?         根据上一篇文件排序f

2013-12-06 15:41:41 14838

原创 数据库优化<六>SQL优化之SELECT优化 ——filesort

在执行计划中,可能经常看到有fExtra列有filesort,这就是使用了文件排序,这当然是不好的,应该优化,但是,了解一下他排序的原理也许很有帮助,下面看一下filesort的过程:         1、根据表的索引或者全表扫描,读取所有满足条件的记录         2、对与每一行,存储一对儿值到缓冲区,一个是排序的索引列的值,即order by用到

2013-12-06 00:33:30 2637

原创 数据库优化<五>SQL优化之SELECT优化 ——order by 优化

在使用sql查询数据库的数据时,经常会使用到排序的操作,因此,如果对于排序的数据,不能用到索引,将是一个很好时间的事情,数据库的解决方法有两个:1、选择完所有行后,数据较少,用内存来排序;2、数据较大,用硬盘文件排序,这将很耗时,特别影响性能。        而如果能运用好索引,则会少很多排序的消耗,因为当使用排序时,只根据索引去顺序读取,然后发送到客户端。1、当使用排序时

2013-12-05 23:55:21 6482

原创 数据库优化<四>SQL优化之SELECT优化—mysql Innodb索引

在mysql的存储引擎Innodb中,有聚簇索引(clustered index)和附属索引(secondary index),聚簇索引(clustered index):         将数据和索引一起存放,即数据的存放顺序根据聚簇索引来存的,其中聚簇索引有以下几种情况:                 1,如果表有主键primary key,则聚簇索引为主键索引

2013-12-05 17:39:54 2269 2

原创 数据库优化<三>SQL优化之SELECT优化 ——JOIN和LEFT JOIN 和 RIGHT JOIN

在数据库的应用中,我们经常需要对多表进行连表操作来获得关系型的数据,因此,应该更加的掌握好SQL语句的join原理,因为,可以稍一不慎,可能一个不好的join导致数据库的全表扫描,查询出大量的无用的信息,并且对数据库性能影响极大。         数据库中的join操作,实际上是对一个表和另一个表的

2013-12-05 10:48:27 17110 2

原创 数据库优化<二>SQL优化之SELECT优化 ——mysql内部优化策略

数据库的瓶颈经常出现在查询 语句中,当出现这样的问题时,我们一般的步骤是查看是否运用了正确的 索引,这个可以通过explain sql statement来查看,找到对应的字段,合理的索引将会增加你呃数据的访问速度,但任何事情都有一个度,如果索引太多,会在插入时要维护更多的索引,这也将是一个大的开销,但具体怎样才合适呢,欢迎大神来讨论,这个我不再行,不过一般一个表中有主键活唯一键,再弄

2013-12-03 01:21:49 2598

原创 数据库优化<一>数据库层和硬件层概述

最近开始研究数据库方面的东西,感觉能解决大数据的问题,感觉真的很爽,所以,可以学习了一下sql方面的优化,这个将是一系列的课程,学习的过程中,将其记录下来,以后以备备案,同样,技术是一个没有边界的东西,写出来代表我的个人理解,真心希望大神们来此围观一下,提提意见,感激不尽一、数据库优化概览           高性能的数据库依赖与几个因素,如表结构,查询语句,服务器的硬

2013-12-03 00:24:53 2236 3

原创 用redis阻塞队列,实现消息传递

在网络服务器运行的时候,可能会碰到这样的需求,主程序处理会很耗时,           1,网络流量很大,但有紧急情况需要发送邮件通知别人,这时如果在程序中发送邮件,将会很费时,但又必须做           2,处理客户端请求后,剩下的事情跟正常逻辑没有关系,但有些耗时的操作需要完成遇到这样的情况,可以有几种办法:           1,开一个线程跑这些数据,主程序继续处理其他

2013-11-26 21:05:49 20490

原创 python 中闭包理解,及函数string.maketrans(),string.translate()

在写程序的时候,可能有写需求,需要用到对字符进行交换或过滤,python中提供了两个函数        string.maketrans(from, to)   -> 重from一一映射到to中,所以要求两个字符串一样长,如果                                                             两个都为空,则为全部字符,那么不会出现替换

2013-11-05 23:52:17 2519 1

原创 数据库设计心得

这段时间,我做了一个对数据统计的事情,在设计数据库的时候,考虑的是让表尽可能的简单,没有多余的信息,但是,运行一个多月了之后,发现数据有一些小问题,查找起来真的很麻烦,问老大怎么解决,他拿出绝招,看日志去,呵呵,还好,找到了出现异常的记录的地方,给我一个建议,让我在插入表是写一下时间,更新表时写一下时间,这一下我的程序全部都得修改,包括测试程序,代价是有点大啊,但觉得值得,学了一个教训

2013-11-04 17:23:09 1398

原创 python 获取运行脚本的绝对路径

有时候在执行一些脚本时,需要写文件,或者从定向的其他的地方,获取绝对路径是必要的在python的运行时,sys.argv[0],存了当前脚本的运行路径包括文件名:如 :          python test.py  -> sys.argv[0] 为:test.py          python dirname1/dirname2/test.py  ->sys.argv[0]

2013-11-02 21:16:26 9040 1

原创 python写excel文件,openpyxl, xlrd, xlwt,xlutils

在上一篇写了python利用csv模块写csv文件,http://blog.csdn.net/xiaobing_blog/article/details/14056473,速度很快但有些缺陷,所以我最后又找了写excel的工具工具有这些:           在网站:http://www.python-excel.org/, 提供了xlrd,xlwt,xlutils一套工具,xlrd是

2013-11-02 17:40:46 18297 1

原创 python 写csv

在做统计的时候,经常会用到excel表格,这个可以用写入csv文件来完成但这个有一些缺陷:数字在大于15位之后,后面的数字在excel打开时,会被自动转换为0解决方法是:在写入前将数字转换为字符串,即在前后加上单引号,如:'873583789578397439847'还有要注意的是,为了与windows兼容,不乱码,写入前,应该写入这几个字符: \xEF\xBB\xBF

2013-11-02 17:13:29 8712

原创 字符编码,pyton中的encode,decode,unicode()

1.在计算机处理的程序中,对字符的处理有两种方式:编码或译码(encoding),解码(decoding)    encoding:将字符串中的字符转换到对应编码字符集对应的代码点             每一个代码点对于了一些数字,计算机真正存的是这些数字        如:            "python",转换到unicode码的对应为: P

2013-10-30 16:53:48 8023

原创 mysql查询时间戳和日期的转换

在数据库的使用中,经常需要按指定日期来查询记录,以便于统计,而在数据库中,有很多存储的是时间戳,也有的直接存日期,查询的时候可能不是那么好弄.mysql提供了两个函数:          from_unixtime(time_stamp)   ->  将时间戳转换为日期          unix_timestamp(date)             ->  将指定的日期或者日期

2013-10-24 15:23:02 11017

原创 利用ubuntu的alias命令来简化许多复杂难打的命令

现在我在一个远程的服务器用ssh连接,每次连接都得这样:ssh [email protected]甚至,有时候不知道域名,还得输入ip,如ssh [email protected]然后输入密码,这样的命令有几个方法可以解决:          1,你打字儿特别牛逼,很快搞定,这很好          2,利用ctrl+r 输入前几个字母,搜索你之前输入

2013-10-14 23:24:05 2571

原创 ubuntu挂载其他分区到/home下,将当前分区内容替换

有时候,我们装系统时,可能因为没注意,把某一个分区分小了,导致到最后,我们的那个盘容不下了,这时,面临的两个选择就是:要么卸载一些软件,要么重新分区,重装系统,其实,还可以这样,去把其他多余的盘分一个区出来,然后替换当前分区,放心,数据不会丢失,而且所有安装的软件都可正常的使用.而我装的系统发现 根/目录快占完了,又不想重装系统,想用一个新的分区去替换/home,做法如下:这里

2013-10-14 22:51:13 7438 3

原创 python时间,日期,时间戳处理

1.将字符串的时间转换为时间戳    方法:        a = "2013-10-10 23:40:00"        将其转换为时间数组        import time        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") 转换为时间戳: timeStamp = int(time.mktime(timeAr

2013-10-11 00:42:52 138839 7

原创 crontab使用--linux下的定时任务程序

crontab是一个linux下的定时运行程序,如果我们想让自己的程序定时执行,可以把自己的程序交给这个程序来完成第一步:配置crontab的脚本的默认编辑器,它的默认的编辑器不好用,我们配置vim方法:在终端输入: sudo select-editor弹出的格式为:Select an editor.  To change later, run 'select-ed

2013-10-08 13:38:53 2181

原创 python中的文件读写

python中可能会用到文件的读写,记录一下python中的读文件:           python中提供了一个函数open(name[, mode[, buffering]]) -> file object,           后面两个参数可选           mode:                        默认mode为r读模式,mode有几个值,r,w,

2013-10-06 18:19:17 20968

原创 python将多行字符串转换为单行字符串

python中处理字符串是很好的,有时需要将多行字符串,或着不规则的字符串转换为单行字符串,每个单词直接用空格分开等,如有的含有换行符号,tab符号\t,多个空格,等,可以这样来转换为单行字符串,如:               string = 'this is \n a \t          example'               string = ' '.join(s

2013-10-03 21:52:29 12318

原创 python的三元表达式

在C语言中,有类是 a = b > 0 ? c: d,如果b 大于0,则a的结果为c, 否则为d,在python中,也可以表达这样的用法,使用and 和 or连用如:            a = 1 and 'fish' or 'python'           b = 0 and 'apple' or 'banana'a 的结果为fish, b的结果为banana,原因是

2013-10-03 21:18:09 2231

原创 ubuntu 13.04无线网无法使用解决方法

我的电脑在安装ubuntu12.04时,无线驱动好使,但最近升级为13.04后,有线网可以连接无线网无法使用,现象为:无法检测到无线网。解决方法:安装驱动sudo apt-get install linux-headers-genericsudo apt-get install linux-headers-$(uname -r)sudo apt-get install --re

2013-09-23 13:44:24 1697

原创 Python中的kwargs

Python的函数中有几种参数,一个是基于位置的参数,一个是基于变量名赋值的参数基于位置的参数被*args存入元组中,基于变量名赋值的参数被**kwargs放入一个字典中如:def foo(*args, **kwargs): print "Positional arguments are:" print args print "Keyword arguments

2013-09-07 11:53:52 1770

原创 Django中的template的神秘用法--继承

在正常的做网站时,我们都需要编写很多的html代码,但你会发现,你会重复很多代码,而每次,这写代码基本上都是复制,然后粘贴,现在有两种解决方法:          1.使用include标记来引入重复的文件的部分          2.使用Django中的模板的继承特性第一种:           这种方法,只需要把不变的部分分为几个文件存储,然后分别导入就ok了,如:he

2013-09-05 20:55:16 6649

原创 Django中template导入文件

template文件的导入 template文件就是普通的文件,需要用于template.render()函数渲染,可以有以下 几种方法来加载文件 1.用python自带的open()函数,如: from django.template import Template, Context from django.http import HttpResponse import

2013-09-05 20:22:28 3665

原创 Django中template 使用

1.template 使用template不仅可以用来导出HTML,他可以用来做任何的基于文本的处理1.在交互模式下使用template 使用django的template时,他需要查找一个变量的 设置,叫:DJANGO_SETTINGS_MODULE,这个指向的是 当前的工作项目的settings.py文件,所以,要想在 交互模式下使用template,最好先通过 django-

2013-09-05 19:46:44 2497

原创 vim学习(二)移动+修改文本+多行注释等

二.移动 1.以word为单位进行移动 e/w 向前以word为单位移动 2.其他移动命令 ^ 移动到行首 $ 移动到行末尾 % 跳转到匹配的{或[( :num 光标指定到第num行 gg 到文档第一行第一列 G 到文档最后一行第一列 3.上下文搜索 1. /charactor 进行上下文搜索,按下回车后,可按下n进行下一个搜索,

2013-09-05 11:42:38 4291

原创 vim学习(一)

1.vim 分为normal模式和插入模式 在normal模式,所有的输入都是命令 在插入模式,所有的输入都是字符 其他模式切换到normal模式 按下Esc键 2.插入文本 在normal模式下按下i可进入插入模式,即可输入文本 关于插入模式的几个字符 a 在当前的光标后插入文本 i 在当前的光标前插入文本 o 在当前的光标所在行的下一行开头新起一行输入文本 O 在

2013-09-05 10:09:59 1198

原创 Django之URL的命名空间和命名模式

在Django中可以有多个URL指向一个一个视图,如:urlpatterns = patterns('', url(r'^archive/(\d{4})/$', archive), url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}),)这是可行的,当对于我上一篇记录的Django之逆向解析url

2013-09-03 18:54:44 8031

原创 Django之逆向解析url

Django中提供了一个关于URL的映射的解决方案,你可以做两个方向的使用: 1.有客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试图, 获取相应的数据,然后返回给客户端显示 2.通过一个视图的名字,再加上一些参数和值,逆向获取相应的URL第一个就是平常的请求有URLconf来解析的过程,第二个叫做,url的逆向解析,url逆向匹配,url的逆向查阅,等

2013-09-03 16:53:38 5227

原创 Django的url解析

Django中采用正则表达式来匹配所请求的url,这个叫做URLconf,作为MVC中的C(控制器),这样再调用相应的试图,达到控制器控制试图的显示的效果。看一下Django的url解析过程

2013-09-02 11:30:18 3821 1

原创 Ubuntu下实现双屏独立切换

在编码时,总觉得屏幕大小不够,要是能多个屏多好,可以这样把你的显示器连接到你的电脑,然后开启一个终端输入:xrandrLVDS1 connected 1366x768+1024+0 (normal left inverted right x axis y axis) 309mm x 174mm 1366x768 60.0*+ 1360x768 59.

2013-09-01 20:58:31 7313

原创 Django学习之manage.py使用

1.django-admin.py startproject mysite 开始一个项目,会初始化一些项目的结构文件2.python manage.py runserver ip:port 如: python manage.py runserver 127.0.0.1:8080 利用ip可以访问不在同一个主机的数据库3.python manage.py syncdb 注:会创建在se

2013-09-01 20:28:47 13847

原创 Kruskal算法模拟讲解

Kruskal 算法是一个求最小生成树的算法,即求最小的开销等 算法可以这样,要求得最小生成树,那么n个节点只能包括n-1条边 所以我们应该转换为寻找这最短的n-1条边,因此,可以先对所有的 边进行从小到大排序,每次取出一条边来进行试探,看是否够成环, 如果不构成环,那么肯定是最短的路径了,因为每次都是取最小 的边来试探,最终可以求得最小的生成树代价和。

2013-08-31 21:00:35 1138

原创 Dijkstra算法模拟讲解

dijkstra算法,是一个求单源最短路径算法 其算法的特点为: 层层逼进,有点类似宽度搜索的感觉 其需要的数据结构为: int map[N][N] 所有点之间的权表 int dis[N] 所有点到源点的最短距离 int prev[N] 存储每个点的前一个经过的点,用于输出路径 int used[N] 用于存储已经求出最短路径的点 则总的点减去used中的点,为还没有找出最短路径的点 初始化时:map为实际存储的权,如果某一边没有,则设置为无穷大INF,自身设置0

2013-08-30 15:11:47 1054

空空如也

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

TA关注的人

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