Các Toán Tử Trong Python Cần Phải Biết

Toán tử trong Python

Trong bài này chúng ta sẽ cùng tìm hiểu các toán tử trong Python: toán tử là gì, module operator, và 6 nhóm toán tử hay dùng nhất kèm ví dụ cho từng loại.

Toán tử là thứ các bạn sẽ gõ nhiều nhất khi viết code, từ cộng trừ nhân chia cho tới so sánh, kiểm tra điều kiện. Phần lớn giống C, nhưng Python có vài toán tử riêng như **, //, in mà dân C hay quên nhé.

Sơ lược về toán tử trong Python

Lấy ví dụ 2 + 3: số 2 và 3 gọi là toán hạng (operand), còn dấu + là toán tử (operator). Toán tử cộng lấy 2 toán hạng và trả về kết quả 5.

Trong lập trình Python, mỗi toán tử như +, -, *, /, % đều có một hàm tương ứng trong module operator. Ví dụ a + b tương đương operator.add(a, b). Một vài hàm có dấu gạch dưới ở cuối như or_, and_ để không trùng với từ khóa or, and của Python.

Các hàm này hữu ích khi bạn cần truyền phép toán vào một hàm khác, ví dụ dùng với map() hay sorted().

Giới thiệu về toán tử trong Python
Hình 1. Giới thiệu về toán tử trong Python

Bảng dưới đây là mapping giữa toán tử và hàm trong module operator:

Phép toán Cú pháp Hàm
Cộng a + b add(a, b)
Trừ a – b sub(a, b)
Nhân a * b mul(a,b)
Chia a/b truediv(a,b)
Nối chuỗi seq1 + seq2 concat(seq1, seq2)
Kiểm tra có chứa chuỗi obj in seq contains(seq, obj)
Xor a^b xor(a, b)
Or a | b or_(a, b)
Lũy thừa a ** b pow(a, b)
Cắt mảng seq[i:j] getitem(seq, slice(i, j))
So sánh nhỏ hơn a < b lt(a, b)
So sánh lớn hơn a > b gt(a,b)

Các bao nhiêu nhóm toán tử trong Python?

Dựa vào chức năng, toán tử trong Python được chia làm 6 nhóm chính. Chúng ta đi lần lượt từng nhóm nhé.

Toán tử trong Python được chia làm nhiều nhóm
Hình 2. Toán tử trong Python được chia làm nhiều nhóm

Toán tử số học

Toán tử số học dùng cho các phép tính cộng, trừ, nhân, chia, chia lấy dư, lũy thừa… Các ví dụ dưới đây đều dùng 2 biến:

a = 5
b = 2

1. Toán tử cộng

print(a + b) # kết quả: 7

2. Toán tử trừ

print(a - b) # kết quả: 3

3. Toán tử nhân

print(a * b) # kết quả: 10

4. Toán tử chia

print(a / b) # kết quả: 2.5

5. Toán tử lấy phần dư

print(a % b) # kết quả: 1

6. Toán tử lũy thừa

print(a ** b) # kết quả: 25

7. Phép chia lấy phần nguyên

