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爬虫实现网络股票信息爬取的demo
Jan 05 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
对python使用http、https代理的实例讲解
May 07 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
python如何查看网页代码
Jun 07 Python
Python wordcloud库安装方法总结
Dec 31 Python
Python数据类型最全知识总结
May 31 Python
这样写python注释让代码更加的优雅
Jun 02 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中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python 3中的yield from语法详解
2017/01/18 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Python PIL库图片灰化处理
2020/04/07 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
《再见了,亲人》教学反思
2014/02/26 职场文书
2015年清明节活动总结
2015/02/09 职场文书
清明节寄语2015
2015/03/23 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android