TypeError:不支持-:“float”和“NoneType”python的操作数类型

2024-05-23 18:00:54 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道我为什么会犯这样的错误吗?!如果你这么做,我会非常感激的,我是新来的,并试图学习,但我真的陷入了微乎其微的Python! 这是我得到的错误:

eError: unsupported operand type(s) for -: 'float' and 'NoneType'

 for test in test_set:
 person_id = test['person_id']
 place_id = test['place_id']
 rating = test['rating']
 predicted_rating = simple_nn(person_id, place_id, 5)
 #difference =  (rating- predicted_rating)
 sq_err = (rating- predicted_rating) * (rating - predicted_rating)

 sq_err_sum = sq_err 

 sq_err_sum = sq_err_sum + sq_err



 rmse = math.sqrt(sq_err_sum/5)
 print rmse

Tags: testidfor错误sqplacepersonerr
2条回答

您也可以使用导入部分

from _ _ future _ _ import division

在同样的情况下对我也有效

根据你所提供的,以及错误判断,这是我的结论。

使用-操作数的唯一地方是两点

sq_err = (rating- predicted_rating) * (rating - predicted_rating)

因为错误状态'float' and 'NoneType',我们可以得出结论ratingfloat类型,predicted_ratingNoneType

您将predicted_rating定义为:

predicted_rating = simple_nn(person_id, place_id, 5)

所以这意味着在函数simple_nn的代码中的某个地方,您不会返回任何内容。如果使用条件,则可能没有计算每个结束路径,函数只是返回。

例如。。。所有这些函数都返回None类型。

def example1():
    pass

def example2():
    return

def example3(a = True, b  = True):
    if not a:
        return True
    elif not b:
        return False

注意在最后一个例子中有一条路径,如果满足条件,则两者都不满足,。。因此它不能返回任何

相关问题 更多 >