Tất tần tật về các loại toán tử trong Python
Trong lập trình, toán tử có thể hiểu là một hàm với các toán hạng là các giá trị đầu vào (input), thực hiện một số các phép toán cụ thể và trả về một giá trị đầu ra (output). Mỗi toán tử được quy định với các ký hiệu, biểu tượng riêng đặc trưng trong từng ngôn ngữ lập trình.
Hầu hết các ngôn ngữ lập trình đều sẽ hỗ trợ các loại toán tử cơ bản giống nhau. Với một ngôn ngữ mạnh về khả năng tính toán như Python, việc nắm được các loại toán tử và sử dụng chúng là điều cực kỳ quan trọng để tối ưu source code dự án. Bài viết hôm nay chúng ta cùng tìm hiểu xem Python hỗ trợ những loại toán tử nào và cách sử dụng chi tiết từng loại toán tử đó nhé.
Giới thiệu về toán tử Python
Trong Python, các toán tử được khai báo bằng các biểu tượng, từ khóa tương tự như các ký hiệu toán học giúp dễ dàng ghi nhớ và sử dụng. Các phép toán cơ bản cộng (+), trừ (-), nhân (*) hay chia (/) được sử dụng với ý nghĩa tương tự như khi chúng ta làm toán. Ngoài ra còn có các toán tử thao tác logic giúp chúng ta dễ dàng xử lý với biến được Python thêm vào để sử dụng.
Thành phần của một toán tử bao gồm các toán hạng và ký hiệu toán tử tương ứng. Trong Python, khái niệm toán tử một ngôi là phép toán hoạt động với chỉ một toán hạng, tức là chỉ có duy nhất một giá trị đầu vào. Ví dụ như phép phủ định hay thao tác đảo ngược bit. Tương tự thì toán tử hai ngôi là phép toán hoạt động với 2 toán hạng, là loại toán tử phổ biến nhất.
Python còn có khái niệm toán tử ba ngôi (ternary operator) được sử dụng trong việc viết rút gọn mã nguồn, chẳng hạn như câu điều kiện (if/ else). Tuy nhiên loại này mình sẽ không được đề cập trong bài viết này nhé.
Các loại toán tử trong Python
Dựa trên chức năng, toán tử trong Python được chia thành 7 loại bao gồm:
1. Toán tử số học – Arithmetic Operators
Toán tử số học là những phép tính gần gũi với chúng ta nhất, được sử dụng để thực hiện các phép toán số học trên các toán hạng.
Ví dụ với 2 biến a = 12 và b = 5, chúng ta có các toán tử như bảng dưới đây:
Ký hiệu | Toán tử | Mô tả | Ví dụ |
+ | Phép cộng | Cộng 2 toán hạng với nhau | a+b = 17 |
– | Phép trừ | Trừ 2 toán hạng với nhau | a-b = 7 |
* | Phép nhân | Nhân 2 toán hạng với nhau | a*b = 60 |
/ | Phép chia | Chia 2 toán hạng với nhau | a/b = 2.4 |
% | Phần dư | Lấy phần dư còn lại sau khi thực hiện chia 2 toán hạng | a%b = 2 |
** | Phép mũ | Thực hiện phép tính mũ toán hạng bởi số mũ | a**b = 248832 |
// | Làm tròn | Thực hiện làm tròn xuống phép chia 2 toán hạng | a//b = 2 |
2. Toán tử quan hệ – Relational Operators
Toán tử quan hệ là những phép toán thực hiện việc so sánh giá trị của hai toán hạng; kết quả đầu ra sẽ chỉ cho ra giá trị đúng (True) hoặc sai (False).
Ví dụ với 2 biến a = 12 và b = 5, chúng ta có các toán tử như bảng dưới đây:
Lưu ý: toán tử <> (có giá trị tương tự với toán tự !=) đã bị bỏ đi ở Python 3 nên mình không liệt kê vào đây.
Ký hiệu | Toán tử | Mô tả | Ví dụ |
== | So sánh bằng | Trả về True nếu 2 toán hạng bằng nhau | a==b => False |
!= | So sánh khác | Trả về True nếu 2 toán hạng khác nhau | a!=b => True |
< | Nhỏ hơn | Trả về True nếu toán hạng bên trái nhỏ hơn toán hạng bên phải | a<b => False |
> | Lớn hơn | 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 | a>b => True |
>= | Lớn hơn hoặc bằng | 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 | a>=b => True |
<= | Nhỏ hơn hoặc bằng | 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 | a<=b => False |
3. Toán tử gán – Assignment Operators
Toán tử gán là những phép toán lấy đầu vào là giá trị ở phía bên phải của nó và gán giá trị đó cho toán hạng ở phía bên trái. Python hỗ trợ toán tử gán bằng (=) và một số toán tử gán phức hợp khác (thực hiện phép toán trước khi gán) tương tự như các ngôn ngữ lập trình khác.
Ví dụ với biến a = 12, chúng ta có các toán tử như bảng dưới đây:
Ký hiệu | Toán tử | Mô tả | Ví dụ |
= | Gán bằng | Gán giá trị của một đối tượng cho một giá trị | a=13 => Giá trị a = 13 |
+= | Cộng bằng | Thực hiện phép cộng rồi gán | a+=2 => a = 14 |
-= | Trừ bằng | Thực hiện phép trừ rồi gán | a-=2 => a = 10 |
*= | Nhân bằng | Thực hiện phép nhân rồi gán | a*=2 => a = 24 |
/= | Chia bằng | Thực hiện phép chia rồi gán | a/=3 => a = 4 |
%= | Phần dư bằng | Thực hiện phép lấy phần dư rồi gán | a%=5 => a = 2 |
**= | Mũ bằng | Thực hiện phép mũ rồi gán | a**=2 => a = 144 |
//= | Chia làm tròn bằng | Thực hiện phép chia làm tròn rồi gán | a//=1 => a = 1 |
4. Toán tử logic – Logical Operators
Toán tử logic là những toán tử thực hiện phép toán logic trên các toán hạng. Khác với một số ngôn ngữ dùng ký tự cho phép toán logic như C, Java, JS, … thì Python sử dụng từ khóa tường minh cho toán tử logic.
Ký hiệu | Toán tử | Mô tả | Ví dụ |
and | Phép và | Trả về kết quả True khi cả 2 điều kiện đều True | 5>4 and 4<3 => False |
or | Phép hoặc | Trả về kết quả True khi 1 trong 2 điều kiện là True | 5>4 or 4<3 => True |
not | Phép phủ định | Đảo ngược trạng thái logic của toán hạng | not(4<3) => True |
5. Toán tử bitwise – Bitwise Operators
Toán tử bitwise là các phép toán được thực hiện trên các chuỗi bit hay số nhị phân tại cấp độ của từng bit riêng biệt. Thao tác trên từng bit được thực hiện nhanh và hỗ trợ trực tiếp bởi CPU.
Ví dụ với 2 biến a = 12 và b = 15, khi biểu diễn dưới hệ nhị phân chúng ta có: a = 00001100 và b = 00001111.
Ký hiệu | Toán tử | Mô tả | Ví dụ |
& | Thao tác bit AND | Sao chép một bit tới kết quả nếu bit này tồn tại trong cả hai toán hạng | a&b = 00001100 => 12 |
| | Thao tác bit OR | Sao chép một bit tới kết quả nếu bit này tồn tại trong bất kỳ toán hạng nào | a|b = 00001111 => 14 |
^ | Thao tác bit XOR | Sao chép những bit 1 chỉ tồn tại trong một toán hạng | a^b = 00000010 => 2 |
~ | Thao tác bit NOT | Thao tác đảo ngược bit 1 thành 0 và ngược lại | ~a = -00001101 => -13 |
<< | Dịch chuyển trái | Dịch chuyển sang trái 1 số lượng bit được xác định | a<<2 = 00110000 => 48 |
>> | Dịch chuyển phải | Dịch chuyển sang trải 1 số lượng bit được xác định | a>>2 = 00000011 => 3 |
6. Toán tử định danh – Indentity Operators
Toán tử định danh trong Python giúp so sánh vị trí ô nhớ của 2 đối tượng trong Python, bao gồm 2 toán tử:
- is: Trả về True nếu như các biến ở 2 bên toán tử trỏ về cùng 1 đối tượng
- is not: Trả về False nếu các biến ở 2 bên toán tử trỏ về cùng 1 đối tượng
Ví dụ: a=10; b=25; c=10;
- a is b => False
- a is c => True
- a is not b => True
7. Toán tử membership – Membership Operators
Toán tử membership trong Python có đầu vào gồm 2 toán hạng, nó giúp kiểm tra xem một biến có nằm trong một dãy hay không. Có 2 toán tử membership bao gồm:
- in: Trả về True nếu biến nằm trong dãy các biến
- not in: Trả về True nếu biến không nằm trong dãy các biến
Ví dụ: a=10; b=25; list=[10,20,30,40,50];
- a in list => True
- b in list => False
- b not in list => True
Tuyển dụng Python mọi cấp độ tại đây!
Thứ tự ưu tiên của các toán tử trong Python
Trong một biểu thức chứa nhiều toán tử, chúng ta cần xác định được mỗi toán tử trong biểu thức đó thực hiện công việc gì và thứ tự mà chúng thực hiện. Thứ tự thực hiện các phép tính trong biểu thức đó gọi là độ ưu tiên của toán tử – Operator Precedence.
Trong Python thứ tự ưu tiên của các toán tử được thể hiện như ở bảng dưới đây, thứ tự ưu tiên từ cao xuống thấp (cao sẽ được thực hiện trước):
Toán tử | Mô tả |
** | Toán tử mũ |
~ + – | Phần bù,phép cộng, trừ cho toán tử một ngôi |
* / % // | Phép nhân, chia, lấy phần dư, làm tròn |
+ – | Phép cộng/ trừ |
>> << | Dịch bit trái/ phải |
& | Phép và |
^ | | Phép XOR, OR |
<= < > >= | Toán tử so sánh |
== != | Toán tử so sánh bằng |
= %= /= //= -= += *= **= | Toán tử gán |
is is not | Toán tử định danh |
in not in | Toán tử Membership |
not or and | Toán tử Logic |
Kết bài
Hy vọng qua bài viết này, bạn đã có thể nắm được đầy đủ các toán tử cơ bản trong Python; các ký hiệu toán học, các loại toán tử cùng thứ tự ưu tiên để thực hiện chính xác một phép toán phức tạp khi lập trình. Cảm ơn các bạn đã đọc bài và hẹn gặp lại trong các bài viết tiếp theo của mình.
Tác giả: Phạm Minh Khoa
Xem thêm:
- Tuple Python là gì? Tìm hiểu về tuple python
- Python và cách tiết kiệm dung lượng cho phần mềm nhúng
- Flask python là gì? – Những điều cần biết
Xem thêm việc làm IT hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS