Toán tử trong Python
Sau bài viết trước, chúng ta đã làm quen các câu lệnh cơ bản trong Python. Và ở bài viết này tập trung vào tìm hiểu các toán tử cơ bản trong Python và áp dụng vào làm một bài luyện tập nhỏ. Toán tử Trong python, các toán tử được được cũng cấp trong module Operator (Lib/operator.py) - Là một bộ ...
Sau bài viết trước, chúng ta đã làm quen các câu lệnh cơ bản trong Python. Và ở bài viết này tập trung vào tìm hiểu các toán tử cơ bản trong Python và áp dụng vào làm một bài luyện tập nhỏ.
Toán tử
Trong python, các toán tử được được cũng cấp trong module Operator (Lib/operator.py) - Là một bộ các hàm chức năng, tương ứng với các toán tử của Python. Ví dụ, operator.add (x, y) tương đương với biểu thức x + y. Bạn có thể bắt gặp các hàm, kiểu như:
operator.add(a, b) operator.lt(a, b) operator.le(a, b) operator.__lt__(a, b) operator.__le__(a, b) # ...
Tên của các hàm chức năng này khá đặc biệt với các dấu gạch dưới. Tuy nhiên, có các biến thể không bắt đầu hoặc kết thúc bằng __ để cho việc sử dụng được tiện lợi.
Toán tử là một trong số các thành phần cơ bản nhất trong một ngôn ngữ lập trình. Mỗi toán tử là một ký hiệu đặc biệt như: +, -, * /, %... được map với các hàm (functions) tương ứng trong module operator vừa đề cập ở trên. Giúp cho việc sử dụng dễ dàng, đơn giản và ngắn gọn hơn.
Ví dụ: 1 + 2, thì chữ số 1 và chữ số 2 được coi là toán hạng, ký hiệu "+" được gọi là toán tử. Toán tử này sẽ thực hiện phép toán cộng hai toán hạng 1 và 2, trả về kết quả là 3. Và nó được map với hàm add(1, 2).
Dưới đây một số ví dụ cho sự mapping giữa các toán tử và các hàm chức năng trong module operator:
Operation | Syntax | Function |
---|---|---|
Phép cộng | a + b | add(a, b) |
Nối chuỗi | seq1 + seq2 | concat(seq1, seq2) |
Kiểm tra chứa chuỗi | obj in seq | contains(seq, obj) |
Chia | a / b | truediv(a, b) |
Chia | a // b | floordiv(a, b) |
And các bit | a & b | and_(a, b) |
Xor | a ^ b | xor(a, b) |
Đảo bit | ~ a | invert(a) |
Or | a l b | or_(a, b) |
Luy thừa | a ** b | pow(a, b) |
Nhân | a * b | mul(a, b) |
Đảo dấu | - a | neg(a) |
Cắt mảng | seq[i:j] | getitem(seq, slice(i, j)) |
Trừ | a - b | sub(a, b) |
Nhơ hơn | a < b | lt(a, b) |
Nhỏ hơn hoặc bằng | a <= b | le(a, b) |
So sánh bằng | a == b | eq(a, b) |
So sánh khác | a != b | ne(a, b) |
So sánh lớn hơn hoặc bằng | a >= b | ge(a, b) |
So sánh lớn hơn | a > b | gt(a, b) |
Phân loại
Dựa trên chức năng, toán tử trong Python được chia làm 7 nhóm:
- Toán tử số học
- Toán tử logic
- Toán tử gán
- Toán tử quan hệ (còn gọi là toán tử so sánh)
- Toán tử membership
- Toán tử identify
- Toán tử thao tác bit
Nhóm toán tử số học
Gồm các toán tử có chức năng xử lý, thao tác toán học giữa các tập dữ liệu số học. Bao gồm các toán tử cho các phép toán như: cộng (+), trừ (-), nhân (*), chia (/), lũy thừa (**)...
Operation | Syntax | Function |
---|---|---|
Phép cộng | a + b | add(a, b) |
Chia | a / b | truediv(a, b) |
Chia | a // b | floordiv(a, b) |
Luy thừa | a ** b | pow(a, b) |
Nhân | a * b | mul(a, b) |
Trừ | a - b | sub(a, b) |
Ví dụ:
>>> 1+2 3 >>> 3-2 1 >>> 1.25 / 0.5 2.5 >>> 1.25 % 0.5 0.25 >>> 2**3 8
Nhóm toán tử logic
Là những toán tử thể hiện có mệnh đề AND, OR, NOT. Thường được sử dụng trong các biểu thức logic, có thể đi kèm với các toán tử quan hệ.
- and: Phép Và. Nếu cả hai điều kiện là true thì kết quả sẽ là true
- or: Phép Hoặc. Nếu một trong hai điều kiện là true thì kết quả là true
- not: Phép phủ định. Được sử dụng để đảo ngược trạng thái logic của toán hạng
Toán tử quan hệ
Là những toán tử dùng để kiểm tra mối tương quan giữa các toán hạng chính là những phép so sánh như: so sánh bằng, lớn hơn, nhỏ hơn... Một số ký hiệu toán tử quan hệ:
Operation | Syntax | Function |
---|---|---|
Nhơ hơn | a < b | lt(a, b) |
Nhỏ hơn hoặc bằng | a <= b | le(a, b) |
So sánh bằng | a == b | eq(a, b) |
So sánh khác | a != b | ne(a, b) |
So sánh lớn hơn hoặc bằng | a >= b | ge(a, b) |
So sánh lớn hơn | a > b | gt(a, b) |