我正在尝试制作一个可以将凯撒密码应用于信件的字典。 我需要它在一个字典中用于上下,但无法弄清楚如何将两者放入一个字典中。
import string
def Coder(shift):
alpha = string.ascii_lowercase
ALPHA = string.ascii_uppercase
if shift in range(0,26):
return dict(zip(ALPHA, ALPHA[shift:] + ALPHA[0:shift])), dict(zip(alpha, alpha[shift:] + alpha[0:shift]))
最佳答案
类似这样的事情:
import string
def Coder(shift):
alpha = string.ascii_lowercase
ALPHA = string.ascii_uppercase
if 0 <= shift < 26:
unshifted_letters = ALPHA + alpha
shifted_letters = ALPHA[shift:] + ALPHA[:shift] + alpha[shift:] + alpha[:shift]
return dict(zip(unshifted_letters, shifted_letters))
但正如其他人所说,更好的解决方案是 encode('rot13')
和 string.maketrans
。特别是:“rot_13 rot13 Unicode 字符串返回操作数的凯撒密码加密”。
关于Python 凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15327423/