類變量緊接在類名後面定義,至關於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')