第0-1关

自从自学了python,除了写了一些简单的自动化脚本还没有实际应用过,于是想通过pythonchallenge闯关提升python使用的熟练度。

网址:http://www.pythonchallenge.com/
点击开始挑战,进入第0关。

第0关

链接:http://www.pythonchallenge.com/pc/def/0.html
关卡序号挺有意思,都是按照计算机的编号方式,从0开始的。

image

这关比较简单,2的38次方,通过python交互模式计算2**38即可。

C:\Users\admin>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2**38
274877906944

计算的数值274877906944将第0关链接http://www.pythonchallenge.com/pc/def/0.html中的0替换,回车进入第1关。

第1关

图片.png

思路:这一关规律也比较好找,通过图片可以发现,每个后面的字母在字母表中的顺序比前面多两位,那么先把下面的一串字母转换。转换可以通过ASCII编码,但要注意y和z。
上代码:

str1 = "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."
str2 = ''
for i in str1:
    if i.isalpha() and i != 'y' and i != 'z':
        i_ascii = ord(i)
        j_ascii = i_ascii + 2
        j = chr(j_ascii)
        str2 = str2 + j
    elif i == 'y':
        j = 'a'
        str2 = str2 + j
    elif i == 'z':
        j = 'b'
        str2 = str2 + j
    else:
        j = i
        str2 = str2 + j
print(str2)

得到结果: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,得到第2关的地址http://www.pythonchallenge.com/pc/def/map.html

根据提示,建议使用string.maketrans()方法。用maketrans()方法比较简单,我使用ASCII码转换复杂了很多。

你可能感兴趣的:(第0-1关)