本節教程講解 Python 的運算法,例如算術、比較、賦值、邏輯、按位、身份(identity operator)和成員運算符。主要介紹語法和如何使用。html
每個運算符都有表明的特定符號,並使用一個或多個操做數(變量)來執行特定的操做。python
例如:a | b or a & b
。變量 a 和 b 是操做數,'|' 和 '&' 是運算符,'|' 運算符作二進制數的 OR 操做,'&' 運算符作二進制數的 AND 操做。算法
與許多編程語言同樣,Python 保留了一些特殊字符做爲運算符。每一個運算符都會執行一些運算,例如作加法、乘法來操縱數據和變量。將做爲輸入被傳遞給運算符的變量稱爲操做數。建議閱讀下 Python 的關鍵字。編程
例如:bash
>>> 7%4
3
複製代碼
% 是計算除法餘數的模運算符,數字 7 和 4 是執行輸入的操做數,最後的數字 3 是執行操做的結果。編程語言
使用算術運算符能夠作任何數學計算,例如加、減、乘、除、模和指數計算等等。Python 程序有不少地方使用了算術運算符,例如 eval 函數、聲明變量、計算和調用函數。ide
下面用列表描述內置的算術運算符:函數
運算符 | 做用 | 用法 |
---|---|---|
+ | 加法 —— 兩數之和 | a+b |
- | 減法 —— 兩數之差 | a-b |
* | 乘法 —— 兩數的乘積數 | a*b |
/ | 除法(浮點計算) —— 兩數之商 | a/b |
// | 除法(浮點計算) —— 兩數之商(無小數) | a//b |
% | 模 —— a 除 b 獲得的整數餘數 | a%b |
** | 指數 —— b 次 a 的乘積 | a**b |
例如:post
a=7
b=4
print('Sum : ', a+b)
print('Subtraction : ', a-b)
print('Multiplication : ', a*b)
print('Division (float) : ', a/b)
print('Division (floor) : ', a//b)
print('Modulus : ', a%b)
print('Exponent : ', a**b)
複製代碼
輸出結果:測試
Sum : 11
Subtraction : 3
Multiplication : 28
Division (float) : 1.75
Division (floor) : 1
Modulus : 3
Exponent : 2401
複製代碼
比較運算符可以肯定兩個值是否相等或一個值是否大於另外一個值,而後根據結果進行決策。
下面用列表描述內置的比較運算符:
運算符 | 做用 | 用法 |
---|---|---|
> | 大於 —— 左操做數大於右操做數則返回True | a>b |
< | 小於 —— 左操做數小於右操做數則返回True | a<b |
== | 等於 —— 兩個操做數相等則返回True | a==b |
!= | 不等於 —— 兩個操做數不相等則返回True | a!=b |
>= | 大於或等於 —— 左操做數大於或等於右操做數則返回True | a>=b |
<= | 小於或等於 —— 左操做數小於或等於右操做數則返回True | a<=b |
例如:
a=7
b=4
print('a > b is',a>b)
print('a < b is',a<b)
print('a == b is',a==b)
print('a != b is',a!=b)
print('a >= b is',a>=b)
print('a <= b is',a<=b)
複製代碼
輸出結果:
a > b is True
a < b is False
a == b is False
a != b is True
a >= b is True
a <= b is False
複製代碼
邏輯運算符能夠根據多種條件作出決策,執行後的操做結果是一個布爾值(True 或者 False)。
可是,並非全部邏輯運算符的結果是布爾值,例如 and 和 or 運算符返回的結果不是純布爾值(可表示布爾值),而 not 運算符返回的結果就是純布爾值。
下面用列表描述內置的邏輯運算符:
運算符 | 做用 | 用法 |
---|---|---|
and | 若是 a 是 false 返回 a,不然返回 b | a and b |
or | 若是 a 是 false 返回 b,不然返回 a | a or b |
not | 若是 a 是 false 返回 True,不然返回 False | not a |
例如:
a=7
b=4
print('a and b is',a and b)
print('a or b is',a or b)
print('not a is',not a)
複製代碼
輸出結果:
a and b is 4
a or b is 7
not a is False
複製代碼
按位運算符用來處理整數值的各個位,將整數值轉化成二進制序列來處理。
按位運算符通常用來檢查是否設置了特定位。例如物聯網(IOT)應用程序基因而否設置了特定位來從傳感器讀取數據。
下面用列表描述內置的位運算符:
運算符 | 做用 | 用法 |
---|---|---|
& | 按位 AND(與) —— 在位級別比較兩個操做數,兩個對應的位均爲 1 則返回 1 | a & b |
| | 按位 OR(或) —— 在位級別比較兩個操做數,任何一個位爲 1 則返回 1 | a | b |
~ | 按位 NOT(取反) —— 反轉單個操做數的全部位 | ~a |
^ | 按位 XOR(異或) —— 在位級別比較兩個操做數,當任何一個位爲 1 時返回 1(兩個都爲 1 時返回 0) | a ^ b |
>> | 右移 —— a 的二進制位右移 b 位 | a >> b |
<< | 左移 —— a 的二進制位左移 b 位 | a << b |
例如:
4 和 6 的二進制數分別是 00000100 和 00000110。如今咱們使用 AND 位運算符舉例。
a=4
b=6
print('a & b is',a & b)
複製代碼
輸出結果:
a & b is 4
複製代碼
這就進行了一次 AND(與) 操做。
0 0 0 0 0 1 0 0 &
0 0 0 0 0 1 1 0
---------------
0 0 0 0 0 1 0 0 # 對應的結果就是數字 4
複製代碼
Python 中能夠使用賦值運算符來定義變量值。
例如指令 a = 4 使用了原始賦值運算符,目的是將 4 的值賦給 a 變量。
下面用列表描述內置的賦值運算符:
運算符 | 例子 | 做用等同 |
---|---|---|
= | a=4 | a=4 |
+= | a+=4 | a=a+4 |
-= | a-=4 | a=a-4 |
*= | a*=4 | a=a*4 |
/= | a/=4 | a=a/4 |
%= | a%=4 | a=a%4 |
**= | a**=4 | a=a**4 |
&= | a&=4 | a=a&4 |
|= | a|=4 | a=a|4 |
^= | a^=4 | a=a^4 |
>>= | a>>=4 | a=a>>4 |
<<= | a<<=4 | a=a<<4 |
Python 還有一些高級運算符,例如身份運算符和成員運算符。
身份運算符用來比較兩個對象/變量的位置,能夠用來肯定對象是否共享同一個內存地址,這也就是說兩個相等的變量內存地址不必定相同。
另外,身份運算符也能夠用來肯定一個值是特定的類仍是類型。
運算符 | 做用 | 用法 |
---|---|---|
is | 兩個操做數都指向同對象返回 True,不然返回 False | a is b |
is not | 兩個操做數指向不一樣對象返回 True,不然返回 False | a is not b |
例如:
# 使用 'is' 運算符
a = 7
if (type(a) is int):
print("true")
else:
print("false")
# 使用 'is not' 運算符
b = 7.5
if (type(b) is not int):
print("true")
else:
print("false")
複製代碼
輸出結果:
true
true
複製代碼
成員運算符用來測試某值是不是對象(字符串、列表、元組或字典鍵)的成員。
在 C 語言中測試成員須要遍歷序列並檢查每個值,與 C 相比,Python 會使這項工做變得簡單不少。
運算符 | 做用 | 用法 |
---|---|---|
in | 值存在序列中返回 True | 7 in [3, 7, 9] |
not in | 值不存在序列中返回 True | 7 not in [3, 5, 9] |
例如:
str = 'Python operators'
dict = {6:'June',12:'Dec'}
print('P' in str)
print('Python' in str)
print('python' not in str)
print(6 in dict)
print('Dec' in dict)
複製代碼
輸出結果:
True
True
True
True
False
複製代碼