PythonChallenge 挑战之路 Level-21

这一关没有网页,谜面就是上一关的压缩包解压后的一个文件:package.pack,从文件名可以想到需要解压数据。给出的提示有2条:1.我们小时候经常玩的游戏;2.不知道怎么办的时候,我通常往回看。

所以题目的意思应该就是需要对这个文件中的数据不断解压,或是倒序。但是到底采用什么样的解压方法就不知道了,网上搜了一下,http://past.makto.me/post/2011-11-27/19303433 讲的挺清楚的。主要就是zlib和bz2两个模块,代码如下:

import zlib,bz2

f = open(r'package.pack','rb').read()
log = ''
s = [' ','b','\n']
decom = [zlib.decompress, bz2.decompress]
revers = False
while True:
    index = -1
    for i in decom:
        index+=1
        try:
            f = i(f)
            revers = False
            break
        except:
            continue
    else:
        if not revers:
            f = f[::-1]
            index +=1
            revers = True
        else:
            print f
            break
      
    log+=s[index]

print log
最后解压的结果为:look at your logs

      bbb          bbb      bbbbbbbb    bbbbbbbb    bbbbbbbbbb  bbbbbbbb
    bbbbbbb      bbbbbbb    bbbbbbbbb   bbbbbbbbb   bbbbbbbbb   bbbbbbbbb
   bb     bb    bb     bb   bb      bb  bb      bb  bb          bb      bb
  bb           bb       bb  bb      bb  bb      bb  bb          bb      bb
  bb           bb       bb  bbbbbbbbb   bbbbbbbbb   bbbbbbbb    bbbbbbbbb
  bb           bb       bb  bbbbbbbb    bbbbbbbb    bbbbbbbb    bbbbbbbb 
  bb           bb       bb  bb          bb          bb          bb   bb 
   bb     bb    bb     bb   bb          bb          bb          bb    bb 
    bbbbbbb      bbbbbbb    bb          bb          bbbbbbbbb   bb     bb 
      bbb          bbb      bb          bb          bbbbbbbbbb  bb      bb
所以答案就是copper


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值