文档章节

随机生成一个两个汉字的合成词

艾柯
 艾柯
发布于 2015/05/05 20:23
字数 387
阅读 2771
收藏 7
# -*- 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:
**************************************************
啊由 炉痼 柱著 摩辫 押至 炎奇 养识 励赌 类外 通朝  
冯又 郊祥 潜泽 挝打 侨篡 杀拾 传曰 崩朕 纷慎 畔诱  
坟趁 晨宋 名麟 痒盟 澳辽 粒紫 汛喃 国萨 娥畜 济锤  
稿俘 砌产 冤映 桅托 君蜡 勒玲 肯模 酮舒 蛋陪 屁谦  
湿氰 梗煎 诸邹 捍佃 音撞 革色 造菜 猎吉 字捻 报碧  
**************************************************


© 著作权归作者所有

艾柯
粉丝 17
博文 19
码字总数 7417
作品 0
成都
私信 提问
用C#生成随机中文汉字验证码的基本原理

前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码。^_^ 我不得不佩服腾讯为了防止目前网络上横行...

晨曦之光
2012/03/09
108
0
汉字区位码查询与算法

20060427-汉字区位码查询与算法——microsoft visual studio 2005系列 [url]www.tuenhai.com[/url] 20060427 要从事学术研究,一定要学好数学,数学可以把对事物的描述精确化。 tuenhai为什么...

晨曦之光
2012/03/09
1K
0
RandomStringUtils的说明和生成随机汉字

这类位于 org.apache.commons.lang。 简单说一下都有哪些方法(具体参考源码文件): random(int count) 生成一个长度为count的字符串,随机内容包含全部的编码。 randomAscii(int count) 生...

登琼
2016/04/20
416
0
php如何实现验证码

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现...

snowing1990
2016/04/15
44
0
网上几种常见校验码图片分析

前几天受刺激了,准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享,整理到一起,跟大家分享。 至于CSDN新的校验码写法,不是这里面的任何一种。也...

晨曦之光
2012/03/09
235
0

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
43分钟前
5
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
今天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
今天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部