如何用python做计算_如何用Python做些基本的数学运算
每個游戲都有某種需要累計的分數;在屏幕上繪制圖形時必須使用數字來確定圖形的位置和顏色;移動的物體會有方向和速度,這都要用數字來描述。所有有意思的程序幾乎都會以某種方式使用數字和數學。所以下面就來學習Pyhton中有關數學和數字的一些基礎知識。
四大基本運算
在第1篇中我們已經看到Python可以做一些數學運算:使用加號(+)完成加法,另外使用星號(*)完成乘法。
如你所料,Python使用連字號(-)(也稱為減號)來做減法:
由于計算機鍵盤上沒有除號(÷),所以所有程序都使用前斜杠(/)表示除法。
不過有時Python做除法時會得到意外的結果:
所有人都知道
3 / 2 = 1.5
這到底是怎么回事?
我先給你解釋下這幾個術語
整數(integer)就是我們平常數數時所說的數,如1、2、3等,另外還包括0和負數,如-1、-2、-3等。
小數(decimal number)也稱為實數(real number),這些數有小數點而且后面有小數位,如1.25、0.3752和-101.2。
在計算機編程中,小數也稱為浮點數(floating-point number,有時簡寫為floats,或者如果只有一個浮點數,就簡寫float)。這是因為小數點會“浮動”。如0.00123456或12345.6都是浮點數。
現在我們來看看剛剛那個例子。
因為你輸入的3和2都是整數,所以Pyhton認為你同樣想要整數作為答案。它會把答案1.5取整為最接近的整數,也就是1。換句話說,Python完成了不帶余數的除法。
要解決這個問題,可以這樣試試看:
這樣就好多了!如果把兩個數中的任何一個作為小數輸入,Python就會知道你想在答案中保留小部分。
要記住Python的這種整除行為。因為bug或者錯誤就是經由這樣一些途徑悄悄出現在你的代碼中的。
操作符
+ 、 - 、 * 和 / 符號都稱為操作符。這是因為它們會“操作”或處理放在符號兩邊的數字。
=號也是一個操作符,這稱為賦值操作符(assignment operator),因為我們用它為一個變量賦值。
我們再來看看,如果把3乘5次,可以寫成:
如果我們要是把3乘100次呢?
要我們寫出100次乘法,這很浪費時間。
其實,Python用了一個雙星號(**)來表示指數或者將一個數自乘為一個冪。你可以這樣寫出剛剛上述的例子:
這樣鍵入是不是更容易一些呢!不過用了一個雙星號(**)來表示指數,更重要的原因是,可以用來作非整數的指數運算,如下:
而要想利用乘法來做到這一點可不容易。
我們再來看一個除法例子,如果兩個數不能整除,最后會得到一個余數(remainder):
7 / 2 = 3 ,余數是1
7 / 2的答案中有一個商(quotient),在這里就是3,還有一個余數1。如果在Python中將兩個整數相除,它會給你商。不過余數呢?
Python有一個特殊的操作符來計算整數相除的余數。這稱為取余操作符,這個符號是百分號(%)。可以像這樣使用:
所以如果同時使用 / 和 %,就可以得到整數相除的完整答案:
可以看到,7除以2得3,余數是1。如果做浮點數除法,會得到小數答案:
以上算術操作符加(+)、減(-)、乘(*)、除(/)、指數(求冪)(**)和取余(%),在程序中需要的99%的操作符就是六個操作符。
自增和自減
操作符:+=(自增)和 -=(自減),在編程中經常出現。我們可以將它們認為是一個賦值運算的簡寫方式,如:
score = score + 1
我們可以簡寫成:
score += 1
舉例說明一下:
或者
其中第一個例子將number增1(這會從7變成8)。第二個例子將number減去1(從7變成6)。
E記法
我們來試試在IDLE中寫下以下兩個數字:
27000000000000000000000
和
0.000000000000000000032
看到這么多0,數不數得對還是個問題。
不過,在Python中,我們是可以用E記法來寫的。如上兩個數字,我們可以寫成:
2.7E22或2.7e22
3.2E-20或3.2e-20
這就是E記法,和我們學習的數學一樣。
但是,我們不要把指數求冪(**)與E記法(E或e)弄混了。
3**5 表示 3 * 3 * 3 * 3 * 3,等于243。
3e5 表示 3 * 10 * 10 * 10 * 10 * 10,等于30000.0。
我們可以看到E記法是個浮點數。
運算順序
下面哪一個正確?
2 + 3 * 4 = 20
還是
2 + 3 * 4 = 14
這要看你采用什么順序來計算。如果先做加法,會得到
2 + 3 = 5
然后得到
5 * 4 = 20
如果先做乘法,就會得到
3 * 4 = 12
然后是
2 + 12 = 14
第二個順序是正確的,所以正確答案是14。
在數學中有一種運算順序(order of operation),指定了先計算哪些操作符,后計算哪些操作符,而不管它們的書寫順序如何。
在我們的這個例子中盡管 + 號在 * 號前面,但是應當先算乘法。Python會遵循正確的數學規則,所以它會先做乘法再做加法。可以在交互模式中試試看能不能得到這個結果:
可以看到,Python使用的順序與你在數學課上學到的規則完全相同。指數運算最優先,然后是乘法,再后面是加減運算。
如果想先算2+3該怎么辦呢?
我們只需要在它兩邊加上括號(()),比如:
這一次,Python會先做2+3(因為有括號),可以得到5,然后再做乘法5*4,得到20。
再強調一次,Python的運算順序與數學課上講的是一樣的。
END
回顧
用Python如何完成基本數學運算。
整數和浮點數。
求冪(**)。
如何計算取余(余數)。
E記法。
測試題
Python中乘法使用哪個符號?
Python計算8/3的答案是什么?
怎么得到8/3的余數?
怎么得到8/3的小數結果?
Python中計算6*6*6*6的另一種做法是什么?
采用E記法,17 000 000要寫作什么?
4.56e-5如果按常規的寫法是什么(不是E記法)?
動手試一試
使用交互模式或者編寫一個小程序解決下面的問題。
(a)3個人在餐廳吃飯,想分攤飯費。總共花費35.27美元,他們還想留15美分的小費。每個人該怎么付錢?
(b)計算一個12.5mX16.7m的矩形房間的面積和周長。
寫一個程序,把溫度從華氏度轉換為攝氏度。轉換公式是C=5/9*(F-32)。(提示:當心整除問題)
你知道怎么計算坐車去某個地方需要花多長時間嗎?相應的公式(用文字表述)是“旅行時間等于距離除以速度”。編寫一個程序,計算以80km/h的速度行駛200km需要花多長時間,并顯示答案。
總結
以上是生活随笔為你收集整理的如何用python做计算_如何用Python做些基本的数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript看图器 汉字简体繁
- 下一篇: PAT Basic 1031