Python: Что я делаю не так? - PullRequest
       1

Python: Что я делаю не так?

0 голосов
/ 16 сентября 2011

Я хочу, чтобы эта функция работала:

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]? что я делаю не так?

Ответы [ 3 ]

8 голосов
/ 16 сентября 2011

Вы возвращаетесь, как только одно из чисел оказывается четным.

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]
2 голосов
/ 16 сентября 2011

На самом деле ваш код в том виде, в котором он указан в данный момент, вернет [1, 4], а не [4].Ваша функция в настоящее время просто добавляет числа в список до тех пор, пока не найдет первый четный, после которого она вернется.

Вам нужно что-то вроде:

def getEvenNumbers(numbers):
    return [n for n in numbers if not n % 2]
1 голос
/ 16 сентября 2011

попробуйте это:

def getEvenNumbers (numbers):

    bo = []
    for num in numbers:
         if num % 2 == 0:
           bo.append(num)
    return bo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...