今天在网上做了一道题,大意是a转换成c,b转换成d的加密方法。
字符串s是经过转换的一串编码,要求转换回原文。
第一步是定义一个方法,通过ascii编码得到相应的char。
def tran(asciiNum):
if asciiNum == 121 or asciiNum == 122:
return asciiNum-24
# (121和122是y和z两个字母,需要向前转换)
elif asciiNum<121 and asciiNum>=97:
return asciiNum+2
# 这里仅针对小写字母,将小写字母向后转换两位
else:
return asciiNum
# 其他不转换
第二步是根据字母,得到的ascii编码
直接使用 ord(char)方法就可以了。
第三步 根据ascii编码,得到字母
直接使用chr(num)方法就可以了。
第四步 进行转换:
def my_print():
s = raw_input("--->")
# 将密文输入
l = len(s)
# 得到长度
for x in xrange(0,l):
print chr(tran(ord(s[x]))),
# 打印出解密后的字符
my_print()
完整代码:
# every letter means letter index + 2
def tran(asciiNum):
if asciiNum == 121 or asciiNum == 122:
return asciiNum-24
# (121和122是y和z两个字母,需要向前转换)
elif asciiNum<121 and asciiNum>=97:
return asciiNum+2
# 这里仅针对小写字母,将小写字母向后转换两位
else:
return asciiNum
# 其他不转换
def my_print():
s = raw_input("--->")
# 将密文输入
l = len(s)
# 得到长度
for x in xrange(0,l):
print chr(tran(ord(s[x]))),
# 打印出解密后的字符
my_print()
my_print()