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

HackerRank Plus Minus题报TypeError unpack int对象错误如何解决

问题根因分析

  • 第一个错误直接对应报错栈中的TypeError: cannot unpack non-iterable int object,问题出在neg,pos,zero=0这行:Python 中如果要同时给多个变量赋相同初始值,右侧需要提供对应长度的可迭代对象,你右侧只有单个整数0,无法拆分赋值给3个变量,正确写法为neg, pos, zero = 0, 0, 0。
  • 第二个逻辑错误:计数时你写的是neg+=0、pos+=0、zero+=0,无论遍历到什么元素,三个计数器的值永远不会变化,始终为0,需要把增量改为1,也就是neg += 1、pos += 1、zero +=1。
  • 可选的规则适配:HackerRank的Plus Minus题目要求输出结果保留6位小数,直接打印浮点数可能出现位数不足的情况,建议使用格式化输出适配题目要求。

修正后完整代码

import math
import os
import random
import re
import sys

#
# 完成'plusMinus'函数
#
# 函数接收整数数组arr作为参数
#

def plusMinus(arr):
    # 初始化计数器
    neg, pos, zero = 0, 0, 0
    for i in range(len(arr)):
        if arr[i] < 0:
            neg += 1
        elif arr[i] > 0:
            pos += 1
        else:
            zero += 1
    # 格式化输出6位小数
    print("{0:.6f}".format(pos / len(arr)))
    print("{0:.6f}".format(neg / len(arr)))
    print("{0:.6f}".format(zero / len(arr)))
    return 0

if __name__ == '__main__':
    n = int(input().strip())
    arr = list(map(int, input().rstrip().split()))
    plusMinus(arr)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:06:07