微信公衆號:碼農充電站pro
我的主頁:https://codeshellme.github.iohtml
靠代碼行數來衡量開發進度,就像是憑重量來衡量飛機制造的進度。
—— Bill Gatespython
目錄git
表達式
是代碼的重要組成部分,一個表達式由運算符
和操做數
兩部分組成。github
一個表達式就描述了對哪些數據
,進行了什麼樣的操做
。shell
以下就是一個表達式:微信
sum = 1 + 2
其中,=
和+
都是運算符,=
是賦值運算符,+
是相加運算符,sum
,1
,2
都是操做數。code
這句話的含義是,將1
與 2
相加,並將它們的結果賦值
給變量sum
。htm
Python 中包含豐富的運算符,支持各類運算。以下:blog
下面對這些運算符逐一進行介紹。排序
運算符 | 含義 |
---|---|
+ |
加 |
- |
減 |
* |
乘 |
/ |
除 |
// |
除,向下取整 |
% |
取餘 |
** |
冪運算 |
示例:
>>> a = 20 >>> b = 7 >>> >>> a + b 27 >>> a - b 13 >>> a * b 140 >>> a / b 2.857142857142857 >>> a // b 2 >>> a % b 6 >>> a ** b 1280000000
進行位運算時,會先將數字轉換成二進制,而後再作位運算。
運算符 | 含義 |
---|---|
& |
按位與 |
| |
按位或 |
^ |
按位異或 |
~ |
按位取反 |
<< |
左移 |
>> |
右移 |
示例:
>>> a = 20 >>> b = 7 >>> a & b 4 >>> a | b 23 >>> a ^ b 19 >>> ~a # a 按位取反 -21 >>> ~b # b 按位取反 -8 >>> a << 3 # a 左移3 位 160 >>> b >> 2 # b 右移2 位 1
關係運算符又叫比較運算符
,其計算結果爲True
或False
。
運算符 | 含義 |
---|---|
== |
是否相等 |
!= |
是否不等 |
> |
是否大於 |
< |
是否小於 |
>= |
是否大於等於 |
<= |
是否小於等於 |
示例:
>>> a = 20 >>> b = 7 >>> a == b False >>> a != b True >>> a > b True >>> a < b False >>> a >= b True >>> a <= b False
等號=
是最基本的賦值運算符,=
右邊的值稱爲右值
,=
左邊的值稱爲左值
。
賦值運算符=
的含義是將右值
賦值給左值
。
例以下面代碼,a
爲左值,b
爲右值,這行代碼的含義是,將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 |
**= |
a **= b 至關於 a = a ** b |
運算符 | 含義 |
---|---|
and |
邏輯與 |
or |
邏輯或 |
not |
邏輯非 |
示例:
>>> a = True >>> b = False >>> a and b False >>> a or b True >>> not a False >>> not b True
在數字中,非0
爲真,0
爲假:
>>> not 0 # 0 爲 False,not 0 爲 True True >>> not 1 # 1 爲 True,not 1 爲 False False >>> not 2 # 2 爲 True,not 2 爲 False False >>> not -1 # -1 爲 True,not -1 爲 False False >>> not -2 # -2 爲 True,not -2 爲 False False
其實,True
就是 1
,False
就是 0
:
>>> True.real 1 >>> False.real 0 >>> True == 1 True >>> False == 0 True
在字符串中,非空字符串
爲真,空字符串
爲假:
>>> not '' # '' 爲 False,not '' 爲 True True >>> not 'abc' # 'abc' 爲 True,not 'abc' 爲 False False
運算符有優先級之分,表達式在計算的時候,會先計算優先級較高的,處於同一優先級時,會從左到右
計算。
以下表達式,該表達式會先計算2 * 3
結果是6
,再計算1 + 6
,結果是 7
:
>>> 1 + 2 * 3 7
之因此會先計算 2 * 3
,就是由於*
的優先級高於+
的優先級。
小括號()
的優先級高於咱們上面介紹到的全部運算符的優先級,若是想改變計算順序,能夠使用小括號()
。
以下表達式,則會先計算1 + 2
結果爲3
,再計算3 * 3
,結果爲9
:
>>> (1 + 2) * 3 9
下表彙總了上文中介紹到的全部運算符的優先級,從高到低
排序,同一行(用,
分隔)中的運算符具備相同優先級:
運算符 | 含義 |
---|---|
() |
小括號內的表達式優先級最高 |
** |
冪運算 |
~x,+x,-x |
按位取反,正號,負號 |
*,/,%,// |
乘,除,取餘,整除 |
+,- |
加,減 |
<<,>> |
左移,右移 |
& |
按位與 |
^,| |
按位異或,按位或 |
>,<,>=,<= |
比較運算 |
==,!= |
等於運算 |
=,+=,-=,*=,/=,%=,//=,**= |
賦值運算 |
not,and,or |
邏輯運算 |
建議:推薦使用
小括號()
來顯示錶達式的計算順序,而不依賴運算符自己的優先級,這樣一目瞭然,方便維護。
(完。)
推薦閱讀:
Python 簡明教程 --- 2,第一個Python 程序
Python 簡明教程 --- 4,Python 變量與基本數據類型
歡迎關注做者公衆號,獲取更多技術乾貨。