如何确定是什么导致python3中的此运行时错误?

时间:2019-05-27 16:35:05

标签: python-3.x runtime-error nonetype

我正在研究有关hackerrank的问题。任务是输出数组中项目(整数)的数量,然后通过从数组中减去最小值来更新每个项目。如果项目本身等于最小值,请弹出该项目。重复(输出数组长度),直到有一个空数组为止。

我对解决方案使用了递归,我猜这是造成问题的原因,因为带有循环的解决方案可以正常工作。问题在于,输出似乎与预期的相似,但是正在触发站点提供的代码中的错误。输出还会在不同的解释器中匹配,并且不会在main之外引发错误。

def cutTheSticks(arr):
    small = min(arr)

    #base case: output arr size when all items are the same
    if arr.count(small) == len(arr):
           return print(len(arr))

    #output arr size before updating
    print(len(arr))

    newArr = []

    #update arr
    for i in range(len(arr)):
         if arr[i] > small:
              newArr.append(arr[i] - small)

    #run on updated arr
    return cutTheSticks(newArr)

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input())

    arr = list(map(int, input().rstrip().split()))

    result = cutTheSticks(arr)

    fptr.write('\n'.join(map(str, result)))
    fptr.write('\n')

    fptr.close()

主要部分引发错误,内容为:

Traceback (most recent call last):
   File "Solution.py", line 30, in <module>
       fptr.write('\n'.join(map(str, result)))
   TypeError: 'NoneType' object is not iterable

0 个答案:

没有答案