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

Python编写Cesar encryption凯撒加密函数运行异常如何修复

凯撒加密函数问题修复方案

原代码存在的问题

  • 语法错误:chr((ord(char) + offset) 行括号不匹配,多写1个左括号且缺少2个右括号,直接运行会抛出语法报错
  • 仅处理了小写字母,未适配大写字母、空格等字符,你的测试输入为全大写+空格,运行后会返回空字符串,完全不符合预期
  • 未做字母边界绕回处理:当偏移后的ASCII值超过小写字母z/大写字母Z的范围时,会输出非字母的特殊字符,不符合凯撒加密的规则
  • 未对偏移量做标准化处理:如果传入的偏移量大于26或者为负数,加密结果会不符合预期

修复后的代码

def cesar_encryption(message, offset = 1):
    encrypted_message = ""
    # 标准化偏移量,避免负数或超过26的异常情况
    offset = offset % 26
    for char in message:
        # 处理小写字母
        if char.islower():
            encrypted_char = ord(char) + offset
            if encrypted_char > ord('z'):
                encrypted_char -= 26
            encrypted_message += chr(encrypted_char)
        # 处理大写字母
        elif char.isupper():
            encrypted_char = ord(char) + offset
            if encrypted_char > ord('Z'):
                encrypted_char -= 26
            encrypted_message += chr(encrypted_char)
        # 非字母字符直接保留(空格、标点等)
        else:
            encrypted_message += char
    return encrypted_message

print(cesar_encryption("I LOVE NATURE", 1))

运行结果

输入"I LOVE NATURE"偏移1时,输出为:J MPWF OBUVSF,符合凯撒加密的预期。

内容的提问来源于stack exchange,提问作者Luz Dary Marañón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:54:03