for n in raage(n):
if n==0:
pass
else:
squares={i:i*i for i in xrange(n)}
dict[n]=squares
這裏的字典是一個問題:創建前n計數數字映射到它們的平方的字典。將字典與可變方塊關聯。字典。創建前n計數數字映射到它們的平方
我的代碼有什麼問題?
for n in raage(n):
if n==0:
pass
else:
squares={i:i*i for i in xrange(n)}
dict[n]=squares
這裏的字典是一個問題:創建前n計數數字映射到它們的平方的字典。將字典與可變方塊關聯。字典。創建前n計數數字映射到它們的平方
我的代碼有什麼問題?
>> 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
的糖語法。
至於你的代碼,你沒有在第1行正確拼寫range
,或者你有一個名爲raage
的生成器。你也應該不會通過n
到您的第一線,然後重新分配n
在您的臨時線循環。 for not_n in range(n)
是你應該怎麼做的。另外,如果你只給n=0
然後squares
當你走出for loop
的不分配。也不要使用dict
作爲變量名稱,因爲它是Python中的關鍵字。
與您的代碼的最大問題是,你沒有真正回答這個問題。這個問題要求你找出第一ñ數的平方,並且這些數字映射到廣場。相反,你的代碼找到方塊從至ň每一個循環的每個號碼。
但是,而不是寫一個正常的循環,可以大大使用字典理解簡化代碼:
>>> 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}
>>>
首先,你拼寫'range'錯誤 –