python 中使用隱式迴圈快速求和

2021-10-24 11:35:27 字數 2471 閱讀 3361

如何快速的求出1x的和呢?**如下:

nb(注意):#後面的部分表示輸出結果。

class

debug

:def

calculatesum

(self, size)

:return

sum(

range

(size)

)if __name__ ==

"__main__"

: main = debug(

) result = main.calculatesum(

101)

print

(result)

# 5050

這裡我們想要求出1-100的和,因為range(101)最後的值是100,所以range()的引數應該取101而不是1001100的和我們早已耳熟能詳,答案是5050。可以看到我i們使用sum()range()函式的組合就求出了1-100的和,這裡其實是運用了for的隱式迴圈.。嚴格地說此段**實際上計算的是0-100的和,但是因為0並不影響最終求和的結果,故這裡可以等同為1-100的和。上述**和下面的**等效。**如下:

class

debug

:def

calculatesum

(self, size)

: _sum =

0for i in

range

(size)

: _sum += i

return _sum

if __name__ ==

"__main__"

: main = debug(

) result = main.calculatesum(

101)

print

(result)

# 5050

我們知道,range(101)的結果為range(0, 101),想要獲取它的展開形式我們需要用list進行轉換並檢視,因此當我們使用sum()函式對其進行求和運算的時候,事實上是遍歷了它中間的每乙個元素,也就是使用了隱式迴圈。

print

(range

(101))

# range(0, 101)

print

(list

(range

(101))

)"""

result :

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

"""

那麼進一步我們可不可能將快速求和進行推廣呢?是可以的,我們可以用此種方法計算出任意的等差數列的和。**如下:

class

debug

:def

calculatesum

(self, start, end, gap)

:return

sum(

range

(start, end, gap)

)if __name__ ==

"__main__"

: main = debug(

) result = main.calculatesum(0,

101,2)

print

(result)

# 2550

這裡我們計算了0-100中差值為2的等差數列的和。

如果大家覺得有用,請高抬貴手給乙個讚讓我上推薦讓更多的人看到吧~

python使用隱式迴圈快速求和的實現示例

如何快速的求出1到x的和呢?如下 nb 注意 後面的部分表示輸出結果。class debug def calculatesum self,size return sum range size if name main main debug result main.calculatesu程式設計客棧m...

隱式轉換中隱式引數與隱式函式的使用

隱式引數的使用 要定義多個隱式引數時,需要使用柯里化函式。隱式轉換作用就是 當呼叫方法時,不必手動傳入方法中的隱式引數,scala會自動在作用域範圍內尋找隱式值自動傳入。1 同型別的引數的隱式值只能在作用域內出現一次,同乙個作用域內不能定義多個型別一樣的隱式值。2 implicit 關鍵字必須放在隱...

Python 列表推導式中使用if

列表推導式 又稱列表解析式 提供了一種簡明扼要的方法來建立列表。它的結構是在乙個中括號裡包含乙個表示式,然後是乙個for語句,然後是 0 個或多個 for 或者 if 語句。那個表示式可以是任意的,意思是你可以在列表中放入任意型別的物件。返回結果將是乙個新的列表,在這個以 if 和 for 語句為上...