2011-09-16 5 views
0

私はこの機能が動作するように取得したい: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]のみ表示されますか?私は何を間違えているのですか?

+0

の重複[Pythonの::機能のリターンリスト結果の問題](http://stackoverflow.com/questions/7439513/python-return-list-result-problem

はあなたのような何かをしたいですあなたがちょっと前に尋ねた-in-a-function)です。その答えをもっと慎重に読んでください。私はこれをどうやって行うのかを正確に示します。リストに蓄積し、終了したら戻ってきます。 – agf

+0

はい... agf ...私はそのステップに従った...何かが間違っていることについてさらに混乱しているのです。 –

+0

@agfこれはどのようにその質問の欺瞞ですか? – NullUserException

答えて

8

数字のいずれかが偶数であるとすぐに返されます。

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] 
+0

@Jeff IDK、それは変だった。 – NullUserException

+0

私はちょうどそれの底に到達しようとしています。私は一度も前に私に起こって、それが私がやったことだと思った。 –

+0

NullUserに感謝...私はそれが返品機能の位置であるとは信じられません...ありがとうございます –

1

この試してみてください。現在、与えられたとして

def getEvenNumbers (numbers): 

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

実際にあなたのコードを、[4]、[4]、[1]ない返されます。あなたの関数は現在、最初の偶数が見つかるまで数字をリストに追加するだけで、それが返されます。

def getEvenNumbers(numbers): 
    return [n for n in numbers if not n % 2] 
関連する問題