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

Python处理ASCII转换列表时为小于48的数值追加126报错如何解决

问题分析与修复

报错原因

  • 核心错误是对整数类型调用了append方法:你遍历newnumbers拿到的number是单个整数,整数不存在append方法,直接触发属性报错。
  • 遍历列表时直接修改元素副本不会生效:你拿到的number是列表元素的拷贝,对它的赋值不会修改原newnumbers列表的内容。
  • 函数名不匹配:你说明自己实现的是chr_list函数,但代码中调用了chr_string,如果实际函数名和调用名不符也会触发报错。
  • 逻辑不符合需求:你要实现的是在小于48的数值之后追加126,原代码没有操作列表插入元素的逻辑,即使不报错也拿不到预期结果。

修复后代码

def encrypt_text(message: str, rotation_amount: int) -> str:
    numbers = ord_list(message)
    newnumbers = rotationlist(numbers, rotation_amount)
    processed_nums = []
    for num in newnumbers:
        processed_nums.append(num)
        # 数值小于48时追加126
        if num < 48:
            processed_nums.append(126)
    # 替换为你实际实现的数值转字符串函数名
    newstring = chr_list(processed_nums)
    return newstring

print(encrypt_text("(", 1))

验证说明

测试输入("(", 1)时,(的ASCII值为40,旋转1后为41,41小于48,所以处理后的数值列表为[41, 126],转换为字符串后就是你期望的(~。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:08