gpt4 book ai didi

python - 在 Python 中实现凯撒密码算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:41 25 4
gpt4 key购买 nike

所以我正在尝试编写一个代码,将单词中的每个字母按字母表中的多个字母后移(环绕到末尾)。例如,如果我想平移 2 位并输入 CBE,我应该得到 AZC。或约翰进入 HMFL。我得到了一个只适用于一个字母的代码,我想知道是否有办法为 python 做一个嵌套的 for 循环(可行吗?)

def move(word, shift):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
original = ""
for letter in range(26, len(alphabet)):
if alphabet[letter] == word: #this only works if len(word) is 0, I want to be able to iterate over the letters in word.
original += alphabet[letter-shift]
return original

最佳答案

你可以这样开始

def move(word, shift):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
return "".join([alphabet[alphabet.find(i)-shift] for i in word])

基本上,这个列表推导式构建了一个由单个字母组成的列表。然后,通过 .find 方法找到字母在字母表中的索引。 (index - shift) 是所需的新索引,它是从字母表中提取的。结果列表再次加入并返回。

请注意,它显然不适用于小写输入字符串(如果您希望使用 str.upper 方法)。实际上,这个词应该只包含字母表中的字母。对于句子,该方法需要区别对待空格。

关于python - 在 Python 中实现凯撒密码算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42013270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com