Các nội dung chính
- Giới thiệu
- Toán tử toán học (Arithmetic Operators) trong Python
- Toán tử so sánh
- Toán tử gán
- Toán tử Bitwise trong Python
- Toán tử Logic trong Python
- Toán tử thành viên (Membership Operators) trong Python
- Độ ưu tiên các toán tử trong Python
Giới thiệu
Các toán tử trong Python là các cấu trúc được sử dụng để thực hiện các phép tính trên các toán hạng. Chúng là các ký hiệu được sử dụng cho mục đích các phép toán logic, toán học và các phép toán khác.
Giả sử biểu thức 4 + 5 = 9. Trong đó, 4 và 5 được gọi là toán hạng và + được gọi là toán tử. Trong hướng dẫn này, chúng ta sẽ học về các loại toán tử khác nhau trong Python.
Các loại toán tử trong Python Ngôn ngữ Python hỗ trợ các loại toán tử sau đây.
- Toán tử toán học (Arithmetic Operators)
- Toán tử so sánh (Relational Operators)
- Toán tử gán giá trị (Assignment Operators)
- Toán tử logic (Logical Operators)
- Toán tử bit (Bitwise Operators)
- Toán tử thành viên (Membership Operators)
- Toán tử nhận dạng (Identity Operators)
Hãy xem nhanh tất cả các toán tử này một cách cụ thể.
Toán tử toán học (Arithmetic Operators) trong Python
Toán tử toán học trong Python được sử dụng để thực hiện các phép tính toán học trên các giá trị số. Những phép toán này bao gồm phép cộng, phép trừ, phép nhân, phép chia, phép chia lấy dư, phép lũy thừa và phép chia lấy nguyên.
Toán tử | Tên | Ví dụ |
---|---|---|
+ | Cộng | 2 + 3 = 5 |
- | Trừ | 5 - 2 = 3 |
* | Nhân | 2 * 3 = 6 |
/ | Chia | 7 / 2 = 3.5 |
% | Chia lấy dư | 7 % 2 = 1 |
** | Lũy thừa | 2 ** 3 = 8 |
// | Chia lấy nguyên | 7 // 2 = 3 |
Ví dụ
Sau đây là một ví dụ cho thấy tất cả các toán tử trên:
a = 21
b = 10
# Cộng
print ("a + b: ", a + b) # a + b: 31
# Trừ
print ("a - b: ", a - b) # a - b: 11
# Nhân
print ("a * b: ", a * b) # a * b: 210
# Chia
print ("a / b: ", a / b) # a / b: 2.1
# Chia lấy dư
print ("a % b: ", a % b) # a % b: 1
# Chia lấy nguyên
print ("a // b: ", a // b) # a ** b: 16679880978201
# Lũy thừa
print ("a ** b: ", a ** b) # a // b: 2
Toán tử so sánh
Toán tử so sánh trong Python là những toán tử so sánh giá trị giữa hai phía và quyết định mối quan hệ giữa chúng. Chúng cũng được gọi là toán tử quan hệ. Các toán tử này bao gồm bằng, không bằng, lớn hơn, nhỏ hơn, lớn hơn hoặc bằng và nhỏ hơn hoặc bằng.
Toán tử | Tên | Ví dụ |
---|---|---|
== | Bằng | a == b |
!= | Không bằng | a != b |
> | Lớn hơn | a > b |
< | Nhỏ hơn | a < b |
>= | Lớn hơn hoặc bằng | a >= b |
<= | Nhỏ hơn hoặc bằng | a <= b |
Ví dụ
Sau đây là một ví dụ cho thấy tất cả các toán tử trên:
a = 4
b = 5
# Bằng
print ("a == b : ", a == b) # a == b : False
# Không bằng
print ("a != b : ", a != b) # a != b : True
# Lớn hơn
print ("a > b : ", a > b) # a > b : False
# Nhỏ hơn
print ("a < b : ", a < b) # a < b : True
# Lớn hơn hoặc bằng
print ("a >= b : ", a >= b) # a >= b : False
# Bé hơn hoặc bằng
print ("a <= b : ", a <= b) # a <= b : True
Toán tử gán
Toán tử gán trong Python được sử dụng để gán giá trị cho các biến. Các toán tử này bao gồm toán tử gán đơn giản, toán tử cộng gán, toán tử trừ gán, toán tử nhân gán, toán tử chia và gán và nhiều toán tử khác.
Toán tử | Tên | Ví dụ |
---|---|---|
= | Gán | a = 10 |
+= | Cộng và gán | a += 10 tương đương với a = a + 10 |
-= | Trừ và gán | a -= 10 tương đương với a = a - 10 |
*= | Nhân và gán | a *= 10 tương đương với a = a * 10 |
/= | Chia và gán | a /= 10 tương đương với a = a / 10 |
%= | Chia lấy phần dư và gán | a %= 10 tương đương với a = a % 10 |
//= | Chia lấy phần nguyên và gán | a //= 10 tương đương với a = a // 10 |
**= | Lũy thừa và gán | a **= 10 tương đương với a = a ** 10 |
Ví dụ
Sau đây là một ví dụ cho thấy tất cả các toán tử trên:
# Toán tử gán
a = 10
# Toán tử Cộng và gán
a += 5
print ("a += 5 : ", a) # a += 5 : 105
# Toán tử Trừ và gán
a -= 5
print ("a -= 5 : ", a) # a -= 5 : 100
# Toán tử Nhân và gán
a *= 5
print ("a *= 5 : ", a) # a *= 5 : 500
# Toán tử Chia và gán
a /= 5
print ("a /= 5 : ",a) # a /= 5 : 100.0
# Toán tử Chia lấy phần dư và gán
a %= 3
print ("a %= 3 : ", a) # a %= 3 : 1.0
# Toán tử Chia lấy phần nguyên và gán
a //= 3
print ("a //= 3 : ", a) # a //= 3 : 0.0
# Toán tử Lũy thừa và gán
a **= 2
print ("a **= 2 : ", a) # a **= 2 : 1.0
Toán tử Bitwise trong Python
Toán tử Bitwise hoạt động trên các bit và thực hiện các phép toán bit by bit. Giả sử nếu a = 60 và b = 13; bây giờ trong định dạng nhị phân, giá trị của chúng sẽ là 0011 1100 và 0000 1101 tương ứng. Bảng sau liệt kê các toán tử Bitwise được hỗ trợ bởi ngôn ngữ Python cùng với một ví dụ cho mỗi toán tử đó:
Toán tử | Tên | Giải thích | Ví dụ |
---|---|---|---|
& | AND | Thi hành phép AND logic giữa các bit tại mỗi vị trí | 12 & 25 => 8 (0b1000) |
| | OR | Thi hành phép OR logic giữa các bit tại mỗi vị trí | 12 | 25 => 29 (0b11101) |
^ | XOR | Thi hành phép XOR logic giữa các bit tại mỗi vị trí | 12 ^ 25 => 21 (0b10101) |
~ | NOT | Phủ định toàn bộ bit của toán hạng | ~12 => -13 (0b11110011) |
« | Left Shift | Di chuyển bit của toán hạng bên trái, số lượng bằng vị trí | 12 « 2 => 48 (0b110000) |
» | Right Shift | Di chuyển bit của toán hạng bên phải, số lượng bằng vị trí | 12 » 2 => 3 (0b11) |
Ví dụ
Sau đây là một ví dụ cho thấy tất cả các toán tử trên:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
# Binary AND
c = a & b # 12 = 0000 1100
print ("a & b : ", c) # a & b : 12
# Binary OR
c = a | b # 61 = 0011 1101
print ("a | b : ", c) # a | b : 61
# Binary XOR
c = a ^ b # 49 = 0011 0001
print ("a ^ b : ", c) # a ^ b : 49
# Binary Ones Complement
c = ~a; # -61 = 1100 0011
print ("~a : ", c) # ~a : -61
# Binary Left Shift
c = a << 2; # 240 = 1111 0000
print ("a << 2 : ", c) # a >> 2 : 240
# Binary Right Shift
c = a >> 2; # 15 = 0000 1111
print ("a >> 2 : ", c) # a >> 2 : 15
Toán tử Logic trong Python
Ngôn ngữ Python hỗ trợ các toán tử logic sau.
Toán tử | Tên | Giải thích | Ví dụ |
---|---|---|---|
and | Và | Nếu cả hai biểu thức đều đúng thì kết quả là đúng, ngược lại kết quả là sai | True and False -> False |
or | Hoặc | Nếu một trong hai biểu thức đúng thì kết quả là đúng, cả hai biểu thức đều sai thì kết quả là sai | True or False -> True |
not | Phủ định | Đảo ngược kết quả của biểu thức, nếu kết quả là đúng thì trả về sai, ngược lại trả về đúng | not True -> False |
Toán tử thành viên (Membership Operators) trong Python
Toán tử thành viên (Membership Operators) trong Python là các toán tử được sử dụng để kiểm tra xem một giá trị có tồn tại trong một chuỗi hay không. Các chuỗi này có thể là chuỗi ký tự, danh sách, hoặc tuple. Có hai toán tử thành viên được giải thích như sau:
- Toán tử
is
trả về True nếu hai biến tham chiếu đến cùng một đối tượng. - Toán tử
is not
trả về True nếu hai biến tham chiếu đến đối tượng khác nhau.
Ví dụ:
5 in [1, 2, 3, 4, 5]
a in 'Hello, world!'
1 in (1, 2, 3)
6 not in [1, 2, 3, 4, 5]
'z' not in 'Hello, world!'
4 not in (1, 2, 3)
Chú ý: Toán tử thành viên (Membership Operators) được sử dụng để kiểm tra xem một phần tử có tồn tại trong một chuỗi (string), danh sách (list), tập hợp (set), hoặc bất kỳ đối tượng nào có thể lặp lại (iterable) trong Python hay không.
Độ ưu tiên các toán tử trong Python
Bảng sau liệt kê các toán tử trong Python theo thứ tự ưu tiên từ cao nhất đến thấp nhất.
Thứ tự ưu tiên | Các toán tử | Giải thích |
---|---|---|
1 | () |
Dấu ngoặc đơn (parentheses) |
2 | ** |
Phép lũy thừa (exponentiation) |
3 | ~ , +x , -x |
Phép phủ định bit (bitwise complement), Phép đảo dấu (unary positive/negative) |
* , / , // , % |
Phép nhân (multiplication), phép chia (division), phép chia lấy phần nguyên (floor division), phép chia lấy phần dư (modulo) | |
4 | + , - |
Phép cộng (addition), phép trừ (subtraction) |
5 | >> , << |
Phép dịch bit (shift right, shift left) |
6 | & |
Phép AND bit (bitwise AND) |
7 | ^ |
Phép XOR bit (bitwise exclusive OR) |
8 | | |
Phép OR bit (bitwise inclusive OR) |
9 | in , not in , is , is not , < , <= , > , >= , != , == |
Các phép so sánh (comparison) và kiểm tra sự tồn tại (membership) |
10 | = , %= , /= , //= , -= , += , *= , **= |
Các phép gán (assignment) |
11 | not |
Phép NOT logic (logical NOT) |
12 | and |
Phép AND logic (logical AND) |
13 | or |
Phép OR logic (logical OR) |
Chú ý: Thứ tự ưu tiên của các toán tử trong Python sẽ quyết định thứ tự tính toán của các biểu thức trong chương trình. Những toán tử có thứ tự ưu tiên cao hơn sẽ được tính toán trước những toán tử có thứ tự ưu tiên thấp hơn. Nếu muốn thay đổi thứ tự tính toán, người dùng có thể sử dụng dấu ngoặc đơn để bao quanh phần của biểu thức mà mình muốn tính toán trước.
Bình luận