我是Python的新手,我正在尝试创建一个Caesar Cipher。到目前为止,我一直在使用自己的Python知识和一些在线资源,我已经设法提出下面的代码。
我希望程序能够同时获取数字和文本值并将它们移动13和5.最初,在测试文本值时,程序似乎可以工作,但在添加代码以包含数字之后它就停止了工作。 / p>
现在,它不会输出任何内容。
我已经包含了代码,我正在使用IDLE 3.6 key ='abcdefghijklmnopqrstuvwxyz'
def encrypt(n, plaintext):
"""Encrypt the string and return the ciphertext"""
result = ''
for l in plaintext.lower():
try:
i = (key.index(l) + n) % 26
result += key[i]
except ValueError:
result += l
return result.lower()
def decrypt(n, ciphertext):
"""Decrypt the string and return the plaintext"""
result = ''
for l in ciphertext:
try:
i = (key.index(l) - n) % 26
result += key[i]
except ValueError:
result += l
return result
def show_result(plaintext, n):
"""Generate a resulting cipher with elements shown"""
encrypted = encrypt(n, plaintext)
decrypted = decrypt(n, encrypted)
print 'Rotation: %s' % n
print 'Plaintext: %s' % plaintext
print 'Encrytped: %s' % encrypted
print 'Decrytped: %s' % decrypted