我大学剩下一年半的生活(六)——pythonchallenge之level5

来源:互联网 发布:ios能用java开发吗 编辑:程序博客网 时间:2024/05/03 00:22

python challenge level 5的链接为:http://www.pythonchallenge.com/pc/def/peak.html

页面上有一副图,图下面是“pronounce it”,这就是页面上的提示,而页面的title是“peak hell”,经过深思熟虑之后我决定还是看一看页面源代码吧。首先就看到了那个注释,peak hell听起来像什么?好吧,我觉得我对python里面有什么该读成这样真心不知到啊,还是看看别的信息吧,第二个映入眼帘的是这段奇怪的代码,点击banner.p看了看,突然就觉得这些乱码令我想到了python当中的“泡菜(pickle)”模块,好吧,用google翻译听了一下pickle和peakhell,读音确实很相像,想来这一题就是考“泡菜”模块了。

#! /usr/bin/env pythonimport picklef = open('banner.p')print pickle.load(f)f.close()

banner.p这个文件被我下载下来了,如果不下在文件将文件的内容复制出来然后使用loads函数处理字符串是一样的效果。不过看到打印出来的结果时我顿时就凌乱了。。。好吧,将输出重定向到5.up这个文件中,然后按照一个list一行整理了一下,刚开始会有一种不知所措的感觉,后来查了一下,python challenge 第五关解法 http://www.pythonchallenge.com虽然没看具体文章,但是看到了一张图,这张图给了我想法,这张图就是结果,通过观察会发现所有包含在一个list中的list,这应该是每一个list表示一段,然后每一段合起来就能表示一整个完整的信息。再仔细算一下,每个内部list中的数字加起来都是95。于是就有了下面一段代码:

#! /usr/bin/env pythonimport picklef = open('banner.p')for line in pickle.load(f):    print ''.join([x[0] * x[1] for x in line])f.close()

显示结果如下:
result

因此,下一题的链接为:http://www.pythonchallenge.com/pc/def/channel.html