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 (1)
Oct 31 Python
python求素数示例分享
Feb 16 Python
python操作日期和时间的方法
Mar 11 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
python实现实时监控文件的方法
Aug 26 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
详解python基础之while循环及if判断
Aug 24 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
Python3 webservice接口测试代码详解
Jun 23 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php验证码实现代码(3种)
2015/09/07 PHP
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
javascript基础知识讲解
2017/01/11 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Python类的继承super相关原理解析
2020/10/22 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
柏林通行证:Berlin Pass
2018/04/11 全球购物
大学生自荐信
2013/12/11 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
领导班子对照检查材料
2014/09/22 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js