Python凯撒密码 [英] Python Caesar cypher
本文介绍了Python凯撒密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要它在一个dict的上下,但不能说如何把两个一个dict。
import string
def Coder(shift):
alpha = string.ascii_lowercase
ALPHA = string.ascii_uppercase
如果范围(0,26):
返回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
如果0 <= shift< 26:
unshifted_letters = ALPHA + alpha
shif_letters = ALPHA [shift:] + ALPHA [:shift] + alpha [shift:] + alpha [:shift]
return dict(zip(unshifted_letters ,shif_letters))
但正如其他人所说,更好的解决方案是 encode('rot13')
和 string.maketrans
。特别是,这个:rot_13 rot13 Unicode字符串返回操作数的Caesar-cypher加密。
I am trying to make a dict that can apply a Caesar Cypher to a letter. I need it to be in one dict for upper and lower but cannot figure put how to get both into one dict.
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]))
解决方案
Something like this:
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))
But as others have said, better solutions are encode('rot13')
and string.maketrans
. In particular, this: "rot_13 rot13 Unicode string Returns the Caesar-cypher encryption of the operand".
这篇关于Python凯撒密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文