Toán tử (operator) là các ký hiệu đặc biệt trong Python để thực hiện các phép tính số học hoặc logic trên các giá trị hoặc biến. Python hỗ trợ các toán tử như:
- Toán tử số học (arithmetic operator)
- Toán tử so sánh (comparison operator)
- Toán tử logic (logical operator)
- Toán tử trên bit (bitwise operator)
- Toán tử gán (assignment operator)
- Một số toán tử khác
1. Toán tử số học (arithmetic operator)
Bảng bên dưới thể hiện các toán tử số học trong Python.Toán tử (operator) Ý nghĩa Ví dụ + Cộng 2 toán hạng x + y+ 2 – Trừ 2 toán hạng x – y- 2 * Nhân 2 toán hạng x * y / Toán hạng bên trái bị chia bởi toán hạng bên phải (kết quả luôn luôn là số thực) x / y % Trả về phần dư khi chia toán tử bên trái cho toán tử bên phải x % y // Trả về phần nguyên khi chia toán tử bên trái cho toán tử bên phải x // y ** Toán hạng bên trái lũy thừa toán hạng bên phải x**y (có nghĩa là xy)
Ví dụ:
x = 9
y = 4
# Output: x + y = 13
print('x + y =', x+y)
# Output: x - y = 5
print('x - y =',x-y)
# Output: x * y = 36
print('x * y =', x*y)
# Output: x / y = 2.25
print('x / y =', x/y)
# Output: x % y = 1
print('x % y =', x%y)
# Output: x // y = 2
print('x // y =', x//y)
# Output: x ** y = 6561
print('x ** y =', x**y)
Kết quả
x + y = 13
x - y = 5
x * y = 36
x / y = 2.25
x % y = 1
x // y = 2
x ** y = 6561
2. Toán tử so sánh (comparison operator)
Bảng bên dưới thể hiện các toán tử so sánh trong Python.Toán tử (operator) Ý nghĩa Ví dụ > Trả về True nếu toán hạng bên trái lớn hơn toán hạng bên phải và ngược lại trả về False x > y < Trả về True nếu toán hạng bên trái nhỏ hơn toán hạng bên phải và ngược lại trả về False x < y == Trả về True nếu cả 2 toán hạng bằng nhau và ngược lại trả về False x == y != Trả về True nếu cả 2 toán hạng không bằng nhau và ngược lại trả về False x != y >= Trả về True nếu toán hạng bên trái lớn hơn hoặc bằng toán hạng bên phải và ngược lại trả về False x >= y <= Trả về True nếu toán hạng bên trái nhỏ hơn hoặc bằng toán hạng bên phải và ngược lại trả về False x <= y
Ví dụ:
x = 13
y = 33
# Output: x > y is False
print('x(13) > y(33) is', x>y)
# Output: x < y is True
print('x(13) < y(33) is', x<y)
# Output: x == y is False
print('x(13) == y(33) is', x==y)
# Output: x != y is True
print('x(13) != y(33) is', x!=y)
# Output: x >= y is False
print('x(13) >= y(33) is', x>=y)
# Output: x <= y is True
print('x(13) <= y(33) is', x<=y)
Kết quả
x(13) > y(33) is False
x(13) < y(33) is True
x(13) == y(33) is False
x(13) != y(33) is True
x(13) >= y(33) is False
x(13) <= y(33) is True
3. Toán tử logic (logical operator)
Bảng bên dưới thể hiện các toán tử logic trong Python.Toán tử (operator) Ý nghĩa Ví dụ and Trả về True nếu cả 2 toán hạng đều True x and y or Trả về True nếu ít nhất một toán hạng True x or y not Trả về True nếu toán hạng False, trả về False nếu toán hạng True not x
Bảng giá trị của toán tử and
a | b | a and b |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Bảng giá trị của toán tử or
a | b | a or b |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Bảng giá trị của toán tử not
a | not a |
True | False |
False | True |
Ví dụ:
x = True
y = False
print('x(True) and y(False) is', x and y)
print('x(True) or y(False) is', x or y)
print('not x(True) is', not x)
Kết quả
x(True) and y(False) is False
x(True) or y(False) is True
not x(True) is False
4. Toán tử trên bit (bitwise operator)
Toán tử trên bit thực hiện các thao tác trên từng bit của toán hạng. Toán hạng sẽ được tự động được chuyển đổi để biểu diễn dưới dạng bit rồi thực hiện các toán tử trên bit.
Ví dụ: Ta có x = 10 (biểu diễn bit nhị phân là 0000 1010) và y = 4 (biểu diễn bit nhị phân là 0000 0100). Bảng bên dưới sẽ thực hiện các toán tử trên bit với x và y.Toán tử (operator) Ý nghĩa Ví dụ & AND trên bit x & y = 0 (0000 0000) | OR trên bit x | y = 14 (0000 1110) ~ NOT trên bit ~x = -11 (1111 0101) ^ XOR trên bit x ^ y = 14 (0000 1110) >> Dịch phải chuỗi bit x >> 2 = 2 (0000 0010) << Dịch trái chuỗi bit x << 2 = 40 (0010 1000)
# Binary 0000 1010
x = 10
# Binary 0000 0100
y = 4
# Output 0 (0000 0000)
print("x & y = ", x & y)
# Output 14 (0000 1110)
print("x | y = ", x | y)
# Output -11 (1111 0101)
print("~x = ", ~x)
# Output 14 (0000 1110)
print("x ^ y = ", x ^ y)
# Output 2 (0000 0010)
print("x >> y = ", x >> 2)
# Output 40 (0010 1000)
print("x >> y = ", x << 2)
Kết quả
x & y = 0
x | y = 14
~x = -11
x ^ y = 14
x >> y = 2
x >> y = 40
Các bạn có thể đọc thêm bài Toán tử trên bit để hiểu hơn về cách các toán tử này hoạt động.
5. Toán tử gán (assignment operator)
Bảng bên dưới thể hiện các toán tử gán trong Python.Toán tử (operator) Ví dụ Tương đương = x = 5 x = 5 += x += 5 x = x + 5 -= x -= 5 x = x – 5 *= x *= 5 x = x * 5 /= x /= 5 x = x / 5 %= x %= 5 x = x % 5 //= x //= 5 x = x // 5 **= x **= 5 x = x ** 5 &= x &= 5 x = x & 5 |= x |= 5 x = x | 5 ^= x ^= 5 x = x ^ 5 >>= x >>= 5 x = x >> 5 <<= x <<= 5 x = x << 5
Ví dụ:
# Assign value for a và b
a = 10
print("a = ", a)
b = a
print("b = ", b)
# Add and assign value
b += a
print("b +=a then b = ", b)
# Subtract and assign value
b -= a
print("b -=a then b = ", b)
# multiply and assign
b *= a
print("b *=a then b = ", b)
# bitwise lishift operator
b <<= a
print("b <<=a then b = ", b)
Kết quả
a = 10
b = 10
b +=a then b = 20
b -=a then b = 10
b *=a then b = 100
b <<=a then b = 102400
6. Toán tử khác
Python hỗ trợ một số toán tử đặc biệt như identity operator, membership operator.
Toán tử identity trong Python
Toán tử identity giúp kiểm tra 2 giá trị có được lưu trữ trong cùng một vùng nhớ hay không.Toán tử (operator) Ý nghĩa Ví dụ is Trả về True nếu các toán hạng có giá trị được lưu trong cùng một vùng nhớ (tham chiếu đến cùng một object) x is y is not Trả về True nếu các toán hạng có giá trị không được lưu trong cùng một vùng nhớ (không tham chiếu đến cùng một object) x is not y
Ví dụ:
x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]
# Output: False
print(x1 is not y1)
# Output: True
print(x2 is y2)
# Output: False
print(x3 is y3)
Kết quả
False
True
False
Một đối tượng của lớp int được tạo ra để lưu giá trị 5. Đối tượng này được cấp phát một vùng nhớ để lưu giá trị 5. Biến x1 và y1 cùng tham chiếu đến đối tượng này. Tương tự với lớp str cho x2 và y2.
Nhưng x3 và y3 là danh sách (list). Khi mỗi list được tạo thì sẽ được cấp phát một bộ nhớ riêng để lưu trữ. Do đó, x3 và y3 tham chiếu đến 2 đối tượng khác nhau (2 vùng nhớ khác nhau).
Toán tử membership trong Python
Toán tử membership trong Python được sử dụng để kiểm tra xem một giá trị hoặc một biến có thuộc một kiểu dữ liệu như string, list, tuple, set và dictionary hay không.
Lưu ý: Trong một dictionary, toán tử membership chỉ giúp chúng ta kiểm tra key, chứ không kiểm tra value.Toán tử (operator) Ý nghĩa Ví dụ in Trả về True nếu giá trị/biến thuộc một kiểu dữ liệu chuỗi 5 in x not in Trả về True nếu giá trị/biến không thuộc thuộc một kiểu dữ liệu chuỗi 5 not in x
Ví dụ:
x = 'Hello world'
y = {1:'a',2:'b'}
# Output: True
print('H' in x)
# Output: True
print('hello' not in x)
# Output: True
print(1 in y)
# Output: False
print('a' in y)
Kết quả
True
True
True
False
Trong ví dụ trên, ‘H’ thuộc x nhưng ‘hello’ không thuộc x (Python là ngôn ngữ có phân biệt ký tự hoa, ký tự thường). Với dictionary y, 1 là key và ‘a’ là giá trị. Do đó, 1 in y trả về True còn ‘a’ in y trả về False.