Python教程(2.3)——運算符和類型轉換

Python裏有不少運算符(operator),這節就讓咱們來詳細學一學。html

 

注意:本文沒有特別說明的地方,只考慮bool、int、float三種類型。例如「兩邊操做數類型相同時,獲得的結果爲操做數類型」這句話只須要考慮上述三種類型就能夠了。less

 

算術運算符

 

加運算符(plus,+)

 

+運算符將兩個數相加。例如1+2等於3,1.23+4.56等於5.79。ide

 

+運算符用於一個數前時等於它自己。例如+(-2)等於-2,+2等於2。spa

 

減運算符(minus,-)

 

-運算符將兩個數相減。例如4-1等於3,1.23-4.56等於-3.33。code

 

-運算符也能夠計算一個數的相反數。例如-(-7)等於7。htm

 

乘運算符(multiply ... by ...,*)

 

*運算符將兩個數相乘。例如12*7等於84,4.5*0.9等於4.05。blog

 

除運算符(divided by,/)

 

/運算符將兩個數相除。例如16/4等於4.0,4/3等於1.33333...。注意/獲得的必定是float類型。若是除數爲0,會產生ZeroDivisionError。教程

 

地板除運算符(floor division,//)

 

//運算符將兩個數相除,獲得答案的整數部分。例如4//3等於1,4.0//3.0等於1.0。若是除數爲0,會產生ZeroDivisionError。ip

 

取餘運算符(modulo,%)

 

%運算符求兩個數相除的餘數,也叫。例如4%3等於1,4.0%3.0等於1.0。若是除數爲0,會產生ZeroDivisionError。ci

 

乘方運算符(power,**)

 

**運算符用來計算乘方。a ** b獲得a的b次方。例如,2 ** 7等於128,4 ** -2等於0.0625。

 

在除了/之外的運算符中,兩邊操做數類型相同時,獲得的結果爲操做數類型;對於/運算符,獲得的結果必定爲float類型。

 

比較運算符

 

大於運算符(greater than,>)

 

大於運算符用來判斷一個數是否大於另外一個數。結果爲bool,若是大於返回True,不然返回False。例如1>0爲True,1>2爲False。

 

小於運算符(lesser than,<)

 

小於運算符用來判斷一個數是否小於另外一個數。結果爲bool,若是小於返回True,不然返回False。例如0<1爲True,1<0爲False。

 

等於運算符(equal to,==)

 

等於運算符用來判斷一個數是否等於另外一個數。結果爲bool,若是等於返回True,不然返回False。例如1+1==2爲True,1+1==3爲False。

 

注意區分==和=,後者是賦值號。a = b表示將b賦給a,a == b表示a與b是否相等。請勿混淆。

 

不等於運算符(not equal to,!=)

 

不等於運算符用來判斷一個數是否不等於另外一個數。結果爲bool,若是不等於返回True,不然返回False。例如1+1!=3爲True,1+1!=2爲False。

 

大於等於運算符(greater than or equal to,>=)

 

大於等於運算符用來判斷一個數是否大於或等於另外一個數。結果爲bool,若是大於或等於返回True,不然返回False。例如1>=1爲True,0>=1爲False。

 

小於等於運算符(lesser than or equal to,<=)

 

小於等於運算符用來判斷一個數是否小於或等於另外一個數。結果爲bool,若是小於或等於返回True,不然返回False。例如1<=1爲True,1<=0爲False。

 

邏輯運算符

 

and運算符

 

and運算符(通常)用於兩個布爾值之間,若是兩邊都爲True,則返回True,不然返回False。例如True and True、1 > 0 and 1 > -1爲True,True and False、False and False、1 == 0 and 1 > 0爲False。

 

and也能夠用於其它類型,之後會有更深刻的介紹。

 

or運算符

 

or運算符(通常)用於兩個布爾值之間,若是兩邊有任意一個爲True,則返回True,不然返回False。例如1 > 0 or 1 > 一、True or True、True or False爲True,1 == 2 or 1 == 3爲False。

 

or也能夠用於其它類型,之後會有更深刻的介紹。

 

not運算符

 

not運算符(通常)用於一個布爾值以前,若是該值爲True,則返回False,不然返回True。例如not True等於False,not 1 == 0爲True。

 

not也能夠用於其它類型,之後會有更深刻的介紹。

 

賦值運算符

 

=運算符

 

=運算符將右邊的值賦給左邊的變量。例如:

 

>>> a = 0
>>> a
0
>>> a = 10
>>> a
10
>>> a = True
>>> a
True

 

+=運算符

 

+=運算符將左邊的變量加上右邊的值。a += b是a = a + b的縮略形式。

 

-=運算符

 

-=運算符將左邊的變量減去右邊的值。a -= b是a = a - b的縮略形式。

 

*=運算符

 

*=運算符將左邊的變量乘以右邊的值。a *= b是a = a * b的縮略形式。

 

/=運算符

 

/=運算符將左邊的變量除以右邊的值。a /= b是a = a / b的縮略形式。

 

//=運算符

 

//=運算符將左邊的變量地板除右邊的值。a //= b是a = a // b的縮略形式。

 

%=運算符

 

%=運算符將左邊的變量模右邊的值。a %= b是a = a % b的縮略形式。

 

**=運算符

 

**=運算符計算左邊變量的右邊次方(聽起來很奇怪)並賦給左邊變量。a **= b是a = a ** b的縮略形式。

 

類型轉換

 

轉換規則

 

bool->int

 

True爲1,False爲0。

 

bool->float

 

True爲1.0,False爲0.0。

 

int->bool

 

不爲0轉換爲True,爲0轉換爲False。

 

int->float

 

值不變,可是類型改變。例如1變成1.0,4變成4.0。

 

float->bool

 

不爲0.0轉換爲True,爲0.0轉換爲False。

 

float->int

 

向0取整。若是值爲整數(例如1.0、2.0),不變;若是值爲整數,取小於該數的最大整數;若是值爲小數,取大於該數的最小整數。整數例如1.5->1,-1.5->-1。

 

其實還有更多的轉換規則,更多的之後再討論。

 

隱式類型轉換(implicit type cast)

 

當一個有兩個操做數的運算符兩邊操做數類型不一樣時,就會出現隱式類型轉換。限於目前讀者的Python水平,只講關於+、-、*、/、//、%、**這7個運算符的類型轉換。

 

在Python中,類型的級別是不一樣的,從低到高依次是bool、int、float(這不表明沒有其它類型,還記得嗎,文章前面說只考慮這三種類型)。

 

兩邊都是bool的狀況

 

將兩邊的操做數都轉成int類型。對於除/之外的運算符,結果爲int類型。對於/運算符,結果爲float類型。

 

其它狀況

 

將擁有低級類型的操做數轉換成高級類型。對於除/之外的運算符,結果爲高級類型。對於/運算符,結果爲float類型。

 

例如:

 

>>> True + False
1
>>> True - 2
-1
>>> 1.5 - True
0.5
>>> 1.2 * 7
8.4
>>> 1.7 - 4
-2.3

 

顯式類型轉換(explicit type cast)

 

上面說的是隱式類型轉換,Python也容許顯式類型轉換。顯式類型轉換指用戶明確指出要進行類型轉換。

 

顯式類型轉換的格式爲type(value),type爲目標類型,value爲要轉換的值。例如int(2.5)表示將2.5轉換成int類型,即2;float(2)表示將2轉換成float類型,即2.0。

 

注意,對於變量,使用顯式類型轉換並不會改變其類型:

 

>>> a = 10.5
>>> int(a)
10
>>> a
10.5

 

雖然中間輸出了a轉換成int以後的值,但這只是個零時的值,不會改變a的類型。只有賦值才能夠改變:

 

>>> a = int(a)
>>> a
10

 

注意

 

有個地方要注意:在類型轉換中,只會暫時轉換變量的值的類型,不會改變變量類型!只有修改變量值纔會出現類型上的變化。例如:

 

>>> a = 10
>>> a + 10.0        # a is still int!
20.0
>>> a += 10.0      # a is float!
>>> a
20.0

 

ToDo

 

之後會補充優先級概念。若是不在cnblogs上發現本文,請訪問http://www.cnblogs.com/collectionne/p/6853051.html查看完整文章(也可能還沒補充)。

 

小結

 

1. Python的算術運算符有+、-、*、/、//、%、**。

2. Python的比較運算符有==、>、<、>=、<=。

3. Python的邏輯運算符有and、or、not。

4. Python的賦值運算符有+=、-=、*=、/=、//=、%=、**=。

5. 接受兩個操做數的運算符的操做數類型不一致時,會有隱式類型轉換。

6. 顯式類型轉換格式:type(value)。

相關文章
相關標籤/搜索