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