Tất tần tật về các loại toán tử trong Python

212

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.

toán tử Python

 

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 = 12b = 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 = 12b = 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

  Cấu trúc dữ liệu List và Tuple trong Python

  Phương thức List append() trong Python

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 = 12b = 15, khi biểu diễn dưới hệ nhị phân chúng ta có: a = 00001100b = 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.

toán tử Python

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:

Xem thêm việc làm IT hấp dẫn trên TopDev