Trong lập trình Python, toán tử được sử dụng để thực hiện các phép toán trên giá trị và biến. Chúng là các ký hiệu tiêu chuẩn để thực hiện các phép toán logic và số học. Bài viết này sẽ giới thiệu các loại toán tử trong Python.

1. Khái niệm toán tử trong Python
- Toán tử: Là các ký hiệu đặc biệt, ví dụ:
+
,*
,/
, v.v. - Toán hạng: Là giá trị mà toán tử được áp dụng lên.
2. Các loại toán tử trong Python
- Toán tử số học
- Toán tử so sánh
- Toán tử logic
- Toán tử bit
- Toán tử gán
- Toán tử nhận dạng và toán tử thành viên
3. Toán tử số học trong Python
Các toán tử số học được sử dụng để thực hiện các phép toán như cộng, trừ, nhân và chia.
Trong Python 3.x, phép chia /
trả về kết quả kiểu float
, còn trong Python 2.x, phép chia giữa hai số nguyên sẽ cho kết quả là số nguyên. Nếu muốn lấy phần nguyên trong Python 3.x, có thể sử dụng //
.
Ví dụ:
# Khai báo biến a = 15 b = 4 # Các phép toán số học print("Cộng:", a + b) print("Trừ:", a - b) print("Nhân:", a * b) print("Chia:", a / b) print("Chia lấy phần nguyên:", a // b) print("Lấy dư:", a % b) print("Lũy thừa:", a ** b)
Kết quả:
Cộng: 19
Trừ: 11
Nhân: 60
Chia: 3.75
Chia lấy phần nguyên: 3
Lấy dư: 3
Lũy thừa: 50625
4. Toán tử so sánh trong Python
Toán tử so sánh dùng để so sánh giá trị giữa hai biến, kết quả trả về True
nếu phép so sánh đúng hoặc False
nếu phép so sánh sai.
Ví dụ:
a = 13 b = 33 print(a > b) # False print(a < b) # True print(a == b) # False print(a != b) # True print(a >= b) # False print(a <= b) # True
Kết quả:
False
True
False
True
False
True
5. Toán tử logic trong Python
Toán tử logic trong Python được sử dụng để kết hợp hoặc thao tác trên các điều kiện và biểu thức boolean (True
hoặc False
). Chúng thường xuất hiện trong các câu lệnh điều kiện như if
, while
, hoặc return
trong các hàm.
Các loại toán tử logic trong Python
Python có ba loại toán tử logic chính:
Toán tử | Mô tả | Ví dụ |
---|---|---|
and | Trả về True nếu cả hai điều kiện đều đúng | (x > 5) and (y < 10) |
or | Trả về True nếu ít nhất một điều kiện đúng | (x > 5) or (y < 10) |
not | Đảo ngược giá trị của điều kiện | not (x > 5) |
5.1. Toán tử and
trong Python
Toán tử and
trả về True
chỉ khi cả hai điều kiện đều đúng, nếu có một điều kiện sai, kết quả sẽ là False
.
Ví dụ sử dụng and
x = 7 y = 12 # Kiểm tra cả hai điều kiện if x > 5 and y < 15: print("Cả hai điều kiện đều đúng") else: print("Một trong hai điều kiện sai")
Kết quả:
Cả hai điều kiện đều đúng
📌 Lưu ý: Nếu điều kiện đầu tiên là False
, Python sẽ không kiểm tra điều kiện thứ hai (gọi là short-circuiting).
x = 3 y = 12 # Điều kiện đầu tiên False -> Python bỏ qua điều kiện thứ hai print(x > 5 and y < 15) # False
5.2. Toán tử or
trong Python
Toán tử or
trả về True
nếu ít nhất một trong hai điều kiện đúng. Nó chỉ trả về False
khi cả hai điều kiện đều sai.
Ví dụ sử dụng or
x = 3 y = 12 if x > 5 or y < 15: print("Ít nhất một điều kiện đúng") else: print("Cả hai điều kiện đều sai")
Kết quả:
Ít nhất một điều kiện đúng
📌 Lưu ý: Nếu điều kiện đầu tiên là True
, Python sẽ không kiểm tra điều kiện thứ hai (short-circuiting).
x = 10 y = 20 # Điều kiện đầu tiên đúng -> bỏ qua điều kiện thứ hai print(x > 5 or y < 15) # True
5.3. Toán tử not
trong Python
Toán tử not
đảo ngược giá trị của điều kiện. Nếu điều kiện ban đầu là True
, not
sẽ biến nó thành False
và ngược lại.
Ví dụ sử dụng not
x = 5 if not x > 10: print("Điều kiện bị đảo ngược thành True") else: print("Điều kiện bị đảo ngược thành False")
Kết quả:
Điều kiện bị đảo ngược thành True
📌 Ứng dụng của not
:
- Kiểm tra biến có giá trị rỗng (
None
,[]
,{}
,""
…) - Xác định trạng thái
False
trong điều kiện
list_items = [] if not list_items: print("Danh sách rỗng")
Kết quả:
Danh sách rỗng
5.4. Thứ tự ưu tiên của toán tử logic trong Python
Trong Python, độ ưu tiên của toán tử logic được xếp theo thứ tự:
not
(cao nhất)and
or
(thấp nhất)
📌 Ví dụ về thứ tự ưu tiên:
x = True y = False z = True result = not x or y and z print(result) # False
📌 Cách đọc lệnh trên:
not x
→not True
→False
y and z
→False and True
→False
False or False
→False
Nếu muốn thay đổi thứ tự ưu tiên, sử dụng dấu ngoặc ()
để nhóm biểu thức:
result = not (x or y) and z print(result) # False
5.5. Ứng dụng thực tế của toán tử logic
✅ Kiểm tra đăng nhập hợp lệ:
username = "admin" password = "12345" if username == "admin" and password == "12345": print("Đăng nhập thành công") else: print("Sai tên đăng nhập hoặc mật khẩu")
✅ Kiểm tra điều kiện hợp lệ của biến
age = 20 has_license = True if age >= 18 and has_license: print("Bạn đủ điều kiện lái xe") else: print("Bạn không đủ điều kiện")
✅ Ứng dụng trong trò chơi (Game Development)
health = 50 mana = 30 if health > 0 and mana > 0: print("Nhân vật vẫn còn sống") else: print("Nhân vật đã chết")
6. Toán tử bit trong Python
6. Toán tử bit trong Python
Toán tử bitwise trong Python là các toán tử thao tác trực tiếp trên các bit nhị phân của số nguyên (int
). Chúng thực hiện các phép toán như AND, OR, XOR, dịch bit trái/phải, đảo bit,…
📌 Ứng dụng của toán tử bit:
- Tối ưu hóa hiệu suất trong xử lý số học
- Nén và mã hóa dữ liệu (mã hóa, bảo mật)
- Điều khiển phần cứng, lập trình nhúng
- Xử lý dữ liệu nhị phân (hình ảnh, âm thanh)
6.1. Danh sách các toán tử bit trong Python
Toán tử | Ký hiệu | Chức năng | Ví dụ |
---|---|---|---|
AND bitwise | & | Trả về 1 nếu cả hai bit đều là 1 | 5 & 3 → 101 & 011 = 001 → 1 |
OR bitwise | | | Nếu ít nhất một bit là 1 , kết quả sẽ là 1 .Nếu cả hai bit đều là 0 , kết quả sẽ là 0 . | Trả về 1 nếu ít nhất một bit là 1 |
XOR bitwise | ^ | Trả về 1 nếu hai bit khác nhau | 5 ^ 3 → 101 ^ 011 = 110 → 6 |
NOT bitwise | ~ | Đảo tất cả các bit (bit 1 thành 0 và ngược lại) | ~5 → -(5 + 1) → -6 |
Dịch trái | << | Dịch tất cả các bit sang trái (nhân 2^n) | 5 << 1 → 101 << 1 = 1010 → 10 |
Dịch phải | >> | Dịch tất cả các bit sang phải (chia 2^n) | 5 >> 1 → 101 >> 1 = 10 → 2 |
6.2. Toán tử AND bitwise (&
)
Phép AND bitwise giữ lại các bit là 1
nếu cả hai toán hạng có giá trị 1
tại cùng một vị trí.
Ví dụ toán tử &
a = 5 # 101 (nhị phân) b = 3 # 011 (nhị phân) result = a & b # 101 & 011 = 001 (nhị phân) = 1 print("AND bitwise:", result) # Output: 1
6.3. Toán tử OR bitwise (|
)
Phép OR bitwise giữ lại 1
nếu ít nhất một toán hạng có giá trị 1
tại cùng một vị trí.
Ví dụ toán tử |
a = 5 # 101 b = 3 # 011 result = a | b # 101 | 011 = 111 (nhị phân) = 7 print("OR bitwise:", result) # Output: 7
6.4. Toán tử XOR bitwise (^
)
Phép XOR bitwise trả về 1
nếu hai bit khác nhau, nếu giống nhau trả về 0
.
Ví dụ toán tử ^
a = 5 # 101 b = 3 # 011 result = a ^ b # 101 ^ 011 = 110 (nhị phân) = 6 print("XOR bitwise:", result) # Output: 6
6.5. Toán tử NOT bitwise (~
)
Phép NOT bitwise đảo tất cả các bit của số nguyên.
🔹 Cách tính NOT của số x
:~x = -(x + 1)
Ví dụ toán tử ~
a = 5 # 101 (nhị phân) result = ~a # -(5 + 1) = -6 print("NOT bitwise:", result) # Output: -6
6.6. Toán tử dịch trái (<<
)
Phép dịch trái (<<
) sẽ dịch tất cả các bit sang trái n lần, tương đương với nhân 2^n
.
Ví dụ toán tử <<
a = 5 # 101 (nhị phân) result = a << 1 # 101 << 1 = 1010 (nhị phân) = 10 print("Dịch trái:", result) # Output: 10
💡 Công thức: a << n = a * 2^n
Ví dụ:
5 << 1 = 5 * 2^1 = 10
5 << 2 = 5 * 2^2 = 20
6.7. Toán tử dịch phải (>>
)
Phép dịch phải (>>
) sẽ dịch tất cả các bit sang phải n lần, tương đương với chia 2^n
.
Ví dụ toán tử >>
a = 5 # 101 (nhị phân) result = a >> 1 # 101 >> 1 = 10 (nhị phân) = 2 print("Dịch phải:", result) # Output: 2
💡 Công thức: a >> n = a / 2^n
Ví dụ:
5 >> 1 = 5 / 2^1 = 2
5 >> 2 = 5 / 2^2 = 1
6.8. Ứng dụng thực tế của toán tử bit
✅ Kiểm tra số chẵn/lẻ (dùng AND &
)
n = 10 if n & 1 == 0: print("Số chẵn") else: print("Số lẻ")
🔹 Giải thích:
- Nếu số
n
có bit cuối cùng là0
→ số chẵn - Nếu số
n
có bit cuối cùng là1
→ số lẻ
✅ Hoán đổi hai số mà không cần biến tạm (dùng XOR ^
)
a = 10 b = 20 a = a ^ b b = a ^ b a = a ^ b print("Sau khi hoán đổi:", a, b)
✅ Tính toán nhanh hơn bằng dịch bit (<<
, >>
)
x = 5 print("Nhân 5 với 2:", x << 1) # 5 * 2 = 10 print("Chia 5 cho 2:", x >> 1) # 5 / 2 = 2
Tóm tắt về toán tử bitwise trong Python
&
→ AND: Cả hai bit đều là1
thì kết quả là1
|
→ OR: Ít nhất một bit là1
thì kết quả là1
^
→ XOR: Hai bit khác nhau thì kết quả là1
~
→ NOT: Đảo ngược bit (~x = -(x + 1)
)<<
→ Dịch trái (nhân2^n
)>>
→ Dịch phải (chia2^n
)
💡 Ghi nhớ:
- Dịch trái (
<<
) tăng giá trị số - Dịch phải (
>>
) giảm giá trị số - XOR (
^
) có thể dùng để hoán đổi số
7. Toán tử gán trong Python
Toán tử gán được sử dụng để gán giá trị cho biến.
Ví dụ:
a = 10 b = a print(b) # 10 b += a print(b) # 20 b -= a print(b) # 10 b *= a print(b) # 100 b <<= a print(b) # 102400
8. Toán tử nhận dạng trong Python
Toán tử is
và is not
được sử dụng để kiểm tra xem hai biến có trỏ đến cùng một vùng nhớ hay không.
Ví dụ:
a = 10 b = 20 c = a print(a is not b) # True print(a is c) # True
9. Toán tử thành viên trong Python
Toán tử in
và not in
được sử dụng để kiểm tra xem một giá trị có tồn tại trong danh sách hay không.
Ví dụ:
x = 24 y = 20 lst = [10, 20, 30, 40, 50] if x not in lst: print("x không có trong danh sách") else: print("x có trong danh sách") if y in lst: print("y có trong danh sách") else: print("y không có trong danh sách")
Kết quả:
x không có trong danh sách
y có trong danh sách
10. Toán tử ba ngôi trong Python
Toán tử ba ngôi (ternary operator) giúp viết điều kiện if-else
ngắn gọn hơn.
Cú pháp:
[giá trị nếu đúng] if [điều kiện] else [giá trị nếu sai]
Ví dụ:
a, b = 10, 20 min_value = a if a < b else b print(min_value) # 10
11. Độ ưu tiên và tính kết hợp của toán tử
Python có quy tắc xác định thứ tự ưu tiên khi sử dụng nhiều toán tử cùng lúc.
Ví dụ:
expr = 10 + 20 * 30 print(expr) # 610 name = "Alex" age = 0 if name == "Alex" or name == "John" and age >= 2: print("Chào mừng!") else: print("Tạm biệt!")
Kết quả:
610
Chào mừng!
12. Bài tập thực hành toán tử Python
Câu 1: Thực hiện các phép toán số học trên số nguyên
num1 = 5 num2 = 2 tong = num1 + num2 hieu = num1 - num2 tich = num1 * num2 thuong = num1 / num2 thuong_nguyen = num1 // num2 so_du = num1 % num2 print("Tổng:", tong) print("Hiệu:", hieu) print("Tích:", tich) print("Thương:", thuong) print("Thương nguyên:", thuong_nguyen) print("Số dư:", so_du)