# -*- coding: utf-8 -*- import random class GenNickName: def __init__(self,num=30): #print "__init__" self.list=[] self.wordNum=0 self.num=num self.nickNames=[] def getWordsFromTxt(self): file=open("source.txt","r") for l in file.readlines(): #print "l: " +l line=l.decode("gbk").split() #print len(line) for e in line: #print e self.list.append(e) #print len(self.list) #print "l: %s" %self.list file.close() def genNickName(self): self.getWordsFromTxt() self.wordNum=len(self.list)-1 for k in range(self.num): i=random.randint(0, self.wordNum) j=random.randint(0, self.wordNum) #print len(self.list) #print "one nick name : "+self.list[i]+self.list[j] self.nickNames.append(self.list[i]+self.list[j]) def showNames(self): print "All nicks names:" print "*"*50 i=0 for name in self.nickNames: print name, i=i+1 if(i%10==0): print " " print "*"*50 if __name__=="__main__": g = GenNickName(50) g.genNickName() g.showNames()
代碼如上所示。python
實現比較簡單,主要難點在於,從txt文件中讀取漢字後的字符分割。正常狀況下,用.split函數便可,可是文中使用的是漢字,而漢字的編碼是gbk,因此在分割以前先要用gbk解碼。app
每次運行,能夠生成50個隨機組合的詞,以下所示:dom
All nicks names: ************************************************** 啊由 爐痼 柱著 摩辮 押至 炎奇 養識 勵賭 類外 通朝 馮又 郊祥 潛澤 撾打 僑篡 殺拾 傳曰 崩朕 紛慎 畔誘 墳趁 晨宋 名麟 癢盟 澳遼 粒紫 汛喃 國薩 娥畜 濟錘 稿俘 砌產 冤映 桅託 君蠟 勒玲 肯模 酮舒 蛋陪 屁謙 溼氰 梗煎 諸鄒 捍佃 音撞 革色 造菜 獵吉 字捻 報碧 **************************************************