CÔNG CỤ
MODULES
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Toán tử is trong Python

Trong bài viết này, bạn sẽ tìm hiểu về toán tử is trong Python, cách nó hoạt động và sự khác biệt giữa toán tử is và toán tử so sánh bằng (==). Thông qua việc phân tích các ví dụ cụ thể, bạn sẽ nắm rõ hơn về cách sử dụng toán tử is để so sánh danh tính của các đối tượng trong Python, cũng như khi nào nên sử dụng nó thay vì toán tử ==.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Giới thiệu về toán tử is trong Python

Toán tử is trong Python so sánh hai biến và trả về True nếu chúng tham chiếu đến cùng một đối tượng. Nếu hai biến tham chiếu đến các đối tượng khác nhau, toán tử is trả về False.

Nói cách khác, toán tử is so sánh danh tính của hai biến và trả về True nếu chúng tham chiếu đến cùng một đối tượng.

Hãy xem ví dụ sau:

Bài viết này được đăng tại [free tuts .net]

a = 100
b = a
result = a is b
print(result)

Kết quả:

True

Cách hoạt động:

  1. Đầu tiên, khai báo biến a tham chiếu đến một đối tượng kiểu int với giá trị là 100.
  2. Sau đó, khai báo biến b tham chiếu đến cùng một đối tượng mà biến a đang tham chiếu.
  3. Sử dụng toán tử is để kiểm tra xem ab có tham chiếu đến cùng một đối tượng hay không và hiển thị kết quả.

Vì cả ab đều tham chiếu đến cùng một đối tượng, kết quả là True.

Python is Operator Example 20 1  png

Ví dụ sau định nghĩa hai biến ab và khởi tạo chúng với giá trị 100:

a = 100
b = 100

result = a is b
print(result)

Kết quả:

True

Trong ví dụ này, không có liên kết trực tiếp giữa ab. Tuy nhiên, khi bạn gán giá trị 100 cho b, Python Memory Manager tái sử dụng đối tượng hiện có. Do đó, cả ab đều tham chiếu đến cùng một đối tượng.

Python is Operator Example 20 1  png

Lưu ý: Kết quả của ví dụ này có thể khác nhau, tùy thuộc vào cách Python Memory Manager được triển khai. Bạn không nên dựa vào điều này.

Ví dụ sau định nghĩa hai danh sách có cùng các phần tử và sử dụng toán tử is để kiểm tra xem chúng có tham chiếu đến cùng một đối tượng danh sách hay không:

ranks = [1, 2, 3]
rates = [1, 2, 3]

result = ranks is rates
print(result)

Kết quả:

False

Trong ví dụ này, các danh sách là các đối tượng có thể thay đổi (mutable). Python Memory Manager không tái sử dụng danh sách hiện có mà tạo ra một danh sách mới trong bộ nhớ. Do đó, các biến ranksrates tham chiếu đến các danh sách khác nhau.

Python is Operator List Example png

So sánh toán tử is và toán tử == trong Python

Toán tử bằng (==) so sánh hai biến về mặt giá trị và trả về True nếu chúng bằng nhau. Ngược lại, nó trả về False.

Ví dụ sau sử dụng cả toán tử is và toán tử ==:

a = 100
b = a

is_identical = a is b
is_equal = a == b

print(is_identical)
print(is_equal)

Kết quả:

True
True

ab tham chiếu đến cùng một đối tượng, chúng vừa đồng nhất (identical) vừa bằng nhau (equal).

Trong ví dụ sau, cả hai danh sách đều có cùng các phần tử, nên chúng bằng nhau.

Tuy nhiên, vì chúng tham chiếu đến các đối tượng danh sách khác nhau trong bộ nhớ, chúng không đồng nhất:

ranks = [1, 2, 3]
rates = [1, 2, 3]

is_identical = ranks is rates
is_equal = ranks == rates

print(is_identical)
print(is_equal)

Kết quả:

False
True

Toán tử is not trong Python

Để phủ định toán tử is, bạn sử dụng toán tử not. Toán tử is not trả về False nếu hai biến tham chiếu đến cùng một đối tượng. Ngược lại, nó trả về True.

Ví dụ sau sử dụng toán tử is not để kiểm tra xem hai biến có không tham chiếu đến cùng một đối tượng danh sách hay không:

ranks = [1, 2, 3]
rates = [1, 2, 3]

result = ranks is not rates
print(result)  # True

Kết quả:

True

Kết bài

Hiểu rõ cách sử dụng toán tử is và sự khác biệt của nó so với toán tử == là một phần quan trọng trong việc làm chủ Python. Toán tử is giúp kiểm tra xem hai biến có tham chiếu đến cùng một đối tượng hay không, trong khi toán tử == được sử dụng để so sánh giá trị của hai biến. Bên cạnh đó, toán tử not có thể được dùng để phủ định kết quả của toán tử is, giúp chúng ta dễ dàng kiểm tra các điều kiện ngược lại. Bằng cách nắm vững những khái niệm này, bạn sẽ có thể viết mã Python chính xác và hiệu quả hơn, đồng thời tránh được những lỗi không mong muốn trong quá trình lập trình.

Cùng chuyên mục:

Tài liệu tham khảo nhanh về Regex trong Python

Tài liệu tham khảo nhanh về Regex trong Python

Hàm Flags của Regex trong Python

Hàm Flags của Regex trong Python

Hàm split() của Regex trong Python

Hàm split() của Regex trong Python

Hàm finditer() của Regex trong Python

Hàm finditer() của Regex trong Python

Hàm fullmatch() của Regex trong Python

Hàm fullmatch() của Regex trong Python

Hàm match() của Regex trong Python

Hàm match() của Regex trong Python

Hàm sub() của Regex trong Python

Hàm sub() của Regex trong Python

Hàm search() trong Python Regex

Hàm search() trong Python Regex

Hàm findall() của regex trong Python

Hàm findall() của regex trong Python

Lookbehind trong Regex của Python

Lookbehind trong Regex của Python

Lookahead trong Python Regex

Lookahead trong Python Regex

Alternation Regex trong Python

Alternation Regex trong Python

Tìm hiểu Backreferences trong regex của Python

Tìm hiểu Backreferences trong regex của Python

Nhóm Non-capturing trong Regex Python

Nhóm Non-capturing trong Regex Python

Các nhóm Capturing trong regex của Python

Các nhóm Capturing trong regex của Python

Sets và Ranges trong Regex của Python

Sets và Ranges trong Regex của Python

Lượng từ non-greed trong Regex của Python

Lượng từ non-greed trong Regex của Python

Chế độ Greedy trong Regex Python

Chế độ Greedy trong Regex Python

Các lượng từ trong Regex của Python

Các lượng từ trong Regex của Python

Regex Word Boundary trong Python

Regex Word Boundary trong Python

Top