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批量导出导入MySQL用户的方法
Nov 15 Python
深入理解python中的select模块
Apr 23 Python
Python进阶-函数默认参数(详解)
May 18 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
TensorFlow数据输入的方法示例
Jun 19 Python
详解python tkinter教程-事件绑定
Mar 28 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
Python input函数使用实例解析
Nov 22 Python
Python基于httpx模块实现发送请求
Jul 07 Python
python logging模块的使用
Sep 07 Python
python os.listdir()乱码解决方案
Jan 31 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 静态页面中显示动态内容
2009/08/14 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
使用python统计文件行数示例分享
2014/02/21 Python
python+mysql实现简单的web程序
2014/09/11 Python
Python使用MONGODB入门实例
2015/05/11 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python文字转语音实现过程解析
2019/11/12 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
Python如何给你的程序做性能测试
2020/07/29 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
公司前台接待岗位职责
2013/12/03 职场文书
校园达人秀策划书
2014/01/12 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
召开会议通知范文
2015/04/15 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python