链接:http://www.pythonchallenge.com/pc/def/map.html

解题思路:
1,首先根据字符位移处理注释字符串
#Get ASC2 number of a character
number = ord(char)
#Get the character given by a ASC2 number
char = chr(number)
import string a = """ 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.""" if __name__ == "__main__": r = "" for i in a: if i in string.letters: i = chr(ord(i) + 2) if i > 'z': i = chr(ord(i) - 26) r += i print r |
翻译出: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.
#用提示的string.maketrans()方法: port string url = "map" hint = """ 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. """ trans = string.maketrans("abcdefghijklmnopqrstuvwxyz","cdefghijklmnopqrstuvwxyzab") print(hint.translate(trans)) print(url.translate(trans)) |
#用string.join()方法 简洁的两行代码 import string print(''.join(chr(ord(i) + 2) for i in 'map')) |