2012-12-27 33 views
1

以下腳本應該以計算整數平方之和爲0〜4廣場累積不起作用

在數學上,0²+1²+ 2 2 + +3²4²= 30,但是腳本打印在Python 3.2上運行時使用!爲什麼?

total = 0 
for val in range(5): 
    vаl = val * val 
    tоtal = total + val 

print(tоtal) 
+0

當你打印(val)時它會做什麼?或者,你有沒有嘗試過爲範圍(5)中的我做,然後val = val * val? – CBredlow

回答

7

我不知道你做了什麼,而是你的total變量並不總是相同的。第一個總數是0x74 0x64 0x74 0x61 0x6c,而第二個是0x74 0xd0 0xbe 0x74 0x61 0x6c。由於Python 3在所有標識符中都支持Unicode,兩者都是完全有效的,但是不同。因此,在函數內部,您將分配與您在最後打印時不同的變量。

val相同:0x76 0x61 0x6c0x76 0xd0 0xbe 0x6c相同。

您應該再次刪除這些名稱,並重新從頭開始重新編寫它們。或者,如果您有多個這些問題,請使用搜索和替換來修復它。

出現在那裏的字符是0x0430 「CYRILLIC SMALL LETTER A」,因此相同/相似(取決於字體)外觀。

+0

幹得好。在不到15分鐘的時間內找到了解決方案。 :-) – prapin

+0

哇,我永遠不會想出來...... –