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

Python解码函数缺失代码排查:输入34、56未得预期28、46输出

问题:Python解码代码缺失行排查

输入示例为34、56时,预期输出应为[28, 46],但运行以下代码后实际得到的输出是[24, 4, 40, 6](其中24+4=28,40+6=46),请找出缺失的代码行。

原代码:

def decode(code):
    decimals = []
    code = code.split(" ")
    for number in code:
        length = len(number)
        for digit in number:
            decimal = int(digit) * (8**(length - 1))
            decimals.append(decimal)
            length -= 1
    print(decimals)

问题分析

当前代码仅将每个数字的每一位计算结果单独存入列表,没有对单个数字的各位计算值求和。比如处理34时,直接把3*8^1=24和4*8^0=4分别加入列表,而非求和得到28后再存入。

缺失的代码及修正后的版本

需要为每个数字单独维护一个累加变量,先把该数字的各位计算值求和,再将总和存入结果列表。核心缺失的逻辑分为两步:

  1. 在内层循环前初始化累加变量
  2. 内层循环结束后将累加结果存入列表

修正后的代码:

def decode(code):
    decimals = []
    code = code.split(" ")
    for number in code:
        length = len(number)
        current_sum = 0  # 缺失的累加变量初始化行
        for digit in number:
            decimal = int(digit) * (8**(length - 1))
            current_sum += decimal  # 替换原append逻辑,改为累加
            length -= 1
        decimals.append(current_sum)  # 缺失的单个数字结果存入行
    print(decimals)

运行修正后的代码,输入"34 56"时,输出即为[28, 46],符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:20:14