Python Challenge

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013251692/article/details/78074528

0: 从图片一眼可以看出是需要求2**38,则直接求出值即可
2**38


1:
替换字母时注意特殊值y,z需要分别变换成a,b;并且注意只需要替换字母,里面的括号等特殊值无需变换;如果有大小写区别的话,调用lower()函数转换为小写即可
第一次用循环解题

TheStringInQuestion=r'''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.'''

q=''
for x in TheStringInQuestion:
    if x=='y':
        q=q+'a'
        continue
    if x=='z':
        q=q+'b'
        continue
    if 'a'<=x<='x':
        q=q+chr(ord(x)+2)
        continue
    q=q+x
print(q)

得到:

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.

从当前url得到’map’,使用该方法得到ocr,则得到下一题的url

提示使用string.maketrans( ),但Python自3.4后该方法已经取消了该方法,用内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()代替了该方法,而我使用的是Python3.5

 import string

TheStringInQuestion=r''' 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.'''

table=str.maketrans(string.ascii_lowercase,string.ascii_lowercase[2:]+string.ascii_lowercase[0:2])
answer=TheStringInQuestion.translate(table)
print(answer)

猜你喜欢

转载自blog.csdn.net/u013251692/article/details/78074528