Toán tử trong Python

Toán tử trong Python là một kí tự hay dấu, có chức năng thực hiện một số hoạt động trên một hay nhiều biến để tạo ra kết quả.

Toán tử

Trong Python, các toán tử được cung cấp trong module Operator (Lib/operator.py) bởi thư viện chuẩn của Python: Là một bộ các hàm chức năng, tương ứng với các toán tử của Python. 
Ví dụ, operator.add (x, y) hoặc x.__add__(y) tương đương với biểu thức x + y. Tên của các hàm chức năng này khá đặc biệt với các dấu gạch dưới (ví dụ có thể viết operator.__add__(x, y)). 
Tuy nhiên, có các biến thể không bắt đầu hoặc kết thúc bằng __ để cho việc sử dụng được tiện lợi. Toán tử là một trong số các thành phần cơ bản nhất trong một ngôn ngữ lập trình. Mỗi toán tử là một ký hiệu đặc biệt như: +-*/%... được map với các hàm (functions) tương ứng trong module operator vừa đề cập ở trên. Giúp cho việc sử dụng dễ dàng, đơn giản và ngắn gọn hơn. 
Ví dụ: 1 + 2, thì chữ số 1 và chữ số 2 được coi là toán hạng, ký hiệu +được gọi là toán tử. Toán tử này sẽ thực hiện phép toán cộng hai toán hạng 1 và 2, trả về kết quả là 3. Và nó được map với hàm add(1, 2) của module operator
Ví dụ:
# Ba phép toán sau đây là giống nhau và tương đương với a + b
a, b = 5, 6
>>> a.__add__(b)
11
>>> import operator
>>> operator.add(a, b)
11
>>> operator.__add__(a, b)
11

Phân loại

Python hỗ trợ các loại toán tử sau:
Định nghĩa và ví dụ cụ thể các loại toán tử như sau:

Nhóm toán tử số học

Toán tửCú phápHàmMiêu tả
+a+badd(a, b)Phép cộng
-a-bsub(a, b)Phép trừ
*a*bmul(a, b)Phép nhân
/a/btruediv(a, b)Phép chia
//a//bfloordiv(a, b)Phép chia làm tròn
%a%bmod(a, b)Phép chia lấy phần dư
**a**bpow(a, b)Phép lũy thừa
Ví dụ:
>>> a, b = 5, 6
>>> a + b #Phép cộng
11
>>> a - b #Phép trừ
-1
>>> a * b #Phép nhân
30
>>> a / b #Phép chia
0.8333333333333334
>>> a // b #Phép chia làm tròn
0
>>> a % b #Phép chia lấy phần dư
5
>>> a ** b #Phép lũy thừa
15625

Nhóm toán tử quan hệ

Toán tử quan hệ trong Python dùng để so sánh các giá trị tương ứng và trả về giá trị kiểu bool (True/False).

Toán tửCú phápHàmMiêu tả
>a > bgt(a, b)So sánh lớn hơn
>=a >= bge(a, b)So sánh lớn hơn hoặc bằng
<a < blt(a, b)So sánh bé hơn
<=a <= ble(a, b)So sánh bé hơn hoặc bằng
==a == beq(a, b)So sánh bằng
!=a != bne(a, b)So sánh khác
Ví dụ:
>>> a, b = 5, 6
>>> a > b # So sánh lớn hơn 
False
>>> a >= b # So sánh lớn hơn hoặc bằng
False
>>> a < b # So sánh bé hơn
True
>>> a <= b # So sánh bé hơn hoặc bằng
True
>>> a == b # So sánh bằng
False
>>> a != b # So sánh khác 
True

Nhóm toán tử gán

Toán tửCú phápMiêu tả
=a = bPhép gán b cho a
/=a /= bPhép chia a cho b và gán kết quả cho a
*=a *= bPhép nhân a và b rồi gán kết quả cho a
%=a %= bPhép chia lấy phần dư a cho b và gán kết quả cho a
+=a += bPhép cộng a với b và gán kết quả cho a
-=a -= bPhép trừ, trừ a cho b và gán kết quả cho a
//=a //= bPhép chia làm tròn a cho b và gán kết quả cho a
**=a **= bPhép tính a lũy thừa b và gán kết quả cho a
 |=  a |= bPhép or a và b sau đó gán kết quả cho a
