连接为:http://www.pythonchallenge.com/pc/ring/bell.html
密码:(repeat,switch)
推荐视频:#28 many pairs ring-ring 铃儿响叮当
————————————————————————————————————————————————
图片是一个瀑布
题目:many pairs ring-ring
提示:RING-RING-RINGsay it out loud
注释:无
这是什么意思啊?很多ring—ring?大声点在提示中。三个ring。百度一下传说RING-RING-RING读着读着会变成green.访问green.html,会提示“yes! green!”从图中也能看出很多绿色的竖条,提取绿通道之后发现那些竖条是成对的,偶数下标的和奇数下标的总是一个暗,一个亮。网页标题也提示pairs,猜想两个一组。
原来是将rgb三色分离,然后再成对比较绿色通道中的颜色值
_______________________________________________________________________________________________
from PIL import Image
#分离三原色通道
im =Image.open('bell.png')
r,g,b = im.split()
#获取绿色通道数据
gdata=list(g.getdata())
print('偶数通道值:',gdata[:16:2])
print('奇数通道值:',gdata[1:16:2])
#比较两行数据
d_value=[c1-c2 for c1,c2 in zip(gdata[::2],gdata[1::2])]
print(d_value[:10])
#把绝对值不等于42的差值存到新的列表
diff=[abs(i) for i in d_value if abs(i) != 42]
print('length:%d'%len(diff),diff)
#转换我字符串
text=bytearray(diff)
print(text)
————————————————————————————————————————————————————————
结果为:
偶数通道值: [55, 73, 120, 60, 76, 114, 59, 119]
奇数通道值: [97, 115, 78, 102, 118, 72, 101, 77]
[-42, -42, 42, -42, -42, 42, -42, 42, 42, -42]
length:24 [119, 104, 111, 100, 117, 110, 110, 105, 116, 40, 41, 46, 115, 112, 108, 105, 116, 40, 41, 91, 48, 93, 32, 63]
bytearray(b'whodunnit().split()[0] ?')
————————————————————————————————————————————————————————
可以看出字符串为:
'whodunnit().split()[0] ?'
whodunnit:凶杀悬疑小说(或电影、戏剧),
看到别人的。就是主要相关人员,Python的发明人为Guido van Rossum,所以答案就是guido啦。
下一关:http://www.pythonchallenge.com/pc/ring/guido.html