终于又迎来了一个暑假,这个暑假的任务很重。其中一项就是将自己的python技进一步的提升,所以有了这篇文章。以此来记录我的收获
这篇文章是根据这个 python练习册上 的题目进行的。
1.(题目2)
首先代码如下:
# -*- coding:utf-8 -*- import string import random field = string.letters+string.digits #通过string来实现字母和数字的结合 def getRandom(): return "".join(random.sample(field,4))#sample()从指定序列中随机获取指定长度的片断 def concatenate(group): return "-".join([getRandom() for i in range(group)]) def generate(n): return [concatenate(4) for i in range(n)] print generate(100)这里主要了解了string 和 random 的一些用法,其中还有python的一个高级用法---列表推导
2.(题目1)
由于题目一是个关于图像处理的题目,我想学学关于python中这个优秀的包 PIL(Pillow)
# -*- coding:utf-8 -*- '''关于PIL的使用''' from PIL import Image #eg1 im = Image.open('test.jpg') print im.size #图像的大小(宽和高,单位是像素) print im.format #图像的格式 print im.mode #图像的模式 '''补充: L 灰度图 RGB 真彩色 CMYK pre-press文件 ''' #eg2 im.thumbnail((200,100)) #生成缩略图 im2 = im.save('test2.png') #将图片保存,这里可以将图片转换成为另一个格式 #eg3 box = (100,100,400,400) region = im.crop(box) #crop()可以从图片中提取出一个子矩形 region.show() region = region.transpose(Image.ROTATE_180) #将这个子矩形旋转180度 im.paste(region,box) im3 = im.save('test3.png')PIL还有很多有趣的功能,我之后会再进行补充。明天会学习一些关于数据库的东西(MySQL&Redis)
3.这里记录下两个处理列表的黑魔法:
l = [1, 2, 3] from itertools import product print list(product(l, repeat=2)) # 这个输出[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)] from itertools import combinations print list(combinations(l, 2)) # 这个输出[(1, 2), (1, 3), (2, 3)]