Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Sự khác biệt giữa toán tử == và is trong Python
Trong Python, hai toán tử ==
và is
thường được sử dụng để so sánh, nhưng lại phục vụ các mục đích khác nhau. Mặc dù cả hai đều dùng để kiểm tra sự tương đồng giữa các biến hay đối tượng, chúng có bản chất hoạt động và ứng dụng khác biệt. Việc hiểu rõ điểm khác nhau này là rất quan trọng để sử dụng đúng toán tử cho từng trường hợp, giúp chương trình hoạt động chính xác và hiệu quả.
Toán tử So sánh (==) trong Python
Toán tử ==
dùng để so sánh giá trị của hai đối tượng hoặc biến. Nếu hai giá trị bằng nhau, nó trả về True
; nếu không, sẽ trả về False
. Đây là cách chúng ta kiểm tra xem hai đối tượng có cùng nội dung hay không.
Ví dụ:
value1 = 50 value2 = 50 print(value1 == value2) # Output: True number1 = 50 number2 = 60 print(number1 == number2) # Output: False
Trong ví dụ trên, lần kiểm tra đầu tiên trả về True
vì cả hai giá trị đều bằng nhau, trong khi lần kiểm tra thứ hai trả về False
vì các giá trị khác nhau.
Bài viết này được đăng tại [free tuts .net]
Toán tử nhận diện (is) trong Python
Toán tử is
dùng để kiểm tra xem hai biến có cùng trỏ đến một đối tượng trong bộ nhớ hay không. Toán tử này hữu ích khi muốn kiểm tra một đối tượng có là duy nhất hay không, ví dụ như None
, True
, False
, v.v.
Ví dụ:
value1 = 50 value2 = 50 print(value1 is value2) # Output: True # Kiểm tra địa chỉ (vị trí) trong bộ nhớ của đối tượng print(id(value1)) # Output: 2777565955856 (ví dụ) print(id(value2)) # Output: 2777565955856 (ví dụ)
Kết quả là True
vì cả hai biến đều trỏ đến cùng một địa chỉ trong bộ nhớ. Hàm id()
là hàm tích hợp trong Python trả về địa chỉ bộ nhớ của đối tượng.
Ví dụ với các giá trị lớn hơn:
number1 = 500 number2 = 500 print(number1 is number2) # Output: False # Kiểm tra địa chỉ trong bộ nhớ của đối tượng print(id(number1)) # Output: 2777601717424 (ví dụ) print(id(number2)) # Output: 2777601717488 (ví dụ)
Trong trường hợp này, kết quả của toán tử is
là False
vì hai biến number1
và number2
trỏ đến các địa chỉ bộ nhớ khác nhau.
Khi các số nhỏ như 50 xuất hiện trong ví dụ đầu, chúng có cùng vị trí bộ nhớ. Nhưng với các số lớn hơn như 500, vị trí bộ nhớ lại khác nhau. Điều này là do trong Python, các số nhỏ từ -5 đến 256 thường được gán cùng một vị trí bộ nhớ để tiết kiệm dung lượng vì chúng thường được sử dụng nhiều. Bất kỳ số nào nằm ngoài phạm vi này sẽ được cấp phát vị trí bộ nhớ mới.
Kết bài
Hiểu rõ sự khác biệt giữa toán tử ==
và is
trong Python giúp bạn sử dụng chúng chính xác trong các tình huống khác nhau. Trong khi ==
được dùng để so sánh giá trị của các đối tượng, thì is
lại kiểm tra xem hai biến có tham chiếu đến cùng một đối tượng trong bộ nhớ hay không. Nắm vững cách hoạt động của từng toán tử này sẽ giúp bạn viết mã rõ ràng, hiệu quả và tránh những lỗi không mong muốn trong quá trình lập trình.