Python 世界的開端:四則運(yùn)算
編者按:本文基于Python2.x,與Python3.x存在差異。時(shí)間倉促未能及時(shí)更新,請(qǐng)觀看時(shí)注意分辨。我們將盡快更新。
用Python計(jì)算
一提到計(jì)算機(jī),當(dāng)然現(xiàn)在更多人把她叫做電腦,這兩個(gè)詞都是指computer。不管什么,只要提到她,普遍都會(huì)想到她能夠比較快地做加減乘除,甚至乘方開方等。乃至于,有的人在口語中區(qū)分不開計(jì)算機(jī)和計(jì)算器。
那么,做為零基礎(chǔ)學(xué)習(xí)這,也就從計(jì)算小學(xué)數(shù)學(xué)題目開始吧。因?yàn)閺倪@里開始,數(shù)學(xué)的基礎(chǔ)知識(shí)列為肯定過關(guān)了。
復(fù)習(xí)
還是先來重溫一下偉大時(shí)刻,打印hello world.
打開電腦,讓Python idle運(yùn)行起來,然后輸入:
>>> print 'Hello, World' Hello, World
細(xì)心的看官,是否注意到,我在這里用的是單引號(hào),上次用的是雙引號(hào)。兩者效果一樣,也就是在這種情況下,單引號(hào)和雙引號(hào)是一樣的效果,一定要是成對(duì)出現(xiàn)的,不能一半是單引號(hào),另外一半是雙引號(hào)。
四則運(yùn)算
按照下面要求,在ide中運(yùn)行,看看得到的結(jié)果和用小學(xué)數(shù)學(xué)知識(shí)運(yùn)算之后得到的結(jié)果是否一致
>>> 2+5 7 >>> 5-2 3 >>> 10/2 5 >>> 5*2 10 >>> 10/5+1 3 >>> 2*3-4 2
上面的運(yùn)算中,分別涉及到了四個(gè)運(yùn)算符號(hào):加(+)、減(-)、乘(*)、除(/)
另外,我相信看官已經(jīng)發(fā)現(xiàn)了一個(gè)重要的公理:
在計(jì)算機(jī)中,四則運(yùn)算和小學(xué)數(shù)學(xué)中學(xué)習(xí)過的四則運(yùn)算規(guī)則是一樣的
要不說人是高等動(dòng)物呢,自己發(fā)明的東西,一定要繼承自己已經(jīng)掌握的知識(shí),別跟自己的歷史過不去。偉大的科學(xué)家們,在當(dāng)初設(shè)計(jì)計(jì)算機(jī)的時(shí)候就想到列為現(xiàn)在學(xué)習(xí)的需要了,一定不能讓后世子孫再學(xué)新的運(yùn)算規(guī)則,就用小學(xué)數(shù)學(xué)里面的好了。感謝那些科學(xué)家先驅(qū)者,澤被后世。
下面計(jì)算三個(gè)算術(shù)題,看看結(jié)果是什么
- 4 + 2
- 4.0 + 2
- 4.0 + 2.0
看官可能憤怒了,這么簡單的題目,就不要?jiǎng)隈{計(jì)算機(jī)了,太浪費(fèi)了。
別著急,還是要在ide中運(yùn)算一下,然后看看結(jié)果,有沒有不一樣?要仔細(xì)觀察哦。
>>> 4+2 6 >>> 4.0+2 6.0 >>> 4.0+2.0 6.0
不一樣的地方是:第一個(gè)式子結(jié)果是6,后面兩個(gè)是6.0。
現(xiàn)在我們就要引入兩個(gè)數(shù)據(jù)類型:整數(shù)和浮點(diǎn)數(shù)
對(duì)這兩個(gè)的定義,不用死記硬背,google一下。記住愛因斯坦說的那句話:書上有的我都不記憶(是這么的說?好像是,大概意思,反正我也不記憶)。后半句他沒說,我補(bǔ)充一下:忘了就google。
定義1:類似4、-2、129486655、-988654、0這樣形式的數(shù),稱之為整數(shù)
定義2:類似4.0、-2.0、2344.123、3.1415926這樣形式的數(shù),稱之為浮點(diǎn)數(shù)
比較好理解,整數(shù),就是小學(xué)學(xué)過的整數(shù);浮點(diǎn)數(shù),就是小數(shù)。如果整數(shù)寫成小數(shù)形式,比如4寫成4.0,也就變成了浮點(diǎn)數(shù)。
愛學(xué)習(xí),就要有探索精神。看官在網(wǎng)上google一下整數(shù),會(huì)發(fā)現(xiàn)還有另外一個(gè)詞:長整數(shù)(型)。顧名思義,就是比較長的整數(shù)啦。在有的語言中,把這個(gè)做為單獨(dú)一類區(qū)分開,但是,在Python中,我們不用管這個(gè)了。只要是整數(shù),就只是整數(shù),不用區(qū)分長短(以前版本區(qū)分),因?yàn)閰^(qū)分沒有什么意思,而且跟小學(xué)學(xué)過的數(shù)學(xué)知識(shí)不協(xié)調(diào)。
還有一個(gè)問題,需要向看官交代一下,眼前可能用不到,但是會(huì)總有一些人用這個(gè)來忽悠你,當(dāng)他忽悠你的時(shí)候,下面的知識(shí)就用到了。
整數(shù)溢出問題
對(duì)于其它語言,整數(shù)溢出是必須正視的,但是,在Python里面,看官就無憂愁了,原因就是Python為我們解決了這個(gè)問題。
ok!看官可以在IDE中實(shí)驗(yàn)一下大整數(shù)相乘。
>>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566 152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L
看官是幸運(yùn)的,Python解憂愁,所以,選擇學(xué)習(xí)Python就是珍惜光陰了。
上面計(jì)算結(jié)果的數(shù)字最后有一個(gè)L,就表示這個(gè)數(shù)是一個(gè)長整數(shù),不過,看官不用管這點(diǎn),反正是Python為我們搞定了。
在結(jié)束本節(jié)之前,有兩個(gè)符號(hào)需要看官牢記(不記住也沒關(guān)系,可以隨時(shí)google,只不過記住后使用更方便)
- 整數(shù),用int表示,來自單詞:integer
- 浮點(diǎn)數(shù),用float表示,就是單詞:float
可以用一個(gè)命令:type(object)來檢測一個(gè)數(shù)是什么類型。
>>> type(4) <type 'int'> #4是int,整數(shù) >>> type(5.0) <type 'float'> #5.0是float,浮點(diǎn)數(shù) type(988776544222112233445566778899887766554433221133344455566677788998776543222344556678) <type 'long'> #是長整數(shù),也是一個(gè)整數(shù)
幾個(gè)常見函數(shù)
在這里就提到函數(shù),因?yàn)檫@個(gè)東西是經(jīng)常用到的。什么是函數(shù)?如果看官不知道此定義,可以去google。貌似是初二數(shù)學(xué)講的了。
有幾個(gè)常用的函數(shù),列一下,如果記不住也不要緊,知道有這些就好了,用的時(shí)候就google。
求絕對(duì)值
>>> abs(10) 10 >>> abs(-10) 10 >>> abs(-1.2) 1.2
四舍五入
>>> round(1.234)
1.0
>>> round(1.234,2)
1.23>>> #如果不清楚這個(gè)函數(shù)的用法,可以使用下面方法看幫助信息
>>> help(round)Help on built-in function round in module __builtin__:
round(...)
round(number[, ndigits]) -> floating point numberRound a number to a given precision in decimal digits (default 0 digits).
This always returns a floating point number. Precision may be negative.
冪函數(shù)
>>> pow(2,3) #2的3次方 8
math模塊(對(duì)于模塊可能還有點(diǎn)陌生,不過不要緊,先按照下面代碼實(shí)驗(yàn)一下,慢慢就理解了)
>>> import math #引入math模塊 >>> math.floor(32.8) #取整,不是四舍五入 32.0 >>> math.sqrt(4) #開平方 2.0
總結(jié)
- Python里的加減乘除按照小學(xué)數(shù)學(xué)規(guī)則執(zhí)行
- 不用擔(dān)心大整數(shù)問題,Python會(huì)自動(dòng)處理
- type(object)是一個(gè)有用的東西
————
本文完,如果你想繼續(xù)學(xué)習(xí),可以點(diǎn)擊下面的鏈接,繼續(xù)看: