pythonchallenge解法源码(6-10)

第六关

import zipfile

comments = []
num = '90052'
suffix = '.txt'

with zipfile.ZipFile('channel.zip') as zf:
    while True:
        try:
            zi = zf.getinfo(num + suffix) #获取zip文档中指定文件的信息
            comments.append(zi.comment.decode('utf-8'))
            data = zf.read(num + suffix).decode('utf-8') #获取zip文档中分指定文件的二进制数据
            num = data.split(' ')[-1]
        except:
            break
print(''.join(comments))

第七关

import urllib
from PIL import Image

urllib.request.urlretrieve("http://www.pythonchallenge.com/pc/def/oxygen.png","oxygen.png")

with Image.open("oxygen.png",'r') as ig:
    msg = []
    for i in range(0,608,7):
        msg.append(list(ig.getpixel((i,43)))[0])

    answer = ''
    sw = []
    print(msg)
    for i in msg:
        answer += chr(i)

    print(answer)

    l1 = answer[43:-1].split(",")
    for x in l1:
        print(chr(int(x.strip())))

第八关

import requests
import re
import bz2

url = 'http://www.pythonchallenge.com/pc/def/integrity.html'

response = requests.get(url).text
pattern1 = "<!--(.*?)-->"
text = re.findall(pattern1,response,re.S)
print(text)

un = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
pw = b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'
print(bz2.decompress(un))
print(bz2.decompress(pw))

第九关

from PIL import Image,ImageDraw

img = Image.open('good.jpg')
newImg = Image.new('L',img.size)
draw = ImageDraw.Draw(newImg)
draw.line(first,fill=255)
draw.line(second,fill=255)
newImg.show()

第十关

import re

def describe(s):
    return "".join([str(len(m.group(0))) + m.group(1) for m in re.finditer(r"(\d)\1*", s)])

s = "1"

for dummy in range(30):
    s = describe(s)
print(len(s))

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值