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()