【python小练】0010

第 0010 题:使用 Python 生成类似于下图中的字母验证码图片

思路:

1. 随机生成字符串

2. 创建画布往上头写字符串

3. 干扰画面

code:

# codeing: utf-8

from PIL import Image, ImageDraw, ImageFont, ImageFilter
import string
import random

def get4char():
    return [random.choice(string.ascii_letters) for _ in range(4)]  # 可以把‘_’换做任意字母,‘_’说明后续不用

def getcolor():
    return random.randint(30, 100), random.randint(30, 100), random.randint(30, 100)

def getpicture():
    width = 240
    height = 60

    image = Image.new(‘RGB‘, (width, height), (180, 180, 180))
    font = ImageFont.truetype(‘arial.ttf‘, 40)

    draw = ImageDraw.Draw(image)
    code = get4char()
    for ch in range(4):
        draw.text((60 * ch,30), code[ch], font=font, fill=getcolor())

    for _ in range(random.randint(1500, 3000)):
        draw.point((random.randint(0, width), random.randint(0, height)), fill=getcolor())

    image = image.filter(ImageFilter.BLUR)
    image.save("".join(code) + ‘.jpg‘)

getpicture()

Notes:

1. string.ascii_letters,大小写英文字母集合字符串

2. random.choice():Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.

3. random.randint():Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1).

4. image.new(‘RGB‘, (w,h), (r,g,b))

result:

我觉得自己应该去把tutorial从头到尾先看一遍= - =

下一篇写怎么识别验证码咯。

时间: 2024-11-04 14:38:13

【python小练】0010的相关文章

【python小练】0013

第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 科科...妹子就算了,大晚上的爬点吃的吧.食物图集:抿一口,舔一舔,扭一扭~·SCD 写个简单的爬图爬虫方法还蛮多的. 这次尝试用urlib.request来实现. 读取图片网源码,利用re.compile找到其中符合要求的img标签生成图片list,最后用request.urlretrieve下载图片到本地. Code: import os import re import urllib.reque

【python小练】0001

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? # coding = utf-8 __author__= 'liez' import random def make_number(num, length): str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' a = []

【python小练】0002

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中. . . .(一脸懵逼) Python访问数据库:(廖雪峰python教程) 1. SQLite是一种轻量级的嵌入式数据库,其数据库就是一个文件.Python中内置SQLite3,无需另外安装. 要操作数据库,首先要连接到数据库,连接称作“Connection”. 连接数据库后,需要打开游标,称为“Cursor”,通过“Cursor”执行SQL语句,获得执行结果. 实践: # 导入SQLi

【python小练】0014

第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示: { "1":["张三",150,120,100], "2":["李四",90,99,95], "3":["王五",60,66,68] } 请将上述内容写到 student.xls 文件中,如下图所示: 这题用到之前提到的python第三方库xlwt.(= - =pip一安真的是一劳永逸

Python小练:(三:打包、eavl()函数、冒泡排序)

运行结果: —————————————————————————————————————————— 运行结果: —————————————————————————————————————————— # 第三题:使用python实现冒泡排序def BubbleSort(list): long = len(list) for i in range(0,long): for j in range(i,long): if list[i] < list[j]: list [i],list[j] = list

【python小练】图片爬虫之BeautifulSoup4

Python3用不了Scrapy! Python3用不了Scrapy! Python3用不了Scrapy! [重要的事情说三遍,据说大神们还在尝试把scrapy移植到python3,特么浪费我半个小时pip scrapy = - =] 先前用正则表达式匹配出符合要求的<img>标签真的超麻烦的,正则式错一点点都要完蛋,用bs4感觉方便很多. bs4是将整个html拆解成字典和数组,所以处理起来比较简单. 以这个页面为例(毕竟堆糖本命):http://www.duitang.com/search

【python小练】0020

第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年10月01日-2014年10月31日通话详单.xls 文件.写代码,对每月通话时间做个统计. 刚好用的是联通呢,科科. Ok,拿到数据了,保存为文件“comu.xls”,现在打算: 1. 统计通话总时长 2. 统计主叫和被叫次数 3. 统计通话总费用 4. pip了matplotlib,试着把数据做成图表(

【python小练】0012题

第 0012 题: 敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」. 把上一题的代码改一下就可以咯. Code: def filtertext(x): with open(x, 'r') as f: text = f.read() userinput = input('myinput:') for i in text.split('\n'): if i in

【python小练】0017-将xls文件内容写入xml文件中

第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如 下所示: <?xml version="1.0" encoding="UTF-8"?> <root> <students> <!-- 学生信息表 "id" : [名字, 数学, 语文, 英文] --> { "1" : ["张三", 150