类变量紧接在类名后面定义,至关于java和c++的static变量
实例变量在init里定义,至关于java和c++的普通变量java
#coding:utf-8 import time import datetime #日期格式化,time.strftime(format[, t]), #输出:2015-08-28 15:50:51 currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #日期加减,输出:2015-08-27 yesterday = datetime.date.today() - datetime.timedelta(days=1) print yesterday.strftime("%Y-%m-%d") #日期字符串转化为时间戳time.strptime(string[, format]) #struct_time格式:time.struct_time(tm_year=2015, tm_mon=3, tm_mday=12, tm_hour=15, tm_min=1, tm_sec=1, tm_wday=3, tm_yday=71, tm_isdst=-1) #秒数: timeStruct = time.strptime("2015-03-12 15:01:01", '%Y-%m-%d %H:%M:%S') #返回秒数:1426143661.0 seconds = time.mktime(timeStruct) print seconds
json.dumps(obj)JSON转为字符串 json.loads(str)字符串转为JSON
queryFile = open('top_query') for line in queryFile: print line queryFile.close() queryFile = open('top_query', 'w') queryFile.write("miphone" + "\n") queryFile.close()
编辑距离也称为Levenshtein距离,用于衡量两个字符串的类似度,一个字符串向另外一个字符串变化经历的操做(新增/删除/替换字符)次数。python提供官方库python-levenshtein,使用以下。python
import Levenshtein #输出2,abc:b替换为f得afc,删除c得af,两次操做 Levenshtein.distance("abc", "af") #ratio函数得到小于1的小数,更直观的衡量类似度,1彻底相同,0是彻底不一样 #计算公式是r=(sum - dist) / sum,sum是两字符串长度和,dist为类编辑距离,删除/新增距离依然+1,替换距离+2,r=(5-3)/5=0.4 Levenshtein.ratio("abc","af) #中文比较,要转为unicode编码,才能得到正确结果 Levenshtein.distance(u"中国",u"北京") Levenshtein.distance(unicode("中国", "utf-8"), unicode("北京", "utf-8")) Levenshtein.ratio(unicode("中国", "utf-8"), unicode("北京", "utf-8"))
元素是元组格式的list进行排序和格式化输出c++
queryList = [("iphone", 1), ("miphone", 10)] queryList.sort(key=lambda item:item[1], reverse=True) str = ",".join([k + ":" + str(v) for (k, v) in queryList])
为了更好的维护程序,提升程序的灵活性,每每使用配置文件来设置程序中的变量。正则表达式
config文件json
[global] ip=10.3.22.26 port=123 user=user password=user
读取api
import ConfigParser
config1 = ConfigParser.ConfigParser()
config1.readfp(open("config","rb"))
print config1.get("global","ip")
替换字符串中特定格式的子串markdown
import re pattern=re.compile('\[\d*\]') #[1],[1234]此类格式 str='[1]123 [2]245 [3]789' #去掉[...] str1=pattern.sub('',str)
以特定格式子串为分隔符,分割字符串,返回列表iphone
arr=re.split('\[\d*\]',str1)
import json import time import urllib import urllib2 #用quote来转义特殊字符 url = "http://mvideo.n.duokanbox.com/api/a1/search?kw=" +urllib.quote(keyword) req = urllib2.Request(url) conn = urllib2.urlopen(req) res = conn.read() res = json.loads(res) print res
len(string)返回的是字节数,len(unicode)返回的是字符数ide
#遍历dict for k,v in dict.iteritems(): print '%s:%s' % (k, v)
提示:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)函数
解决:
import sys reload(sys) sys.setdefaultencoding('utf-8')