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

Python替换加密器如何获取encrypt函数输出并完成剩余加密逻辑

问题核心原因
  • 原encrypt函数没有返回值,Python中字符串是不可变对象,函数内对参数var的赋值仅作用于函数局部作用域,无法将结果传递到函数外部
  • 第三部分逐长度判断的逻辑冗余,不需要针对不同单词长度写单独分支,直接遍历字符即可
  • 原代码中用list作为变量名,覆盖了Python内置的list()方法,会引发后续逻辑报错
调整后完整可运行代码
# 1. 输入获取(保留原需求的手动长度输入,不需要可直接删去相关校验逻辑)
num = int(input("请输入单词长度:"))
word = input("请输入待加密的小写单词:")
if num != len(word):
    print("输入长度与实际单词长度不符")
    exit()

# 2. 优化加密函数,映射规则与原代码完全一致
def encrypt(letter):
    # 用字典存储映射关系,比多层if判断更高效易维护
    encrypt_map = {
        "a":"m", "b":"n", "c":"b", "d":"v", "e":"c", "f":"x", "g":"z",
        "h":"p", "i":"o", "j":"i", "k":"u", "l":"y", "m":"t", "n":"r",
        "o":"e", "p":"w", "q":"q", "r":"a", "s":"s", "t":"d", "u":"f",
        "v":"g", "w":"h", "x":"j", "y":"k", "z":"l"
    }
    # 存在映射规则返回加密结果,非小写字母等特殊字符直接返回原内容
    return encrypt_map.get(letter, letter)

# 3. 完成剩余加密逻辑
encrypted_list = [encrypt(char) for char in word]
encrypted_result = ''.join(encrypted_list)

# 输出密文
print(f"加密后结果:{encrypted_result}")
调整说明
  • 优化后的encrypt函数仅需要传入待加密字母,通过return直接返回加密后的结果,无需传入额外变量接收值
  • 直接遍历输入单词的每个字符,逐个加密后拼接为完整密文,兼容1到任意长度的输入,不需要写多个长度判断分支
  • 完全保留了原设计的字母映射规则,仅调整了代码结构和值传递逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03