简单 Python 3 if 语句中的 HackerRank 运行时错误

HackerRank Runtime Error in Simple Python 3 if statement

def findNumber(arr, k):
    if k in arr:
        print( "YES" )
    else:
        print( "NO" )

if __name__ == '__main__':


    arr_count = int(input().strip())

    arr = []

    for _ in range(arr_count):
        arr_item = int(input().strip())
        arr.append(arr_item)

    k = int(input().strip())

    result = findNumber(arr, k)

    fptr.write(result + '\n')

    fptr.close()

虽然这在 Pycharm 上运行得很好,但在 HackerRank 上我收到错误:

Traceback (most recent call last):
  File "Solution.py", line 42, in <module>
    fptr.write(result + '\n')
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

如果您能指出可能是什么错误,我们将不胜感激。

你的函数 def findNumber(arr, k): 没有 return 任何东西,所以它 return 隐含地 None

这些行

result = findNumber(arr, k)  
fptr.write(result + '\n')

然后尝试将 None 和一个字符串相加 - 但行不通。

而不是在函数内部打印,return "Yes""No"。

findNumber returns 没有,所以它自动 returns None。您必须将函数中的 "print" 替换为 return 语句。