Ross Wan's World!

Python, Ajax, PHP and Linux.

The Python Challenge Lv.5

Posted by Ross Wan 于 2011/08/24

Lv.5

打开第5关的网页,显示的是一个山丘的图片,提示”pronounce it”???完全没有头绪.再看看网页的源代码,发现一个”可疑”的标签:

<peakhell src=”banner.p”/>

下载到 banner.p 这个文件,用文本编辑器打开,又是一堆字符,似有似无规律的字符.再看看网页源代码里的一行注释:

<!– peak hell sounds familiar ? –>

peak hell 的发音似什么?完全没有头绪……最后,Google到一点提示,确是无奈之举:< 原来关键是 pickle,它的发音跟 ‘peak hell’ 有点相似.真是晕倒~~~既然有这个关键的提示,下面就容易得多了:

import pickle

if __name__ == '__main__':
    f = open('banner.p', 'rb')
    obj = pickle.load(f)
    print('Objcet type: %s\n\n' %type(obj))
    print(obj)
    f.close()

首先,取得的对象是一个 list,而list的元素是由二元表列组成,而且,二元表列的第一个元素是” “或者”#”,第二个元素是数字.可猜测这是一个打印列表:

import pickle

if __name__ == '__main__':
    f = open('banner.p', 'rb')
    obj = pickle.load(f)
    f.close()
    new_file = open('new_file.txt', 'w')
    for line in obj:
        new_file.write(''.join([x*y for x,y in line]))
        new_file.write('\n')
    new_file.close()

上面的代码会将打印的字符写入 “new_file.txt” 这个文件里,不直接显示在系统 console 里主要是因为因某些 console 会自动断行,而显示不到最终的结果.

用编辑器打开(记得关闭编辑器的自动换行),会出现一个漂亮的图形,结果显而易见:

                                                                                              
              #####                                                                      #####
               ####                                                                       ####
               ####                                                                       ####
               ####                                                                       ####
               ####                                                                       ####
               ####                                                                       ####
               ####                                                                       ####
               ####                                                                       ####
      ###      ####   ###         ###       #####   ###    #####   ###          ###       ####
   ###   ##    #### #######     ##  ###      #### #######   #### #######     ###  ###     ####
  ###     ###  #####    ####   ###   ####    #####    ####  #####    ####   ###     ###   ####
 ###           ####     ####   ###    ###    ####     ####  ####     ####  ###      ####  ####
 ###           ####     ####          ###    ####     ####  ####     ####  ###       ###  ####
####           ####     ####     ##   ###    ####     ####  ####     #### ####       ###  ####
####           ####     ####   ##########    ####     ####  ####     #### ##############  ####
####           ####     ####  ###    ####    ####     ####  ####     #### ####            ####
####           ####     #### ####     ###    ####     ####  ####     #### ####            ####
 ###           ####     #### ####     ###    ####     ####  ####     ####  ###            ####
  ###      ##  ####     ####  ###    ####    ####     ####  ####     ####   ###      ##   ####
   ###    ##   ####     ####   ###########   ####     ####  ####     ####    ###    ##    ####
      ###     ######    #####    ##    #### ######    ###########    #####      ###      ######

可见,下一关的网址是: http://www.pythonchallenge.com/pc/def/channel.html

Have fun :)

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

 
%d 博主赞过: