2016-10-19 3 views
-1

練習に立ち往生し、somヘルプを必要とする可能性があります!Python3は、乗算してリストに追加します。

演習:引数として

[123、4、125、69、155]

:リストを取る関数を作成します。この関数は、すべての偶数に1を乗じ、 はすべての奇数に6を加えます。変更されたリストの回答は で降順にソートされています。

マイコードまでです。

私は( `DEFマルチ入れ答えて
list1 = [123, 4, 125, 69, 155] 

def multi(): 
    for num in list1: 
     if num % 2 == 0: 
      num * 1 
     else: 
      num + 6 
     return list1 

):

私が得る答えは

[123, 4, 125, 69, 155] <class 'list'>

で、正しい答えは、[161,131,129,75です4]

誰でも正しい方法で私を指摘できますか?

ありがとうございます。

+0

正しい方法: 'num * 1'は何にも割り当てられていません。 'list1'は何も変更せずに返されています(繰り返し処理されている間は変更されていませんが、どうして返されます) –

答えて

0

あなたは以下のコードは、ジョブ

list1 = [123, 4, 125, 69, 155] 
def multi(): 
    for i,num in enumerate(list1): 
     if num % 2 == 0: 
      num *= 1 
     else: 
      num += 6 
     list1[i] = num # modify list value 
    return sorted(list1)[::-1] # this do sorting then reverse from large to small 
+0

このコードを実行すると、 –

+0

[155,125,123,69,4] –

+0

投稿を編集して、構文エラーを修正しました。 – Skycc

0

に番号が奇数のアドオン6

ある場合だけチェック1を掛けする必要はありもしないはずですループ変数numの自体ではなく、元のリスト値 のために変更されています
list1 = [123, 4, 125, 69, 155] 
def multi(): 
    for i,num in enumerate(list1): 
     if num % 2 != 0: 
      num +=6 
     list1[i] = num 
    return sorted(list1)[::-1] 
関連する問題