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:

Cách tạo một widget nhập ngày và giờ sử dụng PyQt QDateTimeEdit

Cách tạo một widget nhập ngày và giờ sử dụng PyQt QDateTimeEdit

Cách tạo một widget nhập giờ sử dụng lớp PyQt QTimeEdit

Cách tạo một widget nhập giờ sử dụng lớp PyQt QTimeEdit

Cách tạo một widget nhập ngày sử dụng lớp PyQt QDateEdit

Cách tạo một widget nhập ngày sử dụng lớp PyQt QDateEdit

Cách sử dụng widget PyQt QSpinBox để tạo một spin box

Cách sử dụng widget PyQt QSpinBox để tạo một spin box

Sử dụng PyQt QComboBox để tạo Widget Combobox

Sử dụng PyQt QComboBox để tạo Widget Combobox

Cách sử dụng lớp PyQt QRadioButton

Cách sử dụng lớp PyQt QRadioButton

Cách sử dụng lớp QCheckBox trong PyQt

Cách sử dụng lớp QCheckBox trong PyQt

Cách sử dụng QFormLayout trong PyQt

Cách sử dụng QFormLayout trong PyQt

Cách sử dụng QGridLayout trong PyQt

Cách sử dụng QGridLayout trong PyQt

Cách sử dụng QVBoxLayout trong PyQt

Cách sử dụng QVBoxLayout trong PyQt

Cách sử dụng widget QLineEdit trong PyQt

Cách sử dụng widget QLineEdit trong PyQt

Cách sử dụng widget QPushButton của PyQt

Cách sử dụng widget QPushButton của PyQt

Cách sử dụng widget PyQt QLabel

Cách sử dụng widget PyQt QLabel

Tín hiệu và Khe (Signals & Slots) trong PyQt

Tín hiệu và Khe (Signals & Slots) trong PyQt

PyQt là gì? Tạo một chương trình

PyQt là gì? Tạo một chương trình "Hello World".

Ứng dụng System Tray với Tkinter

Ứng dụng System Tray với Tkinter

Cách hiển thị đồ thị từ thư viện Matplotlib trong Tkinter

Cách hiển thị đồ thị từ thư viện Matplotlib trong Tkinter

Cách sử dụng Validate trong Tkinter

Cách sử dụng Validate trong Tkinter

Cấu trúc MVC trong Tkinter

Cấu trúc MVC trong Tkinter

Cách sử dụng widget PhotoImage của Tkinter

Cách sử dụng widget PhotoImage của Tkinter

Top