凯撒密码项目问题
Issue with Caesar cypher project
我正在 Python 为我的学校作业制作一个凯撒密码项目,我已经完成了基础,但我对如何向前移动一个字母感到困惑。推荐什么方法?
def encrypt(word):
# Somehow move one letter forward.
secret_word = encrypt(input("Enter word: "))
print(secret_word)
您可以使用 Python 中称为 ord
的东西来获取整数值并将其加一。
这是解决方案:
def encrypt(word):
encrypted = ""
for letter in word:
encrypted += chr(ord(letter) + 1)
return encrypted
如果你想要ord
的倒数,那么你可以使用chr
。
这将是解密函数:
def decrypt(word):
decrypted = ""
for letter in word:
decrypted += chr(ord(letter) - 1)
return decrypted
仅供参考,当在 ord
函数中使用像“a”这样的字母时,它 returns 97
,如果我们要在“a”上使用 decrypt 方法",那么它将 return " ` " 这没有用,但您可以添加一个简单的 if
语句来修复此问题。
我正在 Python 为我的学校作业制作一个凯撒密码项目,我已经完成了基础,但我对如何向前移动一个字母感到困惑。推荐什么方法?
def encrypt(word):
# Somehow move one letter forward.
secret_word = encrypt(input("Enter word: "))
print(secret_word)
您可以使用 Python 中称为 ord
的东西来获取整数值并将其加一。
这是解决方案:
def encrypt(word):
encrypted = ""
for letter in word:
encrypted += chr(ord(letter) + 1)
return encrypted
如果你想要ord
的倒数,那么你可以使用chr
。
这将是解密函数:
def decrypt(word):
decrypted = ""
for letter in word:
decrypted += chr(ord(letter) - 1)
return decrypted
仅供参考,当在 ord
函数中使用像“a”这样的字母时,它 returns 97
,如果我们要在“a”上使用 decrypt 方法",那么它将 return " ` " 这没有用,但您可以添加一个简单的 if
语句来修复此问题。