python中的短Rot(N)解码函数
我对python有点陌生,我想知道如何将这个rot(n)编码函数python中的短Rot(N)解码函数,python,decode,encode,Python,Decode,Encode,我对python有点陌生,我想知道如何将这个rot(n)编码函数 def rot_encode(n): from string import ascii_lowercase as lc, ascii_uppercase as uc lookup = str.maketrans(lc + uc, lc[n:] + lc[:n] + uc[n:] + uc[:n]) return lambda s: s.translate(lookup) print(rot_alpha(1
def rot_encode(n):
from string import ascii_lowercase as lc, ascii_uppercase as uc
lookup = str.maketrans(lc + uc, lc[n:] + lc[:n] + uc[n:] + uc[:n])
return lambda s: s.translate(lookup)
print(rot_alpha(13)('Hello World'))
到解码函数
def rot_encode(n):
from string import ascii_lowercase as lc, ascii_uppercase as uc
lookup = str.maketrans(lc + uc, lc[n:] + lc[:n] + uc[n:] + uc[:n])
return lambda s: s.translate(lookup)
print(rot_alpha(13)('Hello World'))
我不想使用python的内置功能来编码或解码,我想重新创建它
提前感谢您无需重新创建任何内容。只需将字母移到另一个方向,即调用
rot_encode(-13)
来解码先前编码的字符串,而不是rot_encode(13)
x = rot_encode(13)('Hello World')
y = rot_encode(-13)(x)
print(x) # Uryyb Jbeyq
print(y) # Hello World
当然,如果您愿意,也可以将其包装到rot_decode
函数中
def rot_decode(n):
return rot_encode(-n)
你知道
maketrans
和translate
在这里是如何工作的吗?不知道,我是在网上找到的,正在考虑如何转换它。(仍然是noob:p)可能的重复我想自己重新创建它,而不是使用内置函数:/address:当然,在ROT13的特殊情况下,甚至不需要这样做,因为13正好是26的一半(字母表中的字母),因此编码两次也会解码字符串,即ROT13(ROT13(x))==x
。