这条Python线是什么意思?

时间:2017-07-13 09:53:24

标签: python

我在Python代码中遇到了这一行,并且不知道它是如何做的:

do_update = error !=0

这是上下文,代码是感知器分类器:

    def update(self, instance):
    """
    Perform perceptron update, if the wrong label is predicted.
    Return a boolean value indicating whether an update was performed.
    """
    error = 0
    predicted_output = self.prediction(instance.feature_counts)
    if(predicted_output==True and instance.label==False):error = 1
    if(predicted_output==False and instance.label==True):error = -1

    do_update = error !=0

    if do_update:
        for feature, count in instance.feature_counts.items():
            self.weights[feature] += error*count
    return do_update

有人可以解释一下它的工作原理吗?

3 个答案:

答案 0 :(得分:2)

do_update = error !=0

表示:评估error !=0并将结果分配给do_update

error !=0的评估将是一个布尔值(真/假),基于error的值。

具体做法是:

如果error等于0,则do_update将为False

如果error不等于0,则do_update将为True

答案 1 :(得分:0)

这是存储支票结果的快捷方式。

由于error != 0返回bool,do_updateFalseTrue

基本上,如果error为0,则do_update为False,否则do_update为True。

答案 2 :(得分:0)

error !=0是一个布尔表达式,如果True不包含值error,则返回0,否则返回False。添加括号可能会有所帮助:

do_update = (error != 0)