【问题标题】:HackerRank Runtime Error in Simple Python 3 if statement简单 Python 3 if 语句中的 HackerRank 运行时错误
【发布时间】:2020-06-14 12:10:54
【问题描述】:
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'

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

【问题讨论】:

    标签: python python-3.x for-loop if-statement runtime-error


    【解决方案1】:

    您的函数def findNumber(arr, k): 不返回任何内容,因此它隐式返回None

    这些行

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

    然后尝试将None 和一个字符串一起添加 - 这不起作用。

    而不是在你的函数中打印,return "Yes""No"。

    【讨论】:

    • 非常感谢,非常感谢您的帮助以及您的清晰程度:)
    【解决方案2】:

    findNumber 返回 Nothing,所以它会自动返回 None。您必须将函数中的“打印”替换为返回语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多