python版本3.6.3函数和列表

时间:2017-12-05 16:46:54

标签: python python-3.x list function python-3.6

我正在尝试运行以下内容:

def count_small(numbers):
total = 0
for n in numbers:
    if n < 10:
        total = total + 1
    return total

lotto = [4, 8, 15, 16, 23, 42]
small = count_small(lotto)
print(small)

这里我定义了一个函数'count_small(numbers)' 它从0开始, 然后检查列表中的每个项目,检查它是否小于10,如果项目小于10,则将1添加到总计中。我在列表'lotto'上运行该函数,因为你可以看到'lotto'有两个小于10'4'和'8'的数字因此它应该返回2,但是,当我运行代码时它返回1。

2 个答案:

答案 0 :(得分:4)

您的return语句位于for循环中,因此该函数保留在第一个数字之后。

def count_small(numbers):
    total = 0
    for n in numbers:
        if n < 10:
            total += 1
    return total

使用生成器表达式时,可以将其写在一行:

def count_small(numbers):
    return sum(n<10 for n in numbers)

答案 1 :(得分:1)

您的缩进不正确。将return语句放在for循环之外。