&=a &= bPhép and a và b sau đó gán kết quả cho a
^=a ^= bPhép xor a và b sau đó gán kết quả cho a
<<=a <<= bPhép dịch trái nhị phân giữa a và b sao đó gán kết quả cho a
>>=a >>= bPhép dịch trái nhị phân giữa a và b sao đó gán kết quẩ cho a
Ví dụ:
>>> a, b = 5, 6
>>> a += b # tương đương với a = a + b
>>> a 
11
>>> a -= b # tương đương với a = a - b
>>> a 
-1
>>> a *= b # tương đương với a = a * b
>>> a 
30
>>> a /= b # tương đương với a = a / b
>>> a 
0.8333333333333334
>>> a //= b # tương đương với a = a // b
>>> a 
0
>>> a %= b # tương đương với a = a % b
>>> a 
5
>>> a **= b # tương đương với a = a ** b
>>> a 
15625

Nhóm toán tử logic

Toán tửCú phápMiêu tả
anda and bPhép và, True nếu cả 2 điều kiện đều đúng, ngược lại False
ora or bPhép hoặc, True nếu 1 trong 2 điều kiện đúng, ngược lại False
nota not bPhép phủ định, đảo ngược trạng thái logic của toán hạng
Là những toán tử thể hiện có mệnh đề AND, OR, NOT. Thường được sử dụng trong các biểu thức logic, có thể đi kèm với các toán tử quan hệ.
Ví dụ:
>>> 5 < 6 and 2 < 3
True
>>> 5 < 6 and 2 > 3
False
>>> 5 < 6 or 2 > 3
True
>>> 5 > 6 or 2 > 3
False
>>> not (5 > 6 or 2 > 3)
True

Nhóm toán tử membership

Toán tửCú phápMiêu tả
ina in bTrả về True nếu biến a thuộc biến b, ngược lại False
not ina not in bTrả về True nếu biến a không thuộc biến b, ngược lại False
Ví dụ:
>>> a, b = 5, [1, 2, 3, 4, 5]
>>> a in b
True
>>> a not in b
False

Nhóm toán tử identify

Toán tửCú phápMiêu tả
isa is bTrả về True nếu a và b cùng trỏ về một đối tượng, ngượi lại False
is nota is not bTrả về True nếu a và b không cùng trỏ về một đối tượng, ngượi lại False
Ví dụ:
>>> a = 5
>>> b = 4 + 1
>>> a is b
True
>>> a is not b
False

Nhóm toán tử thao tác bit

Toán tửCú phápMiêu tả
&a & bSao chép một bit tới kết quả nếu bit này tồn tại trong cả 2 toán hạng
| a | bSao chép một bit tới kết quả nếu bit này tồn tại trong bất kì toán hạng nào.
^a ^ bSao chéo bit nếu nó được set (chỉ bit 1) chỉ trong một toán hạng.
~a ~ bToán tử một ngôi, dung để đảo ngược bit.
>>a >> bToán tử dịch trái nhị phân, giá trị của toán hạng trái được dịch sang trái một số lượng bit bằng toán hạng phải.
<<a << bToán tử dịch phải nhị phân, giá trị của toán hạng trái được dịch sang phải một số lượng bit bằng toán hạng phải.
Ví dụ:
>>> a = 60 # 60 = 0011 1100
>>> b = 13 # 13 = 0000 1101
>>> a & b
12 # 0000 1100
>>> a | b
61 # 0011 1101
>>> a ^ b
49 # 0011 0001
>>> ~a
-61 # 1100 0011
>>> a << 2240 # 1111 0000
>>> a << 215 # 0000 1111

Thứ tự ưu tiên của các toán tử

Thứ tựToán tử
1**
2~+ , -
3*/%//
4+-
5>><<
6&
7^| 
8<=<>>=
9==!=
10=%=+=-=*=**=/=//=
11isis not
12innot in
13notorand
Trên đây là những ghi chép tổng quát về toán tử trong Python. Chi tiết hơn, bạn có thể tham khảo operator — Standard operators as functions
Toán tử trong Python Reviewed by Finn on November 08, 2018 Rating: 5

No comments:

Copyright © 0xpan's Blog 2018
Online:
Development by Nguyễn Nam Hồng + Finn