2011-08-11 11 views
6

このコードを変更して、現在のように5つの要素を持つ3つのリストを作ることができます。 5/10/15要素の3リストそれはすべての呼び出しでリセットされますようにループの質問にリストを追加する

import random 

y = [] 

def autoSolve(): 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 
+0

の3内側のリストと、この[[]、[]、[]] ギリストとして生成されますか?プリントは3回呼ばれるので? – SingleNegationElimination

+1

この宿題はありますか? – 6502

+2

これは宿題ではありません。 – Sergei

答えて

10

autoSolve方法に移動y = []、。

def autoSolve(): 
    y = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 
0
autoSolveの先頭に y = []を移動

1

毎回同じリストyを印刷しています。

yが空になります。

forループの最初の反復であるyは、5つの要素で終わります。

2回目の反復であるy.appendは、10個の要素に増加します。これを防止するために

は、autoSolve()メソッド内

y=[] 

ラインを置きます。

0
import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    print(x, end="") 
    return x 

for i in range(3): 
    print("number", i + 1,) 
    y.append(autoSolve()) 
    print() 
+0

これは彼にとって非常に混乱しやすい答えですPythonのグローバル変数を理解していません。 – agf

+0

あなたはまったく正しいです。私は変数の名前を変更しました。 –

-1

これはこの問題に適したソリューションだと思います。ここ

import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    y.append(x) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 

出力は、3つのリストを持っているあなただと思いますなぜ5要素

関連する問題