KevinHuang

KevinHuang的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 一些书

  • 常用命令

  • python tips

  • 站点地图

  • rss

  • 公益404

  • 搜索

python模拟生物进化和遗传算法

发表于 2016-08-21 | 分类于 python | 阅读次数:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134#-*- coding:utf-8 -*-from PIL import Image as im from os import path from math import log from random import randint from copy import deepcopy import pickle as pk #全局变量 quanju_v = {} #定义图片预处理函数 def process_pic(pic_name): print("开始预处理图片") #获得图片对象 img = im.open(pic_name) #获得图片的规格 img_color = [] img_width,img_height = img.size i = 1 for x in range(img_height): img_color_tmp = [] for y in range(img_width): #获得图片像 ...
阅读全文 »

ubuntu14.04安装numpy笔记

发表于 2016-08-21 | 分类于 其它 | 阅读次数:
1234sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tksudo apt-get install zip unzipsudo apt-get install python-numpysudo apt-get install python-scipy
阅读全文 »

用DFA算法来实现敏感词汇的过滤

发表于 2016-08-18 | 分类于 技术 | 阅读次数:
工作中遇到一个过滤敏感词汇的问题,网上找了一下主要解决方法有3种思路:【可行思路】1、暴力匹配–这个就算了,只是说说而已,实际应用中很少的。2、正则表达式,暂时没有用过3、利用DFA实现文字过滤,本文主要研究的就是DFA算法,在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automation, DFA)是一个能实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表的字符,它都能根据事先给定的转移函数转移到下一个状态(这个状态可以是先前那个状态)。以上是wiki上的介绍,通俗点来讲就是实现了一个链表,每个元素是一个字典,字典中存储的是敏感词的单位子串,子串也是一个链表元素内容也是一个字典,描述起来有点绕,还是图来的实在: python代码实现: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667# -*- coding:utf-8 -*-import timeimport copyFILENAME = 'dict.txt'class DFA(object): def __init__(self, filename): """ 初始化装载敏感词 """ self.data = {} with open(filename, 'r') as fp: lines = fp.readlines() for line in lines: l_d = ...
阅读全文 »

python中的collections模块学习

