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

如何让A1Z26解密器兼容空格及各类Unicode字符输入?

A1Z26解密器兼容非数字输入的修改方案

修改后的完整代码

import re

def A1Z26_decrypt(decrypt):
    result = ""
    # 提取输入中所有连续的数字序列
    num_strings = re.findall(r'\d+', decrypt)
    for num_str in num_strings:
        try:
            num = int(num_str)
            # 仅转换1-26范围内的数字(符合A1Z26规则)
            if 1 <= num <= 26:
                result += chr(num + 64)
            else:
                # 超出范围的数字保留原内容,也可根据需求改为跳过
                result += num_str
        except ValueError:
            # 兜底处理,避免意外报错
            result += num_str
    return result

def main():
    user_input = input("请输入需要解密的内容:")
    print(A1Z26_decrypt(user_input))

if __name__ == "__main__":
    main()

关键修改说明

  • 提取有效数字:用re.findall(r'\d+', decrypt)替代原有的按-分割逻辑,能自动忽略空格、标点(,!@#$%等)等非数字字符,只提取连续的数字串,彻底解决非指定分隔符导致的报错问题。
  • 修复提前返回bug:原代码在循环内直接return,导致仅处理第一个数字就终止函数,现在将return移至循环外,确保所有数字都被转换。
  • 增加合法性校验:转换前检查数字是否在1-26范围内,仅符合A1Z26规则的数字才转为字母;超出范围的数字保留原内容(可根据需求改为跳过)。
  • 异常兜底:加入try-except块,避免极端情况(如非数字串意外进入处理流程)导致程序崩溃。

测试示例

输入:14 13!@#2-26
输出:NMBZ

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:30:53