我正在尝试实施一个凯撒密码。
我试图在函数中返回消息,但是我收到一条错误消息(外部函数)。有人可以帮忙吗?
提前致谢
cat
cate
catec
catecv
message = input("type message ")
shift = int(input("Enter number to code "))
message = message.lower() #convets to lower case
print (message)
for a in message:
if a in "abcdefghijklmnopqrstuvwxyz":
number = ord(a)
number += shift
if number > ord("z"):
number -= 26
elif number < ord("a"):
number += 26
message = message + (chr ( number))
print (message)
答案 0 :(得分:6)
这是使用str.translate()
的Python 3 Caesar密码实现:
#!/usr/bin/env python3
import string
def caesar(plaintext, shift, alphabet=string.ascii_lowercase):
shifted_alphabet = alphabet[shift:] + alphabet[:shift]
return plaintext.translate(plaintext.maketrans(alphabet, shifted_alphabet))
message = input("type message to encode")
shift = int(input("Enter number to code "))
print(caesar(message.lower(), shift))