发表于 2016-08-17 | 分类于 技术 | 阅读次数:
Python在一些内置的数据类型,比如str, int, list, tuple, dict等,之后又提供了比较高级的额外的数据类型, 共有以下几种:Counter, deque, defaultdict, namedtuple, OrderedDict 那么接下来一个个的攻克它们。 一.namedtuplenamedtuple的函数原型如下: 12def namedtuple(typename, field_names, verbose=False, rename=False): """Returns a new subclass of tuple with named fields. 作用就是通过将可迭代对象设置字段名,可使用名称来访问元素的数据对象。比较重要参数释义: typename: 自定义名,字符串类型 field_names: 字段名,list类型 如下例子: 1234567891011121314151617181920212223`>>> Point = namedtuple('Point', ['x', 'y'])>>> Point.__doc__ # 新类的文档字符串'Point(x, y)'>>> p = Point(11, y=22) # 通过位置参数或关键字参数实例化>>> p[0] + p[1] # 像普通元组一样使用索引33>>> x, y = p # 像普通元组一样解包(11, 22)>>> p.x + p.y # 通过字段名访 ...
阅读全文 »

Python中的几种设计模式

发表于 2016-08-11 | 分类于 技术 | 阅读次数:
单例模式:法一:通过类的new()方法,但是个人感觉没有装饰器方便 1234567891011121314151617181920class Singleton(object): __instance = None def __init__(self): pass def __new__(cls, *args, **kwd): if Singleton.__instance is None: Singleton.__instance = object.__new__(cls, *args, **kwd) return Singleton.__instanceclass MyClass(Singleton): aa = 88instance1 = MyClass()instance2 = MyClass()print id(instance1)print id(instance2)139984856635600139984856635600 用装饰器来实现1234567891011121314151617def singleton(cls, *args, **kw): instances = {} def _singleton(): if cls not in instances: instances[cls] = cls(*args, **kw) return instances[cls] return _singleton@singletonclass MyClass1(object): aa = 56instance1 = MyClass1()instance2 = MyCl ...
阅读全文 »

python中密码的保存和token的生成验证itsdangerous模块

发表于 2016-08-09 | 分类于 python | 阅读次数:
密码的保存: 12import hashlibhashlib.sha1(config.SECRET_KEY+password).hexdigest() token的生成和保存: 12345678910111213141516171819202122232425262728293031from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, BadSignature, SignatureExpiredclass QXToken(object):"""生成/验证 用户token""" def __init__(self, name): self.name = name def generate_auth_token(self, expiration=3600): s = Serializer(config.SECRET_KEY, expires_in=expiration) return s.dumps({'name': self.name}) def verify_auth_token(self, token): s = Serializer(config.SECRET_KEY) try: data = s.loads(token) print 'data:', data except SignatureExpired: return 0 # valid token, but expired except BadSignature: return -1 # invali ...
阅读全文 »

查找附近的人功能实现

发表于 2016-08-09 | 分类于 技术 | 阅读次数:
查找附近的人是移动开发非常流行的功能,最近在给移动端写后台接口,上午查了很多资料发现用geohash算法的人居多,本来想自己设计数据库来实现以下geohash的,但是项目赶得紧,正好发现新版的redis支持geo的地理位置的操作: 安装最新版的redis3.2.3+ redis的geo模块支持的操作有: 添加位置和获取位置为了进行地理位置相关操作, 我们首先需要将具体的地理位置记录起来, 这一点可以通过执行 GEOADD 命令来完成, 该命令的基本格式如下: 1GEOADD location-set longitude latitude name [longitude latitude name ...] GEOADD 命令每次可以添加一个或多个经纬度地理位置。 其中 location-set 为储存地理位置的集合, 而 longitude 、 latitude 和 name 则分别为地理位置的经度、纬度、名字。 举个例子, 以下代码展示了如何通过 GEOADD 命令, 将清远、广州、佛山、东莞、深圳等数个广东省的市添加到位置集合 Guangdong-cities 里面: 1redis> GEOADD Guangdong-cities 113.2099647 23.593675 Qingyuan – 成功添加一个位置 1redis> GEOADD Guangdong-cities 113.2278442 23.1255978 Guangzhou 113.106308 23.0088312 Foshan 113.7943267 22.9761989 Dongguan 114.0538788 22.5551603 Shenzhen – 成功添加四个位置在将位置记录到位置集合之后, 我们可以使用 GEOPOS 命令, 输入位置的名字并取得位置的具体 ...
阅读全文 »

Python字符串的问题

发表于 2016-07-22 | 分类于 技术 | 阅读次数:
普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码: 123456unicodestring = u"Hello world" #### 将Unicode转化为普通Python字符串:"encode" utf8string = unicodestring.encode("utf-8") asciistring = unicodestring.encode("ascii") isostring = unicodestring.encode("ISO-8859-1") utf16string = unicodestring.encode("utf-16") 将普通Python字符串转化为Unicode:”decode”1234plainstring1 = unicode(utf8string, "utf-8") plainstring2 = unicode(asciistring, "ascii") plainstring3 = unicode(isostring, "ISO-8859-1") plainstring4 = unicode(utf16string, "utf-16")
阅读全文 »

Apache配置优化

发表于 2016-07-20 | 分类于 技术 | 阅读次数:
过滤配置文件中的注释信息: 1grep -v ‘^#\|^$\|#’ /etc/httpd/conf/httpd.conf CentOS6.5下配置apache启动方式为worker: 12mv /usr/sbin/httpd /usr/sbin/httpd.preforkmv /usr/sbin/httpd.worker /usr/sbin/httpd 配置参数解读: ServerTokens OS 当服务器响应主机头(header)信息时显示Apache的版本和 操作系统名称ServerRoot “/etc/httpd” 设置服务器的根目录PidFile run/httpd.pid PID存放位置Timeout 60 若60秒后没有收到或送出任何数据就切断该连接KeepAlive Off 是否开启保持链接状态MaxKeepAliveRequests 100 在使用保持连接功能时,设置客户一次请求连接能 响应文件的最大上限KeepAliveTimeout 15 在使用保持连接功能时,两个相邻的连接的时间间 隔超过15秒,就切断连接 设置使用Prefork MPM运行方式的参数,此运行方式 是Red hat默认的方式StartServers 8 设置服务器启动时运行的进程数MinSpareServers 5 最小空闲进程数MaxSpareServers 20 最大空闲进程数ServerLimit 256 最大的进程数MaxClients 256 最大的请求并发MaxClients=ServerLimit*进程的线 程数MaxRequestsPerChild 4000 限制每 ...
阅读全文 »

python对时间日期做格式化

发表于 2016-07-06 | 分类于 技术 | 阅读次数:
Python格式化日期时间的函数为datetime.datetime.strftime();由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串,列举如下:12345678910111213141516171819202122%a Abbreviated weekday name%A Full weekday name%b Abbreviated month name%B Full month name%c Date and time representation appropriate for locale%d Day of month as decimal number (01 - 31)%H Hour in 24-hour format (00 - 23)%I Hour in 12-hour format (01 - 12)%j Day of year as decimal number (001 - 366)%m Month as decimal number (01 - 12)%M Minute as decimal number (00 - 59)%p Current locale's A.M./P.M. indicator for 12-hour clock%S Second as decimal number (00 - 59)%U Week of year as decimal number, with Sunday as first day of week (00 - 51)%w Weekday as decimal number (0 - 6; Sunday is 0)%W Week of year as decimal number, with Monday as first d ...
阅读全文 »
1…456…20
Kevin Huang

Kevin Huang

197 日志
24 分类
84 标签
RSS
E-Mail
友情链接
  • 董伟明
  • FOOFISH
  • 酷壳
  • 知道创宇
  • 阮一峰
  • 求索
  • Sdandroid
  • 全栈实验室
© 2023 Kevin Huang 豫ICP备16018730号-1
本站访客数 人次 本站总访问量 次