python中执行mysql遇到like 怎么办 ?sql = "SELECT * FROM T_ARTICLE WHERE title LIKE '%%%%%s%%%%'" % searchStr执行成功,print出SQL语句之后为:SELECT * FROM T_ARTICLE WHERE title LIKE '%%生活%%'原因:Python在执行sql语句的时候,同样也会有%格式化的问题,仍然需要使用%%来代替%。因此要保证在执行sql语句的时候格式化正确。而不只是在sql语句(字符串)的时候正确。import Image, ImageDraw, ImageFont, ImageFilterimport random# 随机字母def rndChar(): return chr(random.randint(65, 90))# 随机颜色1def rndColor(): return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))# 随机颜色2def rndColor2(): return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))# 240 * 60width = 60 * 4height = 60image = Image.new('RGB', (width, height), (255,255,255))# 创建Font对象font = ImageFont.truetype('/usr/share/fonts-droid/truetype/DroidSansFallback.ttf', 36)# 创建Draw对象draw = ImageDraw.Draw(image)# 填充每个像素for x in range(width): for y in range(height): draw.point((x, y),fill=rndColor())# 输出文字for t in range(4): draw.text((60 * t +10, 10), rndChar(), font=font, fill=rndColor2())# 模糊image = image.filter(ImageFilter.BLUR)image.save('/home/godben/code.jpg', 'jpeg')#!/usr/bin/env python#coding=utf-8import randomfrom PIL import Image, ImageDraw, ImageFont, ImageFilter_letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z_upper_cases = _letter_cases.upper() # 大写字母_numbers = ''.join(map(str, range(3, 10))) # 数字init_chars = ''.join((_letter_cases, _upper_cases, _numbers))def create_validate_code(size=(120, 30), chars=init_chars, img_type="GIF", mode="RGB", bg_color=(255, 255, 255), fg_color=(0, 0, 255), font_size=18, font_type="kk.TTF", length=4, draw_lines=True, n_line=(1, 2), draw_points=True, point_chance = 2): ''' @todo: 生成验证码图片 @param size: 图片的大小,格式(宽,高),默认为(120, 30) @param chars: 允许的字符集合,格式字符串 @param img_type: 图片保存的格式,默认为GIF,可选的为GIF,JPEG,TIFF,PNG @param mode: 图片模式,默认为RGB @param bg_color: 背景颜色,默认为白色 @param fg_color: 前景色,验证码字符颜色,默认为蓝色#0000FF @param font_size: 验证码字体大小 @param font_type: 验证码字体,默认为 ae_AlArabiya.ttf @param length: 验证码字符个数 @param draw_lines: 是否划干扰线 @param n_lines: 干扰线的条数范围,格式元组,默认为(1, 2),只有draw_lines为True时有效 @param draw_points: 是否画干扰点 @param point_chance: 干扰点出现的概率,大小范围[0, 100] @return: [0]: PIL Image实例 @return: [1]: 验证码图片中的字符串 ''' width, height = size # 宽, 高 img = Image.new(mode, size, bg_color) # 创建图形 draw = ImageDraw.Draw(img) # 创建画笔 def get_chars(): '''生成给定长度的字符串,返回列表格式''' return random.sample(chars, length) def create_lines(): '''绘制干扰线''' line_num = random.randint(*n_line) # 干扰线条数 for i in range(line_num): # 起始点 begin = (random.randint(0, size[0]), random.randint(0, size[1])) #结束点 end = (random.randint(0, size[0]), random.randint(0, size[1])) draw.line([begin, end], fill=(0, 0, 0)) def create_points(): '''绘制干扰点''' chance = min(100, max(0, int(point_chance))) # 大小限制在[0, 100] for w in xrange(width): for h in xrange(height): tmp = random.randint(0, 100) if tmp > 100 - chance: draw.point((w, h), fill=(0, 0, 0)) def create_strs(): '''绘制验证码字符''' c_chars = get_chars() strs = ' %s ' % ' '.join(c_chars) # 每个字符前后以空格隔开 font = ImageFont.truetype(font_type, font_size) font_width, font_height = font.getsize(strs) draw.text(((width - font_width) / 3, (height - font_height) / 3), strs, font=font, fill=fg_color) return ''.join(c_chars) if draw_lines: create_lines() if draw_points: create_points() strs = create_strs() # 图形扭曲参数 params = [1 - float(random.randint(1, 2)) / 100, 0, 0, 0, 1 - float(random.randint(1, 10)) / 100, float(random.randint(1, 2)) / 500, 0.001, float(random.randint(1, 2)) / 500 ] img = img.transform(size, Image.PERSPECTIVE, params) # 创建扭曲 img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) # 滤镜,边界加强(阈值更大) return img, strsif __name__ == "__main__": code_img = create_validate_code() code_img[0].save("xiaorui.cc.gif", "GIF") #coding:utf-8#编写验证码 #随机的数值 #图片import random #python随机模块from PIL import Image #图片from PIL import ImageDraw #画笔from PIL import ImageFont #字体from PIL import ImageFilter #滤镜 验证码扭曲#验证码编写步骤#1、定义随机数sample_text = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"sample_list = random.sample(sample_text,4)randomText = "".join(sample_list)#2、定义图片img = Image.new("RGB",(150,50),(255,255,255)) #第一个参数是配色方案 #第二个参数是图片的尺寸px 宽高 #第三个参数是颜色 255,255,255是白色#3、图片上绘制干扰项 #实例化画笔draw = ImageDraw.Draw(img) #绘制干扰线for i in range(random.randint(10,20)): #随机循环1-10次 draw.line( #两个点决定一条线 #每个点有x,y两个值 [ ( random.randint(1,150), # x random.randint(1,150), # y ),#点一 ( random.randint(1,150), # x random.randint(1,150), # y )#点二 ],#一条线 fill = (random.randint(0,255),random.randint(0,255),random.randint(0,255)) #线条颜色 ) #绘制线条 #绘制点for j in range(1000): draw.point( [ random.randint(1, 150), # x random.randint(1, 150), # y ],#一个点 fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) # 线条颜色 )#4、书写文字 #定义字体text = "".join(randomText)font = ImageFont.truetype("simsun.ttc",36) #定义字体draw.text((random.randint(1, 10),random.randint(1, 5)),text,font = font,fill = "green") #书写文字 #文字起始位置 #文字内容 #文字字体 #文字颜色#5、进行滤镜扭曲#定义扭曲的参数params = [ 1-float(random.randint(1,2))/100, 0, 0, 0, 1 - float(random.randint(1, 2)) / 100, float(random.randint(1, 2)) / 100, 0.001, float(random.randint(1, 2)) / 100]#使用滤镜img = img.transform((150,50),Image.PERSPECTIVE,params)img = img.filter(ImageFilter.EDGE_ENHANCE_MORE)#6、查看效果img.show() #展示img.save("%s.jpg"%randomText,"JPEG") #保存,保存路径 # 生成随机验证码图片 import stringfrom random import randint, samplefrom PIL import Image, ImageDraw, ImageFont, ImageFilter# Image 负责处理图片# ImageDraw 画笔# ImageFont 文字# ImageFileter 滤镜 # 定义变量img_size = (150,50) # 定义画布大小img_rgb = (255,255,255) # 定义画布颜色,白色img = Image.new("RGB",img_size,img_rgb) img_text = " ".join(sample(string.ascii_letters+string.digits, 5))# print(img_text.replace(' ','')) # 画图drow = ImageDraw.Draw(img)for i in range(10): # 随机画线 drow.line([tuple(sample(range(img_size[0]),2)), tuple(sample(range(img_size[0]),2))], fill=(0,0,0))for i in range(99): # 随机画点 drow.point(tuple(sample(range(img_size[0]),2)), fill=(0,0,0)) # 文字font = ImageFont.truetype("simsun.ttc", 24) # 定义文字字体和大小drow.text((6,6), img_text, font=font, fill="green") # 扭曲图片和滤镜params = [ 1 - float(randint(1,2)) / 100, 0, 0, 0, 1 - float(randint(1,10)) /100, float(randint(1,2)) / 500, 0.001, float(randint(1,2)) / 500]img = img.transform(img_size, Image.PERSPECTIVE, params)img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) # 展示图片img.show() # 写一个理财计算器,实现将每日/月/年的利息进行复投进行计算 money = float(input('请输入您打算用来投资的本金 \> '))year = int(input('请输入投资期限(单位:年) \> '))rate = float(input('请输入投资年化收益率 \> '))Type = int(input('''1.每日利息复投 2.每月利息复投 3.每年利息复投 请选择复投方式 \> ''')) def day_return(money,year,rate=0.12): '方案:每日利息加入本金复投!' for y in range(year): for day in range(365): money = money*rate/365 + money print('第%d年结束时,本金为:%.2f' % (y+1,money)) def month_return(money,year,rate=0.12): '方案:每月利息加入本金复投!' for y in range(year): for month in range(12): money = money*rate/12 + money print('第%d年结束时,本金为:%.2f' % (y+1,money)) def year_return(money,year,rate=0.12): '方案:每年利息加入本金复投!' for y in range(year): money = money*rate + money print('第%d年结束时,本金为:%.2f' % (y+1,money)) if Type == 1: day_return(money,year,rate)elif Type == 2: month_return(money,year,rate)elif Type == 3: year_return(money,year,rate)else: print('输入有误!')# 百度翻译# Python 3.5.1 from urllib import request, parseimport json url = 'http://fanyi.baidu.com/v2transapi'context = input('请输入需要翻译的内容 :\> ') if context >= '\u4e00' and context # 判断输入内容是否为汉字 From,To = 'zh','en'else: From,To = 'en','zh' data = { 'query':context, 'from':From, 'to':To, 'transtype':'translang', 'simple_means_flag':3}data = parse.urlencode(data).encode('utf-8') r = request.Request(url,data)r.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0')html = request.urlopen(r).read().decode('utf-8')Result = json.loads(html) print('翻译结果为:' + Result['trans_result']['data'][0]['dst'])# 简单的拼手气红包 import randomfrom time import sleep # 所有涉及金额的浮点数都需要用 round 方法保留2位小数,避免出现最终结果多出0.01amount = round(float(input('请设置红包的金额 \> ')),2)num = int(input('请设置红包的数量 \> '))hb_dict = {}xing = '赵钱孙李周吴郑王'ming = '一二三四五六七八九十' while num: xingming = random.choice(xing)+random.choice(ming)+random.choice(ming) if xingming in hb_dict.keys(): xingming = random.choice(xing)+random.choice(ming)+random.choice(ming) num -= 1 if num == 0: print('%s抢到红包%.2f元 红包抢完了!' % (xingming,amount)) hb_dict[amount] = xingming amount -= amount elif num > 0: hb = round(random.uniform(0.01,amount)/num,2) hb_dict[hb] = xingming # 算法: 在0.01到红包总金额之间随机一个浮点数 / 红包剩余个数 print('%s抢到红包%.2f元 剩余%d个!' % (xingming,hb,num)) amount = round((amount - hb),2) sleep(1) # 转置字典中的 key / value# hb_dict2 = {value:key for key,value in hb_dict.items()}max_hb = max(hb_dict.items())print('%s运气最佳 抢得%.2f元!!' % (max_hb[1],max_hb[0]))随机生成200个序列号import randomimport string for num in range(200): numlist = [] for i in range(12): numlist.append(random.choice(string.ascii_uppercase+string.digits)) # print(''.join(numlist)) with open('200.txt', 'a') as f: # 'a' 表示追加写入 f.write(''.join(numlist)+'\n') f.closeimport Image, ImageFont, ImageDrawtext = "EwWIieAT"im = Image.new("RGB",(130,35), (255, 255, 255))dr = ImageDraw.Draw(im)font = ImageFont.truetype("kk.TTF", 24)#simsunb.ttf 这个从windows fonts copy一个过来dr.text((10, 5), text, font=font, fill="#000000")im.show()im.save("t.png") 缩略图from PIL import Imageimg = Image.open('god.jpg')img = img.resize((250, 156), Image.ANTIALIAS)img.save('sharejs_small.jpg') PythonWare公司提供了免费的图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,本文介绍了使用PIL工具包中的Image模块进行比对的过程。#!/usr/bin/env python# -*- coding:utf-8 -*-import Image, ImageChopsimg1 = Image.open(r'C:\cygwin\tmp\Sonic1.jpg') Capture1.PNGimg2 = Image.open(r'C:\cygwin\tmp\Sonic2.jpg') Diff.jpgimg3 = ImageChops.invert(img2)Image.blend(img1,img3,0.5).show() PIL处理图片之加水印#!/usr/bin/env python# -*- coding: utf-8 -*-import Image, ImageEnhance, ImageDraw, ImageFont def text2img(text, font_color="Blue", font_size=25): """生成内容为 TEXT 的水印""" font = ImageFont.truetype('simsun.ttc', font_size) #多行文字处理 text = text.split('\n') mark_width = 0 for i in range(len(text)): (width, height) = font.getsize(text[i]) if mark_width mark_width = width mark_height = height * len(text) #生成水印图片 mark = Image.new('RGBA', (mark_width,mark_height)) draw = ImageDraw.ImageDraw(mark, "RGBA") draw.setfont(font) for i in range(len(text)): (width, height) = font.getsize(text[i]) draw.text((0, i*height), text[i], fill=font_color) return markdef set_opacity(im, opacity): """设置透明度""" assert opacity >=0 and opacity if im.mode != "RGBA": im = im.convert('RGBA') else: im = im.copy() alpha = im.split()[3] alpha = ImageEnhance.Brightness(alpha).enhance(opacity) im.putalpha(alpha) return imdef watermark(im, mark, position, opacity=1): """添加水印""" try: if opacity mark = set_opacity(mark, opacity) if im.mode != 'RGBA': im = im.convert('RGBA') if im.size[0] print "The mark image size is larger size than original image file." return False #设置水印位置 if position == 'left_top': x = 0 y = 0 elif position == 'left_bottom': x = 0 y = im.size[1] - mark.size[1] elif position == 'right_top': x = im.size[0] - mark.size[0] y = 0 elif position == 'right_bottom': x = im.size[0] - mark.size[0] y = im.size[1] - mark.size[1] else: x = (im.size[0] - mark.size[0]) / 2 y = (im.size[1] - mark.size[1]) / 2 layer =Image.new('RGBA', im.size,) layer.paste(mark,(x,y)) returnImage.composite(layer, im, layer) exceptExceptionas e:print">>>>>>>>>>> WaterMark EXCEPTION: "+ str(e) returnFalsedef main(): text = u'Linsir.水印.\nvi5i0n@hotmail.com'# text = open('README.md').read().decode('utf-8')# print text im =Image.open('origal.png') mark = text2img(text) image = watermark(im, mark,'center',0.9) if image: image.save('watermark.png') image.show()else:print"Sorry, Failed."if __name__ =='__main__': import sys, Image img = Image.open(sys.argv[1]).convert('YCbCr') w, h = img.size data = img.getdata() cnt = 0 for i, ycbcr in enumerate(data): y, cb, cr = ycbcr if 86 cnt += 1 print '%s %s a porn image.'%(sys.argv[1], 'is' if cnt > w * h * 0.3 else 'is not') 运行:E:/>c:/python25/python test_skin.py 114.jpeg 114.jpeg is a porn image. import pymysql # 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库db=pymysql.connect(host="127.0.0.1",user="root",passwd="123456",db="mysql",charset='utf8' )# 使用 cursor()方法创建一个游标对象 cursorcursor = db.cursor()# 使用 execute()方法执行 SQL 查询cursor.execute("SELECT user,host,password from user")# 使用 fetchall()方法获取所有行.data = cursor.fetchall()print(data)cursor.close()#关闭游标db.close()#关闭数据库连接import pymysql db = pymysql.connect(host='10.3.1.174',user='root',password='123456',db='test')cursor = db.cursor()# SQL 插入数据sql = "INSERT INTO employee (first_name, last_name, age, sex, income) " \ "VALUES ('w', 'Eason', '29', 'M', '8000')"# SQL 更新数据# sql = "UPDATE employee first_name = Wang WHERE first_name = w"# SQL 删除数据# sql = "DELETE FROM employee WHERE age > 20" try: cursor.execute(sql) db.commit()except: db.rollback() db.close()