2016-07-03 6 views
-3

ここでは、引数 "number in list"を使用してリストを作成する関数を定義しました。私は関数を使うことができますが、リストを印刷しようとすると、変数は定義されていません。宣言された変数を定義された関数から取り出そうとするたびに、割り当て前に参照されたローカル変数 "i"が表示されます。誰かがこのコードを動作させる手助けができますか?ありがとう!私のコードに何が問題なのですか?名前は定義されていませんか?

def create_list(number_in_list): 
    i = 0 
    numbers = [] 
    while i < number_in_list: 
     numbers.append(i) 
     i += 1 


print "How many numbers do you want in your list?" 
value = int(raw_input("> ")) 
create_list(value) 


print "The numbers: " 
print numbers 
for num in numbers: 
    print num 
+2

インデント:あなたは、その変数を返す必要があり、あなたの呼び出し元のコードで戻り値を使用します。したがって

def create_list(number_in_list): i = 0 numbers = [] while i < number_in_list: numbers.append(i) i += 1 return numbers # <---- 

そして、あなたのメインコードで – Li357

+0

まず、質問に字下げを修正できますか?それがどこにあるのかを知ることは容易ではありません。あなたの 'create_list'に' numbers'を作成しても、同じ名前空間/スコープにはありません。機能の外部からアクセスすることはできません。 –

+1

Pythonは正しい字下げに依存します。他のほとんどの言語ではそうではありません。あなたがインデントしないと、他のほとんどの言語はちょうど判読不能になります。 –

答えて

3

numbers変数は、関数create_listにのみ存在します。関数本体をインデント、正しく

numbers = create_list(value) 
+2

ああ...なぜ私はそれを考えなかったのですか? -_-華麗な答え。ありがとう! – Mangohero1

関連する問題