1. 程式人生 > >Python之路---一些小練習

Python之路---一些小練習

終於又迎來了一個暑假,這個暑假的任務很重。其中一項就是將自己的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) #將這個子矩形旋轉180im.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)]