我正在尝试运行以下内容:
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。
答案 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循环之外。