2016-09-14 18 views
1

こんにちは、私は学校で練習をしていました。いくつかの助けを使うことができます。Python3 forループが偶数か奇数

forループの番号を経由作成:

67,2,12,28,128,15,90,4,579,450 

現在の数が偶数の場合、あなたはそれを変数に追加する必要がありますし、 現在の数が奇数の場合、あなたはからそれを差し引く必要があります変数。

最終結果で回答します。

ここまでは私のコードです。

def listnum(a): 
for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]: 
    if (num%2): 
     a = a + num 
    else: 
     a = a - num 
    return a 

ANSWER =

私はこのプログラムを実行すると、私は答えを得る:aの初期値が0ある場合

5.6 FAIL. 
You said: 
4 class 'int'> 

を正解は53でなければなりません。

いずれにしても、何が間違っているのか教えてください。 、または正しい方向に私を向けるかもしれません。 ありがとうございます!

+0

'if(num%2 == 0)'、0は偽であることを覚えておいてください。 – Li357

+1

覚えておいて、Pythonは空白に依存しているので、コードを投稿するときには、 – Fallenreaper

+1

@Fallenreaperは、あなたの返信が現在、あなたのelseブロックの最初の実行後にあなたの関数を終了すると言っています。 – dckuehn

答えて

0

あなたの関数入力が戻り値ではなく、戻り値でないと意味があると思います。また、(他の人が指摘しているように)あなたはnum % 2 == 0が必要です。あなたのインデントは正しくありません。代わりにこれを試してください:あなたは、単一の行でこれを行うことができ

def listSum(l): 
    ans = 0 
    for num in l: 
    if num % 2 == 0: 
     ans += num 
    else: 
     ans -= num 
    return ans 

注:

def listSum(l): 
    return sum(i if i % 2 == 0 else -i for i in l) 

print(listSum([67, 2, 12, 28, 128, 15, 90, 4, 579, 450]))プリントどちらの場合も53

0

主に状態を調整する必要があるようです。

def listSum(a): 
    for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]: 
    if(num % 2 == 0): #subtle difference here. 
     a += num 
    else: 
     a -= num 
    return a 

これはちょっと微妙な違いがあります。

関連する問題