python3生成随机数实例


Posted in Python onOctober 20, 2014

本文实例讲述了python3生成随机数的方法。分享给大家供大家参考。具体实现方法如下:

该实例是根据一本书上看到过一个随机数的小程序,经过自己改动,变为了一个猜数字的小游戏,现在在python3下重写了一遍。

这是一个控制台下的猜数程序,winxp+python3.2+eric5和IDLE测试通过,但直接用winxp的命令行运行有问题,原因还未知,慢慢找。ubuntu+python3.1测试通过。

具体实现代码如下:

# -*- coding: utf-8 -*-

import Image,ImageDraw,ImageFont

import random

import math, string  

 

class RandomChar():

  """用于随机生成汉字"""

  @staticmethod

  def Unicode():

    val = random.randint(0x4E00, 0x9FBF)

    return unichr(val)  

 

  @staticmethod

  def GB2312():

    head = random.randint(0xB0, 0xCF)

    body = random.randint(0xA, 0xF)

    tail = random.randint(0, 0xF)

    val = ( head << 8 ) | (body << 4) | tail

    str = "%x" % val

    return str.decode('hex').decode('gb2312')  

 

class ImageChar():

  def __init__(self, fontColor = (0, 0, 0),

                     size = (100, 40),

                     fontPath = 'wqy.ttc',

                     bgColor = (255, 255, 255),

                     fontSize = 20):

    self.size = size

    self.fontPath = fontPath

    self.bgColor = bgColor

    self.fontSize = fontSize

    self.fontColor = fontColor

    self.font = ImageFont.truetype(self.fontPath, self.fontSize)

    self.image = Image.new('RGB', size, bgColor)  

 

  def rotate(self):

    self.image.rotate(random.randint(0, 30), expand=0)  

 

  def drawText(self, pos, txt, fill):

    draw = ImageDraw.Draw(self.image)

    draw.text(pos, txt, font=self.font, fill=fill)

    del draw  

 

  def randRGB(self):

    return (random.randint(0, 255),

           random.randint(0, 255),

           random.randint(0, 255))  

 

  def randPoint(self):

    (width, height) = self.size

    return (random.randint(0, width), random.randint(0, height))  

 

  def randLine(self, num):

    draw = ImageDraw.Draw(self.image)

    for i in range(0, num):

      draw.line([self.randPoint(), self.randPoint()], self.randRGB())

    del draw  

 

  def randChinese(self, num):

    gap = 5

    start = 0

    for i in range(0, num):

      char = RandomChar().GB2312()

      x = start + self.fontSize * i + random.randint(0, gap) + gap * i

      self.drawText((x, random.randint(-5, 5)), RandomChar().GB2312(), self.randRGB())

      self.rotate()

    self.randLine(18)  

 

  def save(self, path):

    self.image.save(path)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
python操作 hbase 数据的方法
Dec 18 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
python基本语法练习实例
Sep 19 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
python实现顺时针打印矩阵
Mar 02 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
Python从函数参数类型引出元组实例分析
May 28 Python
python scrapy爬虫代码及填坑
Aug 12 Python
基于Python生成个性二维码过程详解
Mar 05 Python
Python基础详解之邮件处理
Apr 28 Python
Python入门篇之面向对象
Oct 20 #Python
Python入门篇之数字
Oct 20 #Python
Python入门篇之正则表达式
Oct 20 #Python
Python入门篇之文件
Oct 20 #Python
Python入门篇之函数
Oct 20 #Python
Python入门篇之条件、循环
Oct 17 #Python
Python入门篇之字典
Oct 17 #Python
You might like
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
js运动事件函数详解
2016/10/21 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
python开发之list操作实例分析
2016/02/22 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python中的默认参数实例分析
2018/01/29 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
django反向解析和正向解析的方式
2018/06/05 Python
python2.7实现邮件发送功能
2018/12/12 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
自我评价的正确写法
2013/09/19 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
李培根演讲稿
2014/05/22 职场文书
八月一日观后感
2015/06/10 职场文书
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android