print(a // b) # kết quả: 2

Lưu ý: Khác với C, trong Python 3 phép chia / luôn trả về số thực, 5 / 2 ra 2.5 chứ không phải 2. Muốn chia lấy phần nguyên như C thì phải dùng //. Code chuyển từ C sang mà quên đổi chỗ này thì chỉ số mảng sẽ thành số thực và báo lỗi ngay.

Các phép toán trong toán tử số học
Hình 3. Các phép toán trong toán tử số học

Toán tử logic

Toán tử logic làm việc với giá trị boolean (True/False). Python dùng từ tiếng Anh and, or, not thay cho &&, ||, ! như C.

1. AND: trả về True khi cả hai biểu thức đều đúng, ngược lại trả về False.

Ví dụ:

x = 5
y = 10
z = 15

# Sử dụng toán tử AND
if x < y and y < z:
    print("y nằm giữa x và z")
else:
    print("y không nằm giữa x và z")

Kết quả: y nằm giữa x và z

2. OR: trả về True khi có ít nhất một trong hai biểu thức đúng.

Ví dụ:

x = 5
y = 10
z = 15

# Sử dụng toán tử OR
if x > y or y < z:
    print("x lớn hơn y hoặc y nhỏ hơn z")
else:
    print("cả hai biểu thức đều sai")

Kết quả: x lớn hơn y hoặc y nhỏ hơn z

3. NOT: đảo ngược kết quả, biểu thức sai thì trả về True và ngược lại.

Ví dụ:

x = 5

# Sử dụng toán tử NOT
if not x > 10:
    print("x không lớn hơn 10")
else:
    print("x lớn hơn 10")

Kết quả: x không lớn hơn 10

Toán tử gán

Toán tử gán dùng để gán giá trị cho biến. Ngoài = còn có các toán tử gán kết hợp như +=, -=, *=, /=, %=, **=, //=. Ví dụ a += 3 là cách viết tắt của a = a + 3.

1. Toán tử “=”

a = 5

Gán giá trị 5 cho biến a.

2. Toán tử “+=”

a = 5
a += 3

Biến a được cộng thêm 3, kết quả là 8.

3. Toán tử “-=”

a = 5
a -= 2

Biến a bị trừ đi 2, kết quả là 3.

4. Toán tử “*=”

a = 5
a *= 2

Biến a được nhân với 2, kết quả là 10.

5. Toán tử “/=”

a = 5
a /= 2

Biến a được chia cho 2, kết quả là 2.5.

6. Toán tử “%=”

a = 5
a %= 2

Biến a được chia lấy dư cho 2, kết quả là 1.

7. Toán tử “**=”

a = 5
a **= 2

Biến a được lũy thừa với số mũ 2, kết quả là 25.

8. Toán tử “//=”

a = 5
a //= 2

Biến a được chia lấy phần nguyên cho 2, kết quả là 2.

Python không có toán tử ++ và -- như C nhé, muốn tăng biến lên 1 thì viết a += 1.

Toán tử quan hệ

Toán tử quan hệ (so sánh) dùng để so sánh hai giá trị, kết quả trả về là True hoặc False.

1. Toán tử bằng (==): so sánh hai giá trị có bằng nhau hay không.

x = 5
y = 7
print(x == y) # Output: False

a = "hello"
b = "hello"
print(a == b) # Output: True

2. Toán tử khác (!=): so sánh hai giá trị có khác nhau không.

x = 5
y = 7
print(x != y) # Output: True

a = "hello"
b = "world"
print(a != b) # Output: True

3. Toán tử lớn hơn (>): giá trị bên trái có lớn hơn bên phải hay không.

x = 5
y = 7
print(y > x) # Output: True

a = "hello"
b = "world"
print(b > a) # Output: True

Với chuỗi, Python so sánh theo thứ tự bảng chữ cái từng ký tự một. “w” đứng sau “h” nên “world” lớn hơn “hello”.

4. Toán tử nhỏ hơn (<): giá trị bên trái có nhỏ hơn bên phải không.

x = 5
y = 7
print(x < y) # Output: True

a = "hello"
b = "world"
print(a < b) # Output: True

5. Toán tử lớn hơn hoặc bằng (>=): giá trị bên trái có lớn hơn hoặc bằng bên phải hay không.

x = 5
y = 7
print(y >= x) # Output: True

a = "hello"
b = "world"
print(b >= a) # Output: True

6. Toán tử nhỏ hơn hoặc bằng (<=): giá trị bên trái có nhỏ hơn hoặc bằng bên phải hay không.

x = 5
y = 7
print(x <= y) # Output: True

a = "hello"
b = "world"
print(a <= b) # Output: True

Lưu ý: Đừng nhầm = (gán) với == (so sánh). Trong Python, viết if x = 5: sẽ báo SyntaxError ngay, đỡ hơn C là chạy sai mà không báo gì, nhưng người mới vẫn hay gõ nhầm.

Toán tử khai thác

Toán tử khai thác dùng để lấy phần tử bên trong một cấu trúc dữ liệu như list, tuple, dictionary, hoặc truy cập thuộc tính, phương thức của một đối tượng. Có 2 toán tử là [] và .

1. Toán tử ‘[]’: lấy phần tử theo chỉ số (index). Chỉ số bắt đầu từ 0 giống mảng trong C.

Ví dụ:

my_list = ['apple', 'banana', 'orange']
print(my_list[1]) # output: 'banana'

my_tuple = ('John', 'Doe', 25)
print(my_tuple[2]) # output: 25

2. Toán tử ‘.’: truy cập phương thức hay thuộc tính của đối tượng.

Ví dụ:

my_string = 'Hello, World!'
print(my_string.upper()) # output: 'HELLO, WORLD!'

my_dict = {'name': 'John', 'age': 25}
print(my_dict.keys()) # output: dict_keys(['name', 'age'])

Ở đây toán tử . được dùng để gọi phương thức upper() của chuỗi my_string và phương thức keys() của từ điển my_dict.

Toán tử xác thực

Toán tử xác thực (membership) dùng từ khóa in để kiểm tra một giá trị có nằm trong một tập hợp hay không. Cực kỳ tiện, trong C bạn phải viết hẳn một vòng for để làm việc này.

Ví dụ:

my_list = [1, 2, 3, 4, 5]

if 3 in my_list:
    print("3 có trong danh sách")
else:
    print("3 không có trong danh sách")

Kết quả: “3 có trong danh sách”.

in cũng dùng được với chuỗi để kiểm tra chuỗi có chứa một ký tự hay chuỗi con nào đó không.

Ví dụ:

my_string = "Hello, world!"

if "o" in my_string:
    print("Chuỗi chứa ký tự 'o'")
else:
    print("Chuỗi không chứa ký tự 'o'")

Kết quả: “Chuỗi chứa ký tự ‘o'”.

Ngược lại với in là not in, trả về True khi giá trị không có trong tập hợp.

Lời kết

Toán tử trong Python phần lớn giống C, các bạn chỉ cần để ý mấy điểm khác: / luôn ra số thực, có thêm // và **, dùng and/or/not thay cho ký hiệu, không có ++, và có thêm in rất tiện.

Hãy gõ lại các ví dụ trên trong trình thông dịch để quen tay nhé. Nếu thắc mắc điều gì, hãy để lại bình luận bên dưới.

Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *