pythonchallenge_2

def decode(aString):
    result=''
    for i in range(len(aString)):
        if ord(aString[i]) >=97 and ord(aString[i])<=122:
            if ord(aString[i])+2>=122:
                result+=chr((ord(aString[i])+2)%122+96)
            else:
                result+=chr(ord(aString[i])+2)
        else:
            result+=aString[i]
    print result

 观察图可以看出,类似于凯撒密码之类的,由于字符串不可变,不接受赋值运算,所以利用了一个新的字串,逐步的解析原来的字符串,然后按照规则将对应的value的字母逐个添加到新的字符串中。

其中会有一个循环的操作,超过之后是其他的字符不是字母,需要一个求模的运算。

最后 ,翻译过来之后说建议使用。string.maketrans() is recommended

你可能感兴趣的:(python)