You need to enable JavaScript to run this app. Python实现Caesar Cipher凯撒密码时字符串下标越界如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python实现Caesar Cipher凯撒密码时字符串下标越界如何解决

凯撒密码下标越界问题修复方案

核心原理

要实现字母表循环偏移,直接使用**取模运算(%)**即可,对字母表长度26取模后,偏移后的计算结果会自动落在0~25的合法下标范围内,天然实现Z之后接A的循环效果。

修正后代码

plain_text = 'PYTHON'
cipher_text = ''
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
key = 2

for i in range(len(plain_text)):
    symbol = plain_text[i]
    # 内层循环变量改名,避免和外层i冲突导致逻辑错误
    for j in range(len(alphabet)):
        if symbol == alphabet[j]:
            # 新增取模运算,保证下标不越界
            new_symbol = alphabet[(j + key) % len(alphabet)]
            cipher_text = cipher_text + new_symbol

print(cipher_text)

关键修改说明

  • 偏移下标计算增加取模逻辑:(j + key) % len(alphabet),举个例子,字母Z对应下标25,key=2时(25+2)%26=1,刚好对应字母B,符合循环偏移的需求,不会再出现下标越界错误。
  • 修复了原代码隐含的变量名冲突问题:原代码内外两层循环都使用变量i,会导致外层循环的计数被内层循环意外覆盖,将内层循环变量改为j避免这类隐藏BUG。

内容的提问来源于stack exchange,提问作者python noobie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:21:01