2017-02-04 9 views
-2
 for a in range(0,2): 
      for x in range (0,16): 
       bombs.append(((40*x),(40*a),39,39)) 

これはこのサイトの私の最初の質問です。私はPythonにはかなり新しいので、ヒントや簡単な説明をいただければ幸いです!ネストされた "for"ループはループ内の変数を変更しません

私がタイトルで言ったように、.appendの "a"変数を変更するように見えない。

(0、0、39、39) (40、0、39、39) (80、0、39、39) (120、0、39、39):私は受信出力はあります (160、0、39、39) (200、0、39、39) 等....

(0、0、39、39) (40、0、39、39) (80、0、39、39) (120、0、39、39) (160、0、39、39) (200、0、39、39) 等...

最初setは明らかに正しいですが、再びループすると、変数は40 * aの値ではなく0にとどまります。

私は単純なエラーを作りたいと思っています!

def bomb(): 
    global bombs 
    bombs=[] 

    for a in range(0,2): 
     for x in range (0,16): 
      bombs.append(((40*x),(40*a),39,39)) 
      print bombs[x] 
+0

'[(0、0、39、39)、(40、0、39、39)、(80、0、39、39)、(120、0、39、39)、(160 (240,0,39,39)、(280,0,39,39)、(320,0,39,39)、(0,03,39,39) (400,0,39,39)、(440,0,39,39)、(480,0,39,39)、(520,0,,39)、(400,0,39,39) (0,40,39,39)、(40,40,39,39)、(40,40,39,39)、(560,0,39,39) (280,40,39,39)、(120,40,39,39)、(120,40,39,39)、(120,40,39,39)、(120,40,39,39)、(240,125,164,106,174,151,505,369,1632,40,39,39) (440,40,39,39)、(360,40,39,39)、(360,40,39,39)、(400,40, 39,39)、(440,40,39,39) (600,40,39,39)、(520,40,39,39)、(560,40,39, 39) 39)] ' – raghav710

+0

これはプログラムを実行して' bombs'を出力したときの出力です。 (0、40、39、39)で見ることができるように16の値の後で変更されたネストされたループであるため、aの値はかなり変化しています – raghav710

+0

問題を再現できません:http:// ideone .com/DATDNdこれは本当にコード全体ですか? – Barmar

答えて

0

これらの入れ子になっているループ:あなたの完全なコードと

更新をありがとうございます。内部ループ

for x in range (0,16): 

は、外側ループの最初の反復中に16回反復します。 xだけが16回繰り返された後で初めて、aが変更になります!

[..., (600, 0, 39, 39), (0, 40, 39, 39), ...] 
+0

しかし質問のサンプル出力に '(0、40、39、39)'はありません。 – Barmar

+0

はい私は知っています、申し訳ありません、私はちょうど質問の出力を短くしましたが、16回の反復の後、再び2回目にループします。 .appendの中の "a"はまだ私に0という結果を与えています – Jack

+1

@ JackInndgeそれでは、関連する出力は投稿していませんでしたが、すべての関連するコードではありません;) – schwobaseggl

関連する問題