數(shù)和四則運算

2023-02-07 14:01 更新

一提到計算機,當然現(xiàn)在更多人把她叫做電腦,這兩個詞都是指computer。不管什么,只要提到她,普遍都會想到她能夠比較快地做加減乘除,甚至乘方開方等。乃至于,有的人在口語中區(qū)分不開計算機和計算器。

有一篇名為《計算機前世》的文章,這樣講到:

還是先來看看計算機(computer)這個詞是怎么來的。 英文學得好的小伙伴看到這貨,computer 第一反應(yīng)好像是:“compute-er”是吧,應(yīng)該是個什么樣的人就對了,就是啊,“做計算的人”。 叮咚!恭喜你答對了。 最先被命名為 computer 的確實是人。也就是說,電子計算機(與早期的機械計算機)被給予這個名字是因為他們執(zhí)行的是此前被分配到人的工作。 “計算機”原來是工作崗位,它被用來定義一個工種,其任務(wù)是執(zhí)行計算諸如導航表,潮汐圖表,天文歷書和行星的位置要求的重復(fù)計算。從事這個工作的人就是 computer,而且大多是女神!

原文還附有如下圖片:

所以,以后要用第三人稱來稱呼computer,請用she(她)?,F(xiàn)在你明白為什么程序員中那么多“他”了吧,因為computer是“她”。

數(shù)

在python中,對數(shù)的規(guī)定比較簡單,基本在小學數(shù)學水平即可理解。

那么,做為零基礎(chǔ)學習這,也就從計算小學數(shù)學題目開始吧。因為從這里開始,數(shù)學的基礎(chǔ)知識列位肯定過關(guān)了。

>>> 3
3
>>> 3333333333333333333333333333333333333333
3333333333333333333333333333333333333333L
>>> 3.222222
3.222222

上面顯示的是在交互模式下,如果輸入3,就顯示了3,這樣的數(shù)稱為整數(shù),這個稱呼和小學數(shù)學一樣。

如果輸入一個比較大的數(shù),第二個,那么多個3組成的一個整數(shù),在python中稱之為長整數(shù)。為了表示某個數(shù)是長整數(shù),python會在其末尾顯示一個L。其實,現(xiàn)在的python已經(jīng)能夠自動將輸入的很大的整數(shù)視為長整數(shù)了。你不必在這方面進行區(qū)別。

第三個,在數(shù)學里面稱為小數(shù),這里你依然可以這么稱呼,不過就像很多編程語言一樣,習慣稱之為“浮點數(shù)”。至于這個名稱的由來,也是有點說道的,有興趣可以google.

上述舉例中,可以說都是無符號(或者說是非負數(shù)),如果要表示負數(shù),跟數(shù)學中的表示方法一樣,前面填上負號即可。

值得注意的是,我們這里說的都是十進制的數(shù)。

除了十進制,還有二進制、八進制、十六進制都是在編程中可能用到的,當然用六十進制的時候就比較少了(其實時間記錄方式就是典型的六十進制)。

具體每個數(shù)字,在Python中都是一個對象,比如前面輸入的3,就是一個對象。每個對象,在內(nèi)存中都有自己的一個地址,這個就是它的身份。

>>> id(3)
140574872
>>> id(3.222222)
140612356
>>> id(3.0)
140612356
>>>

用內(nèi)建函數(shù)id()可以查看每個對象的內(nèi)存地址,即身份。

內(nèi)建函數(shù),英文為built-in Function,讀者根據(jù)名字也能猜個八九不離十了。不錯,就是Python中已經(jīng)定義好的內(nèi)部函數(shù)。

以上三個不同的數(shù)字,是三個不同的對象,具有三個不同的內(nèi)存地址。特別要注意,在數(shù)學上,3和3.0是相等的,但是在這里,它們是不同的對象。 用id()得到的內(nèi)存地址,是只讀的,不能修改。

了解了“身份”,再來看“類型”,也有一個內(nèi)建函數(shù)供使用type()。

>>> type(3)
<type 'int'>
>>> type(3.0)
<type 'float'>
>>> type(3.222222)
<type 'float'>

用內(nèi)建函數(shù)能夠查看對象的類型。,說明3是整數(shù)類型(Interger);則告訴我們那個對象是浮點型(Floating point real number)。與id()的結(jié)果類似,type()得到的結(jié)果也是只讀的。

至于對象的值,在這里就是對象本身了。

看來對象也不難理解。請保持自信,繼續(xù)。

變量

僅僅寫出3、4、5是遠遠不夠的,在編程語言中,經(jīng)常要用到“變量”和“數(shù)”(在python中嚴格來講是對象)建立一個對應(yīng)關(guān)系。例如:

>>> x = 5
>>> x
5
>>> x = 6
>>> x
6

在這個例子中,x = 5就是在變量(x)和數(shù)(5)之間建立了對應(yīng)關(guān)系,接著又建立了x與6之間的對應(yīng)關(guān)系。我們可以看到,x先“是”5,后來“是”6。

在python中,有這樣一句話是非常重要的:對象有類型,變量無類型。怎么理解呢?

