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 相关文章推荐
Python实现partial改变方法默认参数
Aug 18 Python
python遍历类中所有成员的方法
Mar 18 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python打印输出数组中全部元素
Mar 13 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
python构造IP报文实例
May 05 Python
python接入支付宝的实例操作
Jul 20 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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
大师制作的中短波矿石收音机
2020/04/02 无线电
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
Flask配置Cors跨域的实现
2019/07/12 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
简述数据库的设计过程
2015/06/22 面试题
一套比较完整的软件测试人员面试题
2012/05/13 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
小学生常见病防治方案
2014/06/06 职场文书
支部组织生活会方案
2014/06/10 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
电工实训心得体会
2016/01/14 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP