2017-02-19 41 views
0

在Python控制檯中,此代碼應返回15,但返回10. 有什麼問題?爲什麼當我期望它返回15時這個表達式返回10?

print(sum(range(5))) 
+2

運行'範圍(5)'來看看該子表達式爲您提供 – nos

+0

'範圍(N)'和'0'開始'N- 1'。有關更多信息,請參閱['range()'](https://docs.python.org/3/library/stdtypes.html#range)文檔 –

回答

4

因爲range s爲排他性的,它們不包含您所指定的最後一個(stop)元素,從the documentation on range objects

對於一個積極的步驟,範圍r是內容由下式確定,其中r[i] = start + step*ii >= 0r[i] < stop

省略step默認值爲1

你基本上總結如下:

list(range(5)) 
[0, 1, 2, 3, 4] 

其中,顯然,資金以10

+1

我的不好,我把它與print(sum([ 2,3,4,5]))。 –

0

在蟒蛇,

range(5)相當於[0,5)

相關問題