时隔两个月, 又重新回来写博客了
今天重新来做这个挑战题目
首先入口地址:http://www.pythonchallenge.com/pc/def/peak.html
打开来看, 没错,你没有看错,只有一副画
然后画的下面 有一句话 "pronounce it", 什么鬼! 它的发音???
只看这个看不出来什么意思.
那么按照以往的经验, 直接F12 看网页源码吧
<html>
<head>
<title>peak hell</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<center>
<img src="peakhell.jpg"/>
<br><font color="#c0c0ff">
pronounce it
<br>
<peakhell src="banner.p"/>
</body>
</html>
<!-- peak hell sounds familiar ? -->
这样明显看到有一个文件 banner.p, 直觉认为需要打开它 :http://www.pythonchallenge.com/pc/def/banner.p
这样我们看到了一个乱码的文本文件
接着这个源码下面有一句提示“peak hell sounds familiar ”! 这一句话就比较重要了
前面说他的发音, 这里提示说, 发音和“peak hell ” 类似, 再结合python的知识, 这一关应该是要用到 pickle 这个包了(我不会告诉你我是查看别人的)!
好了,分析工作完成,将这个文件内容下载到本地,然后执行解析程序如下(报告老板,他是抄的):
#!/usr/bin/python
# coding:utf-8
import pickle
f=open('1.txt')
for line in pickle.load(f):
print ''.join([x[0] * x[1] for x in line])
f.close()
然后得到了下面的结果:
##### #####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
### #### ### ### ##### ### ##### ### ### ####
### ## #### ####### ## ### #### ####### #### ####### ### ### ####
### ### ##### #### ### #### ##### #### ##### #### ### ### ####
### #### #### ### ### #### #### #### #### ### #### ####
### #### #### ### #### #### #### #### ### ### ####
#### #### #### ## ### #### #### #### #### #### ### ####
#### #### #### ########## #### #### #### #### ############## ####
#### #### #### ### #### #### #### #### #### #### ####
#### #### #### #### ### #### #### #### #### #### ####
### #### #### #### ### #### #### #### #### ### ####
### ## #### #### ### #### #### #### #### #### ### ## ####
### ## #### #### ########### #### #### #### #### ### ## ####
### ###### ##### ## #### ###### ########### ##### ### ######
也就是说下一关的地址是:http://www.pythonchallenge.com/pc/def/channel.html
关于它本关更多的解决方案:http://wiki.pythonchallenge.com/index.php?title=Level4:Main_Page
那现在回头来看一下 pickle 这个包是什么意思
百度一下,得到这样的答案
加工数据的,可以用来存取结构化数据。举个例子:
一个字典a = {'name':'Tom','age':22},用pickle.dump存到本地文件,所存数据的结构就是字典,而普通的file.write写入文件的是字符串。读取时,pickle.load返回的是一个字典,file.read返回的是一个字符串。如下代码:
|