Python:我做错什么了?

2024-06-16 12:15:37 发布

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

我想让这个函数工作:

def getEvenNumbers (numbers):

    bo = []
    for num in numbers:
         bo.append(num)
         if num % 2 == 0:
           return bo

getEvenNumbers([1, 4, 8, 9])返回[4]。你知道吗

我期望更多的结果,如[4,8],但它不工作,我只得到[4]?我做错什么了?你知道吗


Tags: 函数inforreturnifdefnumbo
3条回答

一旦发现其中一个数字是偶数,您就返回。你知道吗

def get_even_numbers(numbers):
    bo = []
    for num in numbers:
        if num % 2 == 0:
            bo.append(num)
    return bo

或:

def get_even_numbers(l):
    return [n for n in l if n % 2 == 0]

实际上,当前给定的代码将返回[1,4],而不是[4]。您的函数当前只需将数字附加到列表中,直到找到第一个偶数,然后返回。你知道吗

你想要的是:

def getEvenNumbers(numbers):
    return [n for n in numbers if not n % 2]

试试这个:

def getEvenNumbers (numbers):

    bo = []
    for num in numbers:
         if num % 2 == 0:
           bo.append(num)
    return bo

相关问题 更多 >