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

Python使用字典构建凯撒密码仅输出单个键值对如何解决

凯撒密码映射字典生成问题修复方案

问题原因

  • 你代码中的return语句放在了for循环的内部逻辑块里,循环执行第一次(对应索引i=0、字母a)时就直接触发了返回操作,后续25次循环完全没有执行,最终只返回了仅包含单个键值对的字典。

修复方案

在函数开头先初始化一个空字典,循环过程中逐个将字母与对应移位后的字母存入字典,等全部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']

def build_cipher(shift):
    '''
    Description: 接收移位参数shift,返回存储26个英文字母与对应移位后字母映射关系的字典,通过字母索引减去移位值后对26取模实现移位逻辑
    
    >>> build_cipher(3)
    '''
    # 初始化空字典存储映射关系
    cipher_dict = {}
    for i in range(0, 26):
        letter = alphabet[i]
        shiftedletter = alphabet[(i - shift) % 26]
        # 逐个添加键值对
        cipher_dict[letter] = shiftedletter
    # 循环结束后再返回完整字典
    return cipher_dict

调用build_cipher(3)即可得到你给出的预期完整映射结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:54:06