python26个练习题及代码_第1页
python26个练习题及代码_第2页
python26个练习题及代码_第3页
python26个练习题及代码_第4页
python26个练习题及代码_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*第 0000 题:* 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。类似于图中效果例1:# -*- coding: UTF-8 -*- add by zxlfrom PIL import Image,ImageDraw,ImageFont,ImageColor #def add_num(img): # 创建一个Draw对象 draw = ImageDraw.Draw(img) # 创建一个 Font # myfont = ImageFont.truetype(C:/windows/fonts/Arial.ttf, size=40) myfont

2、= ImageFont.truetype(arial.ttf, size=40)#change by zxl 字体ImageFont方法 fillcolor = ImageColor.colormap.get(red) #颜色ImageColor方法 width, height = img.size #Image方法 #draw.text(width-30, 0), 1, font=myfont, fill=fillcolor) draw.text(width - 10, 0), 1, font=myfont, fill=fillcolor) #ImageDraw方法 img.save(wid

3、th - 10.jpg, jpeg)#Image方法 return 0if _name_ = _main_: image = Image.open(test.jpg) #Image方法 add_num(image)例2:使用方法:执行py,将根目录下的目标文件logo.jpg右上角加上红色数字后输出到根目录的output.jpg文件中 0000.图片右上角加数字.py#!/usr/bin/env python#coding: utf-8myPath = /home/bill/Desktop/fontPath = /usr/share/fonts/truetype/ttf-devanagari-

4、fonts/inputFile = logo.jpgoutputFile = output.jpgimport Image, ImageFont, ImageDraw#打开图片im = Image.open(myPath + inputFile)draw = ImageDraw.Draw(im)#根据图片大小确定字体大小fontsize = min(im.size)/4#加文字font = ImageFont.truetype(fontPath + kalimati.ttf, fontsize)draw.text(im.size0-fontsize, 0), 5, font = font, f

5、ill = (256,0,0)im.save(myPath + outputFile,jpeg)*第 0001 题:* 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用*生成激活码*(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?例1:# -*- coding: UTF-8 -*- add by zxldef gen_code(length=8): 将09,az,AZ保存到list中,用random.sample从list中取固定位数 code_list = for i in range(10): code_list.append(st

6、r(i) # print i for i in range(65, 91): code_list.append(chr(i) # print chr(i) for i in range(97, 123): code_list.append(chr(i) myslice = random.sample(code_list, length) veri_code = .join(myslice) return veri_code例2:#!/usr/bin/env python#coding: utf-8import string, random#激活码中的字符和数字field = string.le

7、tters + string.digits#获得四个字母和数字的随机组合def getRandom(): return .join(random.sample(field,4)#生成的每个激活码中有几组def concatenate(group): return -.join(getRandom() for i in range(group)#生成n组激活码def generate(n): return concatenate(4) for i in range(n)if _name_ = _main_: print generate(200)生成的大概是这样子的:*第 0002 题:* 将

8、0001 题生成的 200 个激活码(或者优惠券)保存到 *MySQL* 关系型数据库中。 例1:import mysql.connectordef activationcode2sql(): #打开数据库连接 db=mysql.connector.connect(user=root,password=root,host=localhost,database=words) #使用cursor()方法创建一个cursor对象,来管理查询 cur=db.cursor() #使用execute()方法执行SQL,如果存在则删除 cur.execute(drop table if exists act

9、_code) #使用预处理创建表 cur.execute( create table act_code (id int auto_increment primary key,code varchar(10) f=open(Activation_code.txt) for line in f.readlines(): cur.execute(insert into act_code(code) values(%s),line.strip() f.close() cur.close()if _name_=_main_: activationcode2sql()例2:步骤:首先安装MySQLdb,用

10、pip安装即可然后了解下MySQLdb的操作在代码中引入该库连接数据库,写入数据,关闭连接0002.MySQL操作.py#!/usr/bin/env python#coding: utf-8import MySQLdbimport gennerate_codeHOST = localhostUSER = rootPASSWORD = 000oooPORT = 3306DB = python#连接数据库conn = MySQLdb.connect( host =HOST, user=USER, passwd=PASSWORD, db=DB, port=PORT)cur = conn.cursor

11、()#生成200组激活码codelist = gennerate_code.generate(200)#将生成的激活码插入到表中for i in xrange(200): sql = INSERT INTO code (code) VALUES (%s) % codelisti cur.execute(sql)mit()cur.close()conn.close()其中gennerate_code是Python Show-Me-the-Code 第 0001 题 生成激活码 中的代码*第 0003 题:* 将 0001 题生成的 200 个激活码(或者优惠券)保存到 *Redi

12、s* 非关系型数据库中。跟0002题相似,只不过是把关系型数据库换成了非关系型数据库。 步骤:首先安装Redis和库,用pip安装即可打开radis server然后了解下Redis的操作在代码中引入该库连接数据库,写入数据,保存Python连接redis很方便,操作也跟redis-cli差不多。因为生成的激活码应该是不重复的,所以我选择用set这个数据结构保存redis的set数据类型常用操作有:sadd key member 往集合中key插入成员member,返回实际插入的成员smembers key获取与该key关联的set中所有的成员。sismember key member 检查m

13、ember是否是集合key中的成员 是的话返回1scard key 获取key中成员的数量0003.Redis操作.py#!/usr/bin/env python#coding: utf-8import redisimport gennerate_codeHOST = localhostPORT = 6379#连接到数据库r = redis.Redis(HOST,PORT)#生成200组激活码codelist = gennerate_code.generate(200)#将生成的激活码存入数据库中for i in xrange(200): r.sadd(code,codelisti)r.sav

14、e()中gennerate_code是Python Show-Me-the-Code 第 0001 题 生成激活码 中的代码*第 0004 题:* 任一个英文的纯文本文件,统计其中的单词出现的个数。思路:用正则表达式匹配响应的单词和数字,然后让Counter计算单词的词频,再用most_common方法返回一个按照词频排序的包含该词语和该词语出现的次数的元组的列表。0004.统计单词.py#!/usr/bin/env python#coding: utf-8import refrom collections import CounterFILESOURCE = /home/bill/Deskt

15、op/testarticledef getMostCommonWord(articlefilesource): 输入一个英文的纯文本文件,统计其中的单词出现的个数 pattern = rA-Za-z+|$?d+%?$ with open(articlefilesource) as f: r = re.findall(pattern,f.read() return Counter(r).most_common()if _name_ = _main_: print getMostCommonWord(FILESOURCE)其中的文章是随便从BBC上选的一篇新闻*第 0005 题:* 你有一个目录,

16、装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。思路:遍历给出目录下的图片,把大于iPhone5分辨率的图片都进行缩放。使用Python的PIL库对图片进行处理,IPhone5屏幕分辨率为640 1136,将大于该分辨率的图片按照一定比例缩放至适合大小并保存。0005.批量图片处理.py#!/usr/bin/env python#coding: utf-8import Image, os# 源目录myPath = /home/bill/Pictures/# 输出目录outPath = /home/bill/Pictures/output/def processImage(

17、filesource, destsource, name, imgtype): filesource是存放待转换图片的目录 destsource是存放输出转换后图片的目录 name是文件名 imgtype是文件类型 imgtype = jpeg if imgtype = .jpg else png #打开图片 im = Image.open(filesource + name) # 缩放比例 rate = max(im.size0/640.0 if im.size0 640 else 0, im.size1/1136.0 if im.size1 1136 else 0) if rate: im.thumbnail(im.size0/rate, im.size1/rate) im.save(destsource + name, imgtype)d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论