Python Challenge 第七关

第七关,只有一张图片,右键源代码也什么都没有,只是这图片上有一行类似马赛克一样的部分。看来答案只有在这张图上找了。下载了图片,去网上搜一下有什么库可以处理图像。搜到了一个PIL,发现安装的pythonxy里面直接有这个库,可以直接用了。

首先用画图,找到这一行马赛克部分的区域:

横向:0-609

纵向:43-53

就先输出一行:

img = Image.open(r'C:\Users\Leo\Desktop\oxygen.png')
data = [img.getpixel((i, 43)) for i in xrange(0, 609)]
print data

得到一个由四元组组成的列表,而且每个四元组前三个数都一样,最后一个数为255,应该表示一组 RGBA 数据。每七个四元组都是一样的。这一步卡了很久,不知道如何进行下去。去网上搜了下,说转换为 ASCII 码,因为 ASCII 码也是255个,就试了下:

img = Image.open(r'C:\Users\Leo\Desktop\oxygen.png')
data = [chr(img.getpixel((i, 43))[0]) for i in xrange(0, 609, 7)]
print ''.join(data)

得到了一行输出:
smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]

看来把这个列表改为 ASCII 码就是答案了:

rst = [105, 110, 116, 101, 103, 114, 105, 116, 121]
msg = [chr(i) for i in rst]
print ''.join(msg)

输出答案:integrity

修改 url 进入下一关:http://www.pythonchallenge.com/pc/def/integrity.html

上一篇:Python Challenge 第四关


下一篇:Python Challenge 第六关