2017-06-14 6 views

答えて

2
>> squares={i:i*i for i in xrange(10)} 
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} 

本当に必要ですか?これは辞書の理解と呼ばれ、for loopの糖構文です。

あなたのコードでは、rangeの行1に正しく綴りませんでしたか、raageという名前の発電機がありますか? nを最初の行に渡すべきではなく、nをforループの一時行に再割り当てしてください。 for not_n in range(n)はあなたがそれをどうするべきかです。また、n=0を指定した場合は、for loopから出るときにsquaresが割り当てられません。変数名にはdictを使用しないでください。これはPythonのキーワードです。

0

あなたのコードの最大の問題は、あなたが本当に質問に答えていないことです。最初のnの数字の四角形を見つけ、それらの数字を四角形にマッピングするかどうかを質問します。代わりに、あなたのコードは、からnすべてのループの各番号の四角を見つける。

でもなく、forループの通常の書き込みが、あなたが大幅辞書理解使ってコードを単純化することができます初心者のため

>>> def map_nums_to_squares(n): 
    return {i: i * i for i in range(n + 1)} 

>>> map_nums_to_squares(2) 
{0: 0, 1: 1, 2: 4} 
>>> map_nums_to_squares(5) 
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} 
>>> map_nums_to_squares(10) 
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100} 
>>> 
関連する問題