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

Python凯撒密码程序函数返回值失效,求修复方法

修复凯撒密码程序的返回值问题

原代码的核心问题

  • 加密函数中一开始就清空了输入字符串,导致循环无法遍历原内容;且每次循环仅覆盖encrypted变量,没有拼接整个加密字符串。
  • 解密函数参数错误,且引用了未在函数内定义的外部变量;同样未拼接解密后的完整字符串。
  • 主函数中未接收加密/解密函数的返回值,直接调用函数后打印未定义的变量。

修复后的完整代码

def cipher(string):
    encrypted = ""
    for letter in string:
        # 对每个字符的ASCII码偏移4位后转回字符,拼接成加密字符串
        encrypted += chr(ord(letter) + 4)
    return encrypted

def decipher(encrypted_str):
    decrypted = ""
    for letter in encrypted_str:
        # 对加密字符的ASCII码反向偏移4位,拼接成原字符串
        decrypted += chr(ord(letter) - 4)
    return decrypted

def main():
    original_str = input("请输入字符串:")
    # 接收加密函数的返回值
    encrypted_result = cipher(original_str)
    print("加密后的字符串:", encrypted_result)
    # 传入加密结果进行解密,接收返回值
    decrypted_result = decipher(encrypted_result)
    print("解密后的原字符串:", decrypted_result)

main()

关键修改说明

  1. 加密函数cipher:
    • 不再清空输入的string参数;
    • 初始化encrypted为空字符串,循环遍历每个字符时用+=拼接所有加密后的字符,确保返回完整的加密结果。
  2. 解密函数decipher:
    • 接收加密后的字符串作为参数(命名为encrypted_str,避免混淆);
    • 初始化decrypted为空字符串,循环拼接每个解密后的字符,返回完整的解密结果。
  3. 主函数main:
    • 接收用户输入并保存为original_str;
    • 调用加密/解密函数时接收返回值,再进行打印,确保使用的是函数返回的正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:20:05