You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

凯撒密码实现:如何将输入字符匹配字母列表并完成移位

凯撒密码实现方案

核心实现思路

借助alphabet列表的索引定位+取模运算处理字符移位,解决越界问题,具体步骤如下:

  • 获取待加密文本与移位量
  • 初始化空字符串存储加密结果
  • 遍历输入文本的每个字符,分情况处理:
    • 字符在alphabet内:找到原索引,计算新索引(原索引+移位量)对26取模,再从列表中取出对应加密字符
    • 非字母字符(空格、标点等)直接保留

完整代码示例

# 定义完整小写字母列表
alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

# 获取用户输入
text = input('Enter your message: ')
shift = int(input('Enter shift amount: '))

# 初始化加密结果容器
encrypted_text = ''

# 逐个处理字符
for char in text:
    if char in alphabet:
        # 获取原字符在列表中的索引
        original_idx = alphabet.index(char)
        # 计算移位后的新索引,取模26防止越界
        new_idx = (original_idx + shift) % 26
        # 取出加密字符并追加到结果
        encrypted_text += alphabet[new_idx]
    else:
        # 非字母字符直接保留
        encrypted_text += char

print('Encrypted message:', encrypted_text)

关键细节说明

  • 取模运算:当移位量超过26时(比如移位30),(original_idx + 30) % 26等价于移位4,确保索引始终在0-25的有效范围内,避免列表越界报错。
  • 大小写兼容:如果需要支持大写字母,可以额外定义大写字母列表,或者先将字符转小写处理后再转回大写(根据需求调整逻辑)。
  • 异常规避:先判断char in alphabet,避免输入非字母字符时index()方法抛出查找失败的异常。

内容的提问来源于stack exchange,提问作者Soham Karalkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:32:02