为什么我在函数内部放置一个for循环不起作用?

时间:2017-06-28 12:58:33

标签: python

这是我的代码 我想知道为什么我不能将'for循环'放入函数

>>> a=[5,3,5,6,8,9,0,1,3]
>>> def classification(input):
        scoreget=0
        for i in range(0,8):
            if input[i]>2:
                 scoreget+=1
            else:
                 scoreget+=0
            return scoreget
>>> result=classification(a)
>>> print result

结果应该是[1,1,1,1,1,1,0,0,1],但它只显示一个值'1',而不是一个集合。

1 个答案:

答案 0 :(得分:0)

函数在Python中的工作方式是首先完成整个for循环,然后返回函数的输出。在这种情况下,这意味着只返回最后一个输出。此外,您的范围不包括所有输入参数,可以使用len解决。下面是您的代码示例:

a = [5, 3, 5, 6, 8, 9, 0, 1, 3]
def classification(inputs):
    scoreget = 0
    score = []
    for i in range(len(inputs)):
        if inputs[i] > 2:
             scoreget = 1
        else:
             scoreget = 0
        score.append(scoreget)
    return score

    result = classification(a)

打印结果