the python challenge

1:   第一题:图片左左上角为0 html 地址为0.html  图片内容为 2的38次幂  利用python 2 ** 38 得出 274877906944 替换地址栏中的0得出下一页地址:http://www.pythonchallenge.com/pc/def/274877906944 .html


2:第二题为加密解密问题 :

 enc_str = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."

out_str = ""


for letter in enc_str:
    letter_ = ord(letter) + 2
    if ord(letter) >= 97 and ord(letter) <= 122:
        if letter_ >= 122:
            letter_ = letter_ - 26
        print chr(letter_)
        out_str += chr(letter_)
    else:
        out_str += letter


print out_str

为:i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

将地址中map 按照图片的加密算法 得出下一页地址:http://www.pythonchallenge.com/pc/def/ocr.html

3,查看页面源代码。可以看到一大最的特殊字符。根据提示是找出所有字母中频率最少的的字母,我用了一个比较笨的办法,得出equality:



with open("cha3.txt", "r") as f:
    file_content = f.read()


rate_dict = {}


for letter in file_content:
    if letter in rate_dict:
        rate_dict[letter] = rate_dict[letter] +1
    else:
        rate_dict[letter] = 1

4: 第四题是正在表达式问题 ,找出一个小写字母 并且两边各有三个大写字母, 得出linkedlist。

import re


file_content = ""


with open("cha4.txt", "r") as f:
    file_content = f.read()


test_re = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]')


result = test_re.findall(file_content)


if result:
    print "".join(result)


5:



import urllib2




need_devide =True
def get_nothing():
    nothing = 69288
    for x in xrange(400):
        url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=%s" % nothing
        content = urllib2.urlopen(url).read()
        nothing = content.split(" ")[-1]
        print x, nothing, content
        if not nothing.isdigit():
            if need_devide:
                nothing = int(nothing) / 2
                need_devide = False
            else:
                break




if __name__ == "__main__":
    get_nothing()





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值