php怎么随机生成二个中文,随机生成一个两个汉字的合成词

# -*- 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()

代码如上所示。

实现比较简单,主要难点在于,从txt文件中读取汉字后的字符分割。正常情况下,用.split函数即可,但是文中使用的是汉字,而汉字的编码是gbk,所以在分割之前先要用gbk解码。

每次运行,可以生成50个随机组合的词,如下所示:

All nicks names:

**************************************************

啊由 炉痼 柱著 摩辫 押至 炎奇 养识 励赌 类外 通朝

冯又 郊祥 潜泽 挝打 侨篡 杀拾 传曰 崩朕 纷慎 畔诱

坟趁 晨宋 名麟 痒盟 澳辽 粒紫 汛喃 国萨 娥畜 济锤

稿俘 砌产 冤映 桅托 君蜡 勒玲 肯模 酮舒 蛋陪 屁谦

湿氰 梗煎 诸邹 捍佃 音撞 革色 造菜 猎吉 字捻 报碧

**************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值