自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Django基础

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 一个算法应该具有以下七个重

2017-07-25 16:26:26 530

转载 vsftp上传文件出现553 Could not create file解决方法

转载自vsftp上传文件出现553 Could not create file解决方法因工作需要,需要搭建一个ftp服务器,我使用ubuntu 10.04操作系统,下载vsftpdy源代码,进行了编译,安装,然后按照INSTALL文件,创建了用户等操作。因为时间比较紧,我采用匿名用户,进行文件的上传测试。修改了/etc/vsftpd.conf文件,将默认注释不让匿名用户上传文件的注释去掉,然后保存,

2016-12-16 18:27:42 38469 8

原创 算法基础

算法定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。时间复杂度时间频度一个

2016-10-31 15:02:46 372

原创 Python与数据库

数据库和Python持久化存储在任何应用中,都需要持久化存储,一般有三种基础的存储机制,文件,数据库系统,以及一些混合类型,一种是使用普通文件或者python特定文件进行访问,另一种是使用数据库管理器访问。数据库底层存储数据库通常使用文件系统作为基本的持久化存储,他可以是普通的操作系统文件,专用的操作系统文件,甚至是原始的磁盘分区数据库数据库存储可以抽象

2016-10-24 19:13:16 10686

原创 JavaScript简单介绍

JSJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。js代码的存在形式<!-- 方式一 导入外部文件--><script type"text/javascript" src="JS文件"></script><!-- 方式二 直接在所在文件中编写--><script t

2016-10-19 19:55:05 415

原创 Python:Twsited异步网络框架

Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议、线程、数据库管理、网络操作、电子邮件等。

2016-10-15 20:30:00 1019

原创 Python:简单select模块使用

select 多并发socket 例子#!/usr/bin/env python#coding:utf-8import selectimport socketimport Queuelisten_addr=('0.0.0.0',8000)#监听服务器server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)try: serve

2016-10-15 11:03:42 3874 2

转载 论事件驱动与异步IO

转载至人云思云同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。概念说明在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器

2016-10-14 20:43:23 1214

原创 Python:SQL

MYSQL基本使用以下列出了使用Mysql数据库过程中常用的命令:USE 数据库名 :选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表。 SHOW TABLES: #显示指定数据库的所有表,使用该命令前需要使用 use命令来选择要操作的数据库。 SHOW COLUMNS FROM 数据表:

2016-10-14 11:13:13 576

原创 Python:paramiko模块简单应用

Python的paramiko模块,该模块是基于SSH用于连接远程服务器并执行相关操作SSHClient用于连接远程服务器并执行基本命令SFTPClient用于连接远程服务器并执行上传下载

2016-10-14 11:12:05 429

原创 Python:yield协程

协程协程,又称微线程,协程是一种用户态的轻量级线程(操作系统根本就不知道他的存在,是用户自己控制的) 协程是一种函数,特点是其处理过程可以在特定点挂起和恢复,因此典型情况下,协程将执行到某个特定的语句,之后执行过程被挂起等待某些数据,在这个挂起点上,程序是的其他部分可以继续执行,一旦数据到来,协程就从其他挂起点恢复执行,执行一些处理,并可能将其处理结果发送给另一个协程,协程可以有多个入口点和

2016-10-12 19:54:24 705

原创 Python:线程与GIL简述

什么是进程计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位,所以进程间通讯只能是使用IPC,而不能直接共享信息什么是线程线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有

2016-10-10 13:19:06 998

原创 Pyhton:异常

python中的异常种类非常多,每一个异常专门用于某一项异常。主要是为了代码调试和程序运行 语法:try: expressionexcept: expression #如果try中的代码有异常就执行这段代码else: expression #如果try中的代码没有出现异常就执行这段代码finally: expression #无论try中代码是否有异常,都必须

2016-10-09 20:40:03 698

转载 epoll讲解

作者:蓝形参,Geek 伪技术宅 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,

2016-10-08 15:27:51 385

原创 Python:网络编程

套接字套接字是一种“通信端点”概念的计算机网络数据结构。用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过”套接字”向网络发出请求或者应答网络请求。他们的底层结构都是基于文件系统来支持的。面向连接与无连接面向连接的协议是TCP协议(传输控制协议,TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议),这个协议通信之前需要三次握手。要创建TCP套

2016-10-08 14:15:08 543

原创 Python:反射

