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实现的寻找前5个默尼森数算法示例
Mar 25 Python
Python统计单词出现的次数
Apr 04 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
Python常用的json标准库
Feb 19 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
在notepad++中实现直接运行python代码
Dec 18 Python
Pycharm新手使用教程(图文详解)
Sep 17 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速度全攻略
2006/10/09 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
MySQL最常见的操作语句小结
2015/05/07 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
python求最大值最小值方法总结
2019/06/25 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
毕业生实习鉴定
2013/12/11 职场文书
学生宿舍管理制度
2014/01/30 职场文书
元宵晚会主持词
2014/03/25 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
《法国号》教学反思
2016/02/22 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang