Python裏有不少運算符(operator),這節就讓咱們來詳細學一學。html
注意:本文沒有特別說明的地方,只考慮bool、int、float三種類型。例如「兩邊操做數類型相同時,獲得的結果爲操做數類型」這句話只須要考慮上述三種類型就能夠了。less
+運算符將兩個數相加。例如1+2等於3,1.23+4.56等於5.79。ide
+運算符用於一個數前時等於它自己。例如+(-2)等於-2,+2等於2。spa
-運算符將兩個數相減。例如4-1等於3,1.23-4.56等於-3.33。code
-運算符也能夠計算一個數的相反數。例如-(-7)等於7。htm
*運算符將兩個數相乘。例如12*7等於84,4.5*0.9等於4.05。blog
/運算符將兩個數相除。例如16/4等於4.0,4/3等於1.33333...。注意/獲得的必定是float類型。若是除數爲0,會產生ZeroDivisionError。教程
//運算符將兩個數相除,獲得答案的整數部分。例如4//3等於1,4.0//3.0等於1.0。若是除數爲0,會產生ZeroDivisionError。ip
%運算符求兩個數相除的餘數,也叫模。例如4%3等於1,4.0%3.0等於1.0。若是除數爲0,會產生ZeroDivisionError。ci
**運算符用來計算乘方。a ** b獲得a的b次方。例如,2 ** 7等於128,4 ** -2等於0.0625。
在除了/之外的運算符中,兩邊操做數類型相同時,獲得的結果爲操做數類型;對於/運算符,獲得的結果必定爲float類型。
大於運算符用來判斷一個數是否大於另外一個數。結果爲bool,若是大於返回True,不然返回False。例如1>0爲True,1>2爲False。
小於運算符用來判斷一個數是否小於另外一個數。結果爲bool,若是小於返回True,不然返回False。例如0<1爲True,1<0爲False。
等於運算符用來判斷一個數是否等於另外一個數。結果爲bool,若是等於返回True,不然返回False。例如1+1==2爲True,1+1==3爲False。
注意區分==和=,後者是賦值號。a = b表示將b賦給a,a == b表示a與b是否相等。請勿混淆。
不等於運算符用來判斷一個數是否不等於另外一個數。結果爲bool,若是不等於返回True,不然返回False。例如1+1!=3爲True,1+1!=2爲False。
大於等於運算符用來判斷一個數是否大於或等於另外一個數。結果爲bool,若是大於或等於返回True,不然返回False。例如1>=1爲True,0>=1爲False。
小於等於運算符用來判斷一個數是否小於或等於另外一個數。結果爲bool,若是小於或等於返回True,不然返回False。例如1<=1爲True,1<=0爲False。
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運算符(通常)用於兩個布爾值之間,若是兩邊有任意一個爲True,則返回True,不然返回False。例如1 > 0 or 1 > 一、True or True、True or False爲True,1 == 2 or 1 == 3爲False。
or也能夠用於其它類型,之後會有更深刻的介紹。
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的縮略形式。
True爲1,False爲0。
True爲1.0,False爲0.0。
不爲0轉換爲True,爲0轉換爲False。
值不變,可是類型改變。例如1變成1.0,4變成4.0。
不爲0.0轉換爲True,爲0.0轉換爲False。
向0取整。若是值爲整數(例如1.0、2.0),不變;若是值爲整數,取小於該數的最大整數;若是值爲小數,取大於該數的最小整數。整數例如1.5->1,-1.5->-1。
其實還有更多的轉換規則,更多的之後再討論。
當一個有兩個操做數的運算符兩邊操做數類型不一樣時,就會出現隱式類型轉換。限於目前讀者的Python水平,只講關於+、-、*、/、//、%、**這7個運算符的類型轉換。
在Python中,類型的級別是不一樣的,從低到高依次是bool、int、float(這不表明沒有其它類型,還記得嗎,文章前面說只考慮這三種類型)。
將兩邊的操做數都轉成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
上面說的是隱式類型轉換,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
之後會補充優先級概念。若是不在cnblogs上發現本文,請訪問http://www.cnblogs.com/collectionne/p/6853051.html查看完整文章(也可能還沒補充)。
1. Python的算術運算符有+、-、*、/、//、%、**。
2. Python的比較運算符有==、>、<、>=、<=。
3. Python的邏輯運算符有and、or、not。
4. Python的賦值運算符有+=、-=、*=、/=、//=、%=、**=。
5. 接受兩個操做數的運算符的操做數類型不一致時,會有隱式類型轉換。
6. 顯式類型轉換格式:type(value)。