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获取文件ssdeep值的方法
Oct 05 Python
python中sleep函数用法实例分析
Apr 29 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
python机器学习之神经网络(一)
Dec 20 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
使用Python横向合并excel文件的实例
Dec 11 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 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过滤危险html代码的函数
2008/07/22 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python中的rfind()方法使用详解
2015/05/19 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
Python Requests库基本用法示例
2018/08/20 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python列表推导式实现代码实例
2020/09/09 Python
应届毕业生应聘自荐信范文
2014/02/26 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
公司租车协议书
2015/01/29 职场文书
同学聚会邀请函
2015/01/30 职场文书
入党积极分子个人总结
2015/03/02 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
python中mongodb包操作数据库
2022/04/19 Python