表示 1,2,3,…,9 這樣乙個序列,有四種方法
方法一和方法二, 他們邊界之間的差正好等於序列的長度。
方法一和方法二,在這兩種表示方法中,如果我們觀察兩個相鄰的序列,那麼其中乙個序列的上限正好等於另乙個的下限。
。自然數是有最小值的(0)。如果像第二種和第四種那樣,在下界採用 < ,那麼當我們想表示乙個從0開始的序列,那麼下界會出現非自然數-1(比如 0,1,…,5 會被表示成 -1 < i ≤ 5),這種表示法顯然不夠優雅,所以對下界而言,我們最好選擇 ≤。
在下界使用 ≤ 時,序列便可以從最小的自然數0開始,此時,如果我們想要表示空集的話,當上屆同樣採用 ≤ 時會導致上界小於下屆並出現非自然數,如:0 ≤ i ≤ -1 。顯然,這也是不夠優雅的,也不符合我們的習慣。而如果上界使用 <,就會方便很多,同樣,表示空集:0 ≤ i < 0。因此對於上界,我們採用 < 。
綜上所述,python中的range函式設計成左閉右開區間是比較優雅的
Python 為什麼要用yield
可能聽說過,帶有 yield 的函式在 python 中被稱之為 generator 生成器 何謂 generator 我們先拋開 generator,以乙個常見的程式設計題目來展示 yield 的概念。如何生成斐波那契數列 斐波那契 fibonacci 數列是乙個非常簡單的遞迴數列,除第乙個和第二...
Python中為什麼要用self?
參考文章 self的含義與基本用法 python中為什麼要使用self 注意到文章中的一句話,避免非限定呼叫造成的全域性變數。舉個例子來談談我對這句話的理解 class father def init self,name self.name name def selfdemo self print ...
Python 為什麼要用執行緒池?
多執行緒的情況下確實可以最大限度發揮多核處理器的計算能力,提高系統的吞吐量和效能。但是如果隨意使用多執行緒,對系統的效能反而有不利影響。比如下面的情況 建立執行緒是需要時間的,假設執行緒建立所需時間為t1,執行緒執行任務時間為t2,執行緒銷毀時間為t3,而往往t1 t3 t2。所以頻繁建立和銷毀執行...