首先,5、6都是整數(shù),python中為它們?nèi)×艘粋€名字,叫做“整數(shù)”類型的數(shù)據(jù),或者說數(shù)據(jù)類型是整數(shù),用int表示。

當我們在python中寫入了5、6,computer姑娘就自動在她的內(nèi)存中某個地方給我們建立這兩個對象(對象的定義后面會講,這里你先用著,逐漸就明晰含義了),就好比建造了兩個雕塑,一個是形狀似5,一個形狀似6,這就兩個對象,這兩個對象的類型就是int.

那個x呢?就好比是一個標簽,當x = 5時,就是將x這個標簽拴在了5上了,通過這個x,就順延看到了5,于是在交互模式中,>>> x輸出的結(jié)果就是5,給人的感覺似乎是x就是5,事實是x這個標簽貼在5上面。同樣的道理,當x = 6時,標簽就換位置了,貼到6上面。

所以,這個標簽x沒有類型之說,它不僅可以貼在整數(shù)類型的對象上,還能貼在其它類型的對象上,比如后面會介紹到的str(字符串)類型的對象等等。

這是python區(qū)別于一些語言非常重要的地方。

四則運算

按照下面要求,在交互模式中運行,看看得到的結(jié)果和用小學數(shù)學知識運算之后得到的結(jié)果是否一致

>>> 2+5
7
>>> 5-2
3
>>> 10/2
5
>>> 5*2
10
>>> 10/5+1
3
>>> 2*3-4
2

上面的運算中,分別涉及到了四個運算符號:加(+)、減(-)、乘(*)、除(/)

另外,我相信看官已經(jīng)發(fā)現(xiàn)了一個重要的公理:

在計算機中,四則運算和小學數(shù)學中學習過的四則運算規(guī)則是一樣的

要不說人是高等動物呢,自己發(fā)明的東西,一定要繼承自己已經(jīng)掌握的知識,別跟自己的歷史過不去。偉大的科學家們,在當初設(shè)計計算機的時候就想到列位現(xiàn)在學習的需要了,一定不能讓后世子孫再學新的運算規(guī)則,就用小學數(shù)學里面的好了。感謝那些科學家先驅(qū)者,澤被后世。

下面計算三個算術(shù)題,看看結(jié)果是什么

  • 4 + 2
  • 4.0 + 2
  • 4.0 + 2.0

看官可能憤怒了,這么簡單的題目,就不要勞駕計算機了,太浪費了。

別著急,還是要運算一下,然后看看結(jié)果,有沒有不一樣?要仔細觀察哦。

>>> 4+2
6
>>> 4.0+2
6.0
>>> 4.0+2.0
6.0

不一樣的地方是:第一個式子結(jié)果是6,這是一個整數(shù);后面兩個是6.0,這是浮點數(shù)。

定義1:類似4、-2、129486655、-988654、0這樣形式的數(shù),稱之為整數(shù) 定義2:類似4.0、-2.0、2344.123、3.1415926這樣形式的數(shù),稱之為浮點數(shù)

對這兩個的定義,不用死記硬背,google一下。記住愛因斯坦說的那句話:書上有的我都不記憶(是這么的說?好像是,大概意思,反正我也不記憶)。后半句他沒說,我補充一下:忘了就google。

似乎計算機做一些四則運算是不在話下的,但是,有一個問題請你務(wù)必注意:在數(shù)學中,整數(shù)是可以無限大的,但是在計算機中,整數(shù)不能無限大。為什么呢?(我推薦你去google,其實計算機的基本知識中肯定學習過了。)因此,就會有某種情況出現(xiàn),就是參與運算的數(shù)或者運算結(jié)果超過了計算機中最大的數(shù)了,這種問題稱之為“整數(shù)溢出問題”。

整數(shù)溢出問題

這里有一篇專門討論這個問題的文章,推薦閱讀:整數(shù)溢出

對于其它語言,整數(shù)溢出是必須正視的,但是,在python里面,看官就無憂愁了,原因就是python為我們解決了這個問題,請閱讀拙文:大整數(shù)相乘

ok!看官可以在IDE中實驗一下大整數(shù)相乘。

>>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566
152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L

看官是幸運的,python解憂愁,所以,選擇學習python就是珍惜光陰了。

上面計算結(jié)果的數(shù)字最后有一個L,就表示這個數(shù)是一個長整數(shù),不過,看官不用管這點,反正是python為我們搞定了。

在結(jié)束本節(jié)之前,有兩個符號需要看官牢記(不記住也沒關(guān)系,可以隨時google,只不過記住后使用更方便)

  • 整數(shù),用int表示,來自單詞:integer
  • 浮點數(shù),用float表示,就是單詞:float

可以用一個命令:type(object)來檢測一個數(shù)是什么類型。

>>> type(4)
<type 'int'>    #4是int,整數(shù)
>>> type(5.0)
<type 'float'> #5.0是float,浮點數(shù)
type(988776544222112233445566778899887766554433221133344455566677788998776543222344556678)
<type 'long'>   #是長整數(shù),也是一個整數(shù)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號