Python Challenge,一个Programming Game的Site,没事玩玩。
Level-1:
http://www.pythonchallenge.com/pc/def/map.html
字符字典,先翻译hints。
#!/usr/bin/python import string """ Python Challenge, Level 1: http://www.pythonchallenge.com/pc/def/map.html """ def main(): dictionary = {ord(string.ascii_lowercase[i]): \ ord(string.ascii_lowercase[(i+2)%26]) for i in range(26)} text = '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.' print(text.translate(dictionary)) if __name__ == '__main__': main()
根据hints的释义,对url的尾字符串“map”应用该字典转义即可进入下一个level。
Level-2:
http://www.pythonchallenge.com/pc/def/ocr.html
根据hints,查看Page source code后得知是字符查找问题。
#!/usr/bin/python import urllib.request import re """ Python Challenge, Level 2: http://www.pythonchallenge.com/pc/def/ocr.html """ def main(): url = 'http://www.pythonchallenge.com/pc/def/ocr.html' resp = urllib.request.urlopen(url).read().decode() matches = re.findall(r'<!--(.*?)-->', resp, re.DOTALL) result = ''.join(re.findall(r'[a-zA-Z]', matches[1])) print(result) if __name__ == '__main__': main()
得出答案:equality。替换url,顺利进入下一关。