問題描述
我試圖弄清楚為什么在范圍上使用 sum 函數(shù)時會出錯.
I'm trying to figure out why I'm getting an error when using the sum function on a range.
代碼如下:
data1 = range(0, 1000, 3)
data2 = range(0, 1000, 5)
data3 = list(set(data1 + data2)) # makes new list without duplicates
total = sum(data3) # calculate sum of data3 list's elements
print total
這是錯誤:
line 8, in <module> total2 = sum(data3)
TypeError: 'int' object is not callable
我找到了這個錯誤的解釋:
I found this explanation for the error:
在 Python 中,可調(diào)用"通常是一個函數(shù).該消息意味著您將數(shù)字(一個>int")視為一個函數(shù)(一個可調(diào)用"),所以Python不知道該做什么,所以它>停止.
In Python a "callable" is usually a function. The message means you are treating a number (an >"int") as if it were a function (a "callable"), so Python doesn't know what to do, so it >stops.
我還讀到 sum() 能夠用于列表,所以我想知道這里出了什么問題?
I've also read that sum() is capable of being used on lists, so I'm wondering what is going wrong here?
我剛剛在 IDLE 模塊中嘗試過,效果很好.但是,它在 python 解釋器中不起作用.有什么想法嗎?
I just tried it in an IDLE module and it worked fine. However, it doesn't work in the python interpreter. Any ideas on how that can be?
推薦答案
您可能將sum"函數(shù)重新定義為整數(shù)數(shù)據(jù)類型.所以它正確地告訴你整數(shù)不是你可以傳遞范圍的東西.
You probably redefined your "sum" function to be an integer data type. So it is rightly telling you that an integer is not something you can pass a range.
要解決此問題,請重新啟動您的解釋器.
To fix this, restart your interpreter.
Python 2.7.3 (default, Apr 20 2012, 22:44:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> data1 = range(0, 1000, 3)
>>> data2 = range(0, 1000, 5)
>>> data3 = list(set(data1 + data2)) # makes new list without duplicates
>>> total = sum(data3) # calculate sum of data3 list's elements
>>> print total
233168
如果你隱藏 sum
內(nèi)置,你會得到你看到的錯誤
If you shadow the sum
builtin, you can get the error you are seeing
>>> sum = 0
>>> total = sum(data3) # calculate sum of data3 list's elements
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
另外,請注意 sum
將在 set
上正常工作,無需將其轉(zhuǎn)換為 list
Also, note that sum
will work fine on the set
there is no need to convert it to a list
這篇關(guān)于為什么在使用 sum() 函數(shù)時會出現(xiàn) 'int' object is not callable 錯誤?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!