運算符 —— Python教程

本節教程講解 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 還有一些高級運算符,例如身份運算符和成員運算符。

身份運算符(Identity Operators)

身份運算符用來比較兩個對象/變量的位置,能夠用來肯定對象是否共享同一個內存地址,這也就是說兩個相等的變量內存地址不必定相同。

另外,身份運算符也能夠用來肯定一個值是特定的類仍是類型。

運算符 做用 用法
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
複製代碼

成員運算符(Membership Operators)

成員運算符用來測試某值是不是對象(字符串、列表、元組或字典鍵)的成員。

在 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
複製代碼
相關文章
相關標籤/搜索