所谓的反射就是这四个函数: hasattr(p_object, name) 这个函数是一个布尔型,他的目的就是为了决定一个对象是否有一个特定的属性,一般用于访问某个属性前先做一下检查getattr(object, name, default=None) 获取对象的属性,如果输方法就返回这个方法对应的地址,试图获取不存在的属性的时候会引发一个AttributeError异常setattr(p_o

2016-10-07 17:39:49 300

原创 Python:继承

简介继承描述了基类的属性如何”遗传“给派生类,一个子类可以继承他基类的任何属性,不管是数据属性还是方法 简单的继承class P(object): passclass C(P): passc=C()print c.__class__ #<class '__main__.C'> 类名为Cprint C.__bases__ #(<class '__main__.P'>,) 继承

2016-10-07 15:35:12 276

原创 Python类:授权

1.“包装”意思是一个已经存在的对象进行包装,不管他是数据类型还是一段代码,可以是对一个已经存在的对象增加新的,删除不要的或者修改其他已经存在的功能2.包装 包括定义一个类,他的实例拥有标准类型的核心行为,换句话说,他现在不仅能唱能跳,还能像原类型一样步行。 这个图片说明了在类中包装的类型看起来像什么样子,在图的中心为标准类型的核心行为,但他也通过新的或者最新的功能,甚至可能通过访问实际数据的

2016-10-06 16:51:25 1084

原创 C语言:快速排序

排序思想1.快排是对冒泡排序的一种改进,在快速排序中,元素的比较和移动是从两端向中间进行的,关键码较大的元素一次就能从前面移动到后面,关键码较小的元素一次就能从后面移动到前面,元素移动距离的较远,从而减少了总的比较次数和移动次数2.快速排序是基于分治法设计的,其分治策略是: ①、划分:选定一个元素作为轴值,以轴值为基准将整个序列划分为两个子序列。轴值的位置在划分的过程中确定,并且前一个子序列的元素

2016-10-05 20:29:07 12758 1

原创 Python:常用模块简介(2)

configparser模块configparser用于处理特定格式的文件,看模块名字就知道这应该是用于处理配置文件的,其本质上是利用open来操作文件 指定的格式以mysql配置文件为例(my.ini)[client]default-character-set=utf8password = your_passwordport = 3306socket = /

2016-10-04 14:55:49 700

原创 Python:常用模块简介(1)

sys模块>>> sys.platform #返回操作系统平台名称'win32'>>> sys.stdin #输入相关open file '', mode 'r' at 0x000000000337B030>>>> sys.stdout #输出相关open file '', mode 'w' at 0x000000000337B0C0>>>> sys.ma

2016-10-03 17:14:17 756

原创 C语言:冒泡排序

1.基本思想冒泡排序:两两比较相邻记录的关键码,如果反序则交换,直到没有反序记录为止2.排序过程(升序)①、将整个待排序的记录序列分成有序区和无序区,初始时有序区为空,无序区包括所有待排序的记录 ②、对无序区从前向后依次将相邻记录的关键码进行比较,若反序则交换,从而使得关键码小的记录向前移,关键码大的向后移(像水中的气泡,体积大的先浮起来) ③、重复执行②。直到无序区中没有反序的记录初始键值序列

2016-10-02 21:26:42 519

原创 Python:class类

类及其类属性实例实例属性绑定和方法调用静态方法和类方法

2016-10-01 17:40:40 313

原创 Python:class类的简单介绍

1.类与实例类与实例互相关联,类是实例的对象,而实例是真正的实物,他存放了类中所定义的对象的具体信息 创建一个类class MyNewObject(object): class_suiteobject是所有类之母,如果你的类没有继承任何其他的父类,object将作为默认的父类。它位于所有类继承结构的最上层。如果你没有继承直接或者间接子类化一个对象,那么我们就定义了一个

2016-10-01 17:35:41 706

原创 Python:正则表达式

1.简介正则表达式为高级文本模式匹配,以及搜索-替代等功能提供了基础。Python通过re模块支持正则表达式。2.匹配与搜索在python专门术语中,有两种主要方法完成模式匹配:搜索(searching)和匹配(matching),搜索,即在字符串任意部分中搜索匹配的模式,而匹配是指,判断一个字符串能否从起始处全部或者部分的匹配某个模式。搜索通过search()函数或者方法来实现,而匹

2016-10-01 14:51:59 306

原创 python:装饰器

1.情景引入。现在已经完成了一个python项目,但是我们为了安全起见,我们需要加入验证机制。不是所有人都能调用函数原始源代码def f1(): print 'f1'def f2(): print 'f2'def f3(): print 'f3'由于必须遵循开发闭包的原则,所以我们应该尽可能的是不去改动原来函数的内部代码,而是通过其他的一些方法添加新的功能 比如通过下面

2016-09-30 15:36:31 360

原创 Python:迭代器与生成器

1.协程看上去是一个子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。也就是说做一件事情中途停下来转而去做了一件事情,回来还能够继续做第一件事情。包含yield的函数,则是一个可迭代对象。利用next方法,取每一次的yield。利用send方法向yield发送数据实例:>>> def test(num):... print("St

2016-09-30 13:42:18 283

原创 Python:map,filter和zip

1.map内建函数map(function, sequence, *sequence_1)参数是一个函数,一个或者多个序列将序列中的每一个元素取出来传入函数中,再将函数结果的返回值组成一个新的序列实例:def test(x): return x**2>>>l=[2,3,4,5,6]>>> map(test,l)[4, 9, 16, 25, 36]>>>>>>

2016-09-29 11:34:30 310

原创 Python:函数参数

1.普通参数。实参与形参的顺序必须一一对应,而且不能少传或者多传def show(user,password): print (user) print (password)show('csdn','csdn')#少传show('csdn')#报错:TypeError: show() takes exactly 2 arguments (1 given)#多传s

2016-09-29 10:35:26 282

原创 Python:深拷贝与浅拷贝

1.赋值,只是创建了一个变量,这个变量还是指向原来的地址>>> d={'k1':'v1','k2':'v2','k3':'v3','k4':[1,2,3,4]}>>> d{'k3': 'v3', 'k2': 'v2', 'k1': 'v1', 'k4': [1, 2, 3, 4]}>>> d1=d>>> id(d),id(d1)(51603384L, 51603384L) #指

2016-09-28 19:58:11 373

原创 Pyhton:collections

1.计数器import collectionsc=collections.Counter("aasddjjchhjxhcjxhcxj") #统计序列中元素出现的个数print c"结果:Counter({'j': 5, 'h': 4, 'c': 3, 'x': 3, 'a': 2, 'd': 2, 's': 1}) 收集字母在序列中出现的次数"##################

2016-09-28 18:57:59 322

原创 Python:条件和循环

1.Python中的if子句看起来十分熟悉,他有三部分组成,关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块。if语句的语法如下:if expression: expr_true_suit①.多重条件表达式if not warn and (system_load>=10): print "WARNING:losing resources" wa

2016-09-27 15:47:47 291

原创 c语言:循环队列

1.在循环队列中需要设置队头,队尾两个指针,并且约定;队头指针front指向队头元素的前一个位置,队尾指针rear指向队尾元素。队列的这种头尾相接的顺序存储结构称为循环队列。2.在循环队列中有个很重要的问题就是:队空和队满的判定问题。在循环队列中队空和队满的判定条件都可以是front=rear。因此,我们需要浪费一个数组元素空间,让队满的条件变为:(rear+1)%QueueSize=fron

2016-09-26 20:30:47 645

原创 c语言:链队列

1.队列的链接储存结构称为链列表,通常用单链表表示,因此此节点结构与单链表的节点结构相同。为了使空队列和非空队列,=的操作一致,链队列也加上了头结点。2.为了操作上的方便,设置队头指针指向链队列的头结点,队尾指针指向终端节点。3.链表示意图 4.代码如下#include#include/*链队列*///定义结构体typedef struct node{ //定

2016-09-26 20:04:04 526 1

原创 Python:集合

1.数学上,把set称作由不同元素组成的集合,集合对象时一组无序排列的可哈希值,集合成员是可以做字典的键。2.集合支持用in 和not in 操作符来检查成员,由len()得到集合的基数,用for循环迭代集合的成员,单数用于集合本身是无序的,你不可以为集合创建索引或者执行切片操作,有没有键来获取集合中的值。集合中不会出现相同的两个元素3.集合中有2中不同的类型:可变集合set()和不可变集合fro

2016-09-26 15:08:58 303

原创 Python:字典

1.字典是python语言中唯一的映射类型,映射类型对象里的哈希值(键,key)和指向的对象(值,value)是一对多的关系2.一个字典对象时可变的,他是一个容器类型,字典类型和序列类型的区别就是存储和访问数据的方式不同,序列类型只用数字类型的键,映射类型可以用其他对象类型做键,映射类型的键直接和间接的和存储的数据值相关联。待续

2016-09-25 19:25:19 279

原创 Python序列:元组

1.元组是与列表非常相近的另一种容器,元组和列表相比有一个很重要的区别,元组是一种不可变类型,当处理一组对象时,这个组默认为元组类型2.如果是只有一个元素的元组,需要在元素后面加一个逗号>>> a=('kk')>>> print akk>>> type(a)<type 'str'>>>> a=('kk',)>>> print a('kk',)>>> type(a)<type 'tu

2016-09-25 19:16:09 255

原创 python序列:字符串

1.字符串是一种直接量或者说是一种标量,字符串是不可变类型,简单来说改变一个字符串的元素就等需要新建一个新的字符串。当然,通过拼凑各个部分得到一个新的字符串也还是可以的注意:python的字符串并不是以\0作为结束符的>>> astring="Hello world">>> astring=astring[:6]+'python'>>> astring'Hello python'2.Pyhto

2016-09-24 16:17:22 1846

原创 python 序列:列表

1.序列:成员有序排列,并且可以通过下标偏移量访问到他的一个或者几个成员,包括字符串(普通字符串和unicode字符串),列表和元组类型2.序列类型都是有着相同的访问模式,他的每一个元素可以通过指定一个偏移量的方式得到,而多个元素可以通过切片操作的的方式一次得到。 3.序列类型的操作符 seq[index]:获取小标为index的元素 seq[ind1:ind2]:获取下标从i

2016-09-24 14:57:19 416

原创 c语言防止缓冲区数据作为有效字符被读入

当我们需要连续从键盘键入两个字符串变量的值的时候,为了防止缓冲区溢出,我们使用了安全函数 char *fgets(char *s,int n,stdin)。 下面的代码就是初始代码,#include<stdio.h>#include<stdlib.h>int main(int argc,char *argv[]){ char str[10]; char str2[10];

2016-09-05 19:59:33 1874

空空如也

空空如也

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

TA关注的人

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