Các loại toán tử (operator) được hỗ trợ trong Python

Đây là bài 7/54 bài của series môn học Ngôn ngữ lập trình Python

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ĩaVí dụ
+Cộng 2 toán hạngx + y+ 2
Trừ 2 toán hạngx – y- 2
*Nhân 2 toán hạngx * 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ảix % y
//Trả về phần nguyên khi chia toán tử bên trái cho toán tử bên phảix // y
**Toán hạng bên trái lũy thừa toán hạng bên phảix**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ĩaVí 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ề Falsex > 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ề Falsex < y
==Trả về True nếu cả 2 toán hạng bằng nhau và ngược lại trả về Falsex == y
!=Trả về True nếu cả 2 toán hạng không bằng nhau và ngược lại trả về Falsex != 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ề Falsex >= 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ề Falsex <= 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ĩaVí dụ
andTrả về True nếu cả 2 toán hạng đều Truex and y
orTrả về True nếu ít nhất một toán hạng Truex or y
notTrả về True nếu toán hạng False, trả về False nếu toán hạng Truenot x

Bảng giá trị của toán tử and

aba and b
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Bảng giá trị của toán tử or

aba or b
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Bảng giá trị của toán tử not

anot a
TrueFalse
FalseTrue

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ĩaVí dụ
&AND trên bitx & y = 0 (0000 0000)
|OR trên bitx | y = 14 (0000 1110)
~NOT trên bit~x = -11 (1111 0101)
^XOR trên bitx ^ y = 14 (0000 1110)
>> Dịch phải chuỗi bitx >> 2 = 2 (0000 0010)
<< Dịch trái chuỗi bitx << 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 = 5x = 5
+=x += 5x = x + 5
-=x -= 5x = x – 5
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x % 5
//=x //= 5x = x // 5
**=x **= 5x = x ** 5
&=x &= 5x = x & 5
|=x |= 5x = x | 5
^=x ^= 5x = x ^ 5
>>=x >>= 5x = x >> 5
<<=x <<= 5x = 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ĩaVí dụ
isTrả 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 notTrả 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ĩaVí dụ
inTrả về True nếu giá trị/biến thuộc một kiểu dữ liệu chuỗi5 in x
not inTrả về True nếu giá trị/biến không thuộc thuộc một kiểu dữ liệu chuỗi5 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.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Các kiểu dữ liệu (data type) cơ bản trong PythonNhập xuất (input/output) cơ bản trong Python >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.