2017-04-24 17 views
-2

私はPythonには新しく、私は関数を頭で囲むのに苦労しています。私は今日これを書きました。なぜそれが機能していないのか理解できません。予期せぬ出力を与える簡単なループ関数

x = [1,2,3,4,5,6,7,8] 

def test(): 
    y = [] 
    for num in x: 
     if num > 4: 
      y.append(num) 
      return y 

print(test()) 

だから、私は、forループべきxのすべての要素を循環、それは、その要素が空のリストに追加する必要がある場合、それはより大きく4.だかどうかを確認するためにテストし、yそれを理解。予想される出力は、したがって、次のようになります。をループし、よく... forループがないことを示す [5]

[5,6,7,8] 

しかし、私が取得していますことは、単にこれです。それは[1,2,3,4]が4より大きくないことを拒否します。それは問題ありません。 5が4より大きいと認識し、yに追加します。それも大丈夫です。しかし、それはちょうど一種の...止まります。私が理解しているように、関数はすべてyに6,7,8を追加しなければなりません。

私は完全に止まっています。なぜ誰がこのことが起こっているのか理解できたら、本当に感謝しています。

+3

あなた 'リターンy'は' 'Pythonでloop'ため – MooingRawr

+1

空白事項の外に移動しloop'ためです。 forループの外側に 'return y'を移動します。 –

+0

* Facepalm!*ああ!とても明らかです。私はそれが月曜日でなかったら私はその間違いをしなかったと誓う!ありがとうたくさんの人:-) – Nellington

答えて

1

最初の追加後に実行を停止します。

はこれを試してみてください:

x = [1,2,3,4,5,6,7,8] 
def test(): 
    y = [] 
    for num in x: 
     if num > 4: 
      y.append(num) 
    return y 

print(test()) 
関連する問題