Python 凯撒·塞弗项目的问题
我正在为我的学校作业制作一个用Python编写的Caesar cypher项目,我已经完成了基础,但我对如何向前推进一个字母感到困惑。推荐什么方法Python 凯撒·塞弗项目的问题,python,caesar-cipher,Python,Caesar Cipher,我正在为我的学校作业制作一个用Python编写的Caesar cypher项目,我已经完成了基础,但我对如何向前推进一个字母感到困惑。推荐什么方法 def encrypt(word): # Somehow move one letter forward. secret_word = encrypt(input("Enter word: ")) print(secret_word) 您可以在Python中使用名为ord的东西来获取整数值并将其加一。 以下是解决方案:
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”的字母时,它返回97
,如果我们在“a”上使用解密方法,那么它将返回“`”,这是不有用的,但是您可以添加一个简单的if
语句来解决此问题。应该注意chr()
是ord的反义词()
;它获取由ord()
返回的代码点,并将其转换为字符串。