python是個高級程式語言,但是大家不要認為只有專業的編程人員才能用。事實上,他的計算功能還是蠻強大的,對於中學生,完全可以當作高級計算器來使用。P.S.:以下例子以python2.7為例。
例如,求個100以內的正數和:print sum(range(1,101)),這樣簡單一句就可以了 。當然你會說用等差數列求和公式計算也很快。確實,以上的式子只能求簡單的等差數列和--公差為1。
對於其他公差的等差數列怎麼辦呢?也很簡單,不需要特別編程,只要在range函數中增加一個參數就可以了,例如計算:1+3+5+7+9+...+99:我們利用range(1,101,2)獲取我們想要的1到100的所有奇數
然後利用求和函數計算並列印出來,即改為print sum(range(1,101,2))。
抽象總結一下這個還算比較通用的等差求和方式了:print sum(range(首項,末項+1,公差))
不過對於等比數列可用不了,而且通用性太差了,還不如用公式筆算。當然還有更好的方法了:
第一:使用編程,用代碼表達數學上的等差等比求和公式:如等差,使用input獲取輸入的首項a1,項數n,和公差d,然後列印公式計算並列印print a1*n+n*(n-1)*d/2;
第二:使用第三方包:在python庫numpy 中提供了函數linspace和logspace函數用於生產等差數列和等比數列。函數的定義如下:
1.linspace函數生成等差數列
def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):
#指定初始值、終止值、數量、是否包含終止值,默認為包含。例如:首項1公差1的前10項等差數列
2.logspace函數生成等比數列def logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None):#指定初始值、終止值、數量、是否包含終止值,默認為包含。例如:首項2公差2的前4項等比數列
得到數列後,可以像一開始那樣使用sum求和得到結果。