本文實(shí)例講述了python3生成隨機(jī)數(shù)的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
該實(shí)例是根據(jù)一本書(shū)上看到過(guò)一個(gè)隨機(jī)數(shù)的小程序,經(jīng)過(guò)自己改動(dòng),變?yōu)榱艘粋€(gè)猜數(shù)字的小游戲,現(xiàn)在在python3下重寫(xiě)了一遍。
這是一個(gè)控制臺(tái)下的猜數(shù)程序,winxp+python3.2+eric5和IDLE測(cè)試通過(guò),但直接用winxp的命令行運(yùn)行有問(wèn)題,原因還未知,慢慢找。ubuntu+python3.1測(cè)試通過(guò)。
具體實(shí)現(xiàn)代碼如下:
import Image,ImageDraw,ImageFont
import random
import math, string?
?
class RandomChar():
? """用于隨機(jī)生成漢字"""
? @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)
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
