数字加减验证码 python
时间: 2023-10-20 20:15:30 浏览: 40
以下是一个使用Python生成数字加减验证码的示例代码:
```python
import random
from PIL import Image, ImageDraw, ImageFont
def generate_captcha():
# 定义验证码的宽度和高度
width, height = 120, 50
# 创建一张空白图片
image = Image.new('RGB', (width, height), color = (255, 255, 255))
# 创建一个绘图对象
draw = ImageDraw.Draw(image)
# 定义字体
font = ImageFont.truetype('arial.ttf', 30)
# 定义数字和操作符
digits = [str(i) for i in range(10)]
operators = ['+', '-']
# 随机生成两个数字和一个操作符
num1 = random.choice(digits)
num2 = random.choice(digits)
operator = random.choice(operators)
# 计算表达式的值
if operator == '+':
result = int(num1) + int(num2)
else:
result = int(num1) - int(num2)
# 绘制表达式
expression = f'{num1} {operator} {num2} = ?'
draw.text((10, 10), expression, font = font, fill = (0, 0, 0))
# 绘制干扰线
for i in range(5):
x1, y1 = random.randint(0, width // 2), random.randint(0, height)
x2, y2 = random.randint(width // 2, width), random.randint(0, height)
draw.line((x1, y1, x2, y2), fill = (0, 0, 0), width = 2)
# 返回验证码图片和表达式的结果
return image, result
```
该函数会返回一个PIL图片对象和表达式的结果。可以将图片对象保存为文件,也可以将其直接显示在屏幕上。示例代码如下:
```python
# 生成验证码
image, result = generate_captcha()
# 保存图片
image.save('captcha.png')
# 显示图片
image.show()
# 打印表达式的结果
print(result)
```
注意:上述代码中使用了PIL库,需要通过pip命令安装。