我自學Python,遇到一個奇怪的問題。我想要做的是將一個列表傳遞給一個函數,並讓該函數返回一個列表,其中元素是圍繞它的數字的總和,但我認爲會產生一些奇怪的結果,所以我做了一個調試版本的該代碼仍然表現出如下行爲:Python截斷整數數組中的數字
當我創建一個整數數組並將其傳遞給一個函數,然後使用for循環打印該列表的各個值時,第一個在每個int都被截斷。
例如,以下輸入和輸出:
Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3
這發生無論輸入,如果它的10,101,或13453 - 相同的行爲發生。
我知道我可能錯過了一些簡單的東西,但爲了我的利益,沒有任何數量的谷歌搜索可以爲我解決這個問題。下面附上的是我用來執行此操作的代碼。值得注意的是:在任何時候在for循環之外打印整個列表時,它將返回完整和正確的列表(即['101','202','303'])
謝謝!
temp = list()
def sum(list):
print list
for i in range(1, len(list)+1):
print i
return temp
L = list()
while True:
input = raw_input("Please enter a number: ");
if input.strip() == ".":
break
L.append(input);
print L
L2 = sum(L)
print L2
您的縮進錯誤,可能是複製/粘貼錯誤。 – 2012-03-02 20:16:56
您不應該使用'list'和'input'作爲變量名稱,因爲它們會隱藏相應的內置函數。 – 2012-03-02 20:19:20
您是否知道您附加到'L'的值是字符串,而不是整數? – 2012-03-02 20:33:11