Hướng dẫn which operator is used for comparison of values in python? - toán tử nào được sử dụng để so sánh các giá trị trong python?


Các toán tử này so sánh các giá trị ở hai bên của chúng và quyết định mối quan hệ giữa chúng. Chúng cũng được gọi là nhà khai thác quan hệ.

Show

Giả sử biến A giữ 10 và biến B giữ 20, sau đó -

Nhà điều hànhSự mô tảThí dụ
==Nếu các giá trị của hai toán hạng là bằng nhau, thì điều kiện sẽ trở thành đúng.(a == b) không đúng.
! =Nếu các giá trị của hai toán hạng không bằng nhau, thì điều kiện trở thành đúng.(a! = B) là đúng.
<> Nếu các giá trị của hai toán hạng không bằng nhau, thì điều kiện trở thành đúng.(a! = B) là đúng.
> (a b) là đúng. Điều này tương tự như! = Toán tử.>
Nếu giá trị của toán hạng bên trái lớn hơn giá trị của toán hạng phải, thì điều kiện sẽ trở thành đúng.(a> b) không đúng.<
Nếu giá trị của toán hạng bên trái nhỏ hơn giá trị của toán hạng phải, thì điều kiện sẽ trở thành đúng.(a > =
Nếu giá trị của toán hạng bên trái lớn hơn hoặc bằng giá trị của toán hạng phải, thì điều kiện sẽ trở thành đúng.(a> = b) không đúng.(a <= b) is true.

Thí dụ

Giả sử biến A giữ 10 và biến B giữ 20, sau đó -

#!/usr/bin/python

a = 21
b = 10
c = 0

if ( a == b ):
   print "Line 1 - a is equal to b"
else:
   print "Line 1 - a is not equal to b"

if ( a != b ):
   print "Line 2 - a is not equal to b"
else:
   print "Line 2 - a is equal to b"

if ( a <> b ):
   print "Line 3 - a is not equal to b"
else:
   print "Line 3 - a is equal to b"

if ( a < b ):
   print "Line 4 - a is less than b" 
else:
   print "Line 4 - a is not less than b"

if ( a > b ):
   print "Line 5 - a is greater than b"
else:
   print "Line 5 - a is not greater than b"

a = 5;
b = 20;
if ( a <= b ):
   print "Line 6 - a is either less than or equal to  b"
else:
   print "Line 6 - a is neither less than nor equal to  b"

if ( b >= a ):
   print "Line 7 - b is either greater than  or equal to b"
else:
   print "Line 7 - b is neither greater than  nor equal to b"

==

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b

python_basic_operators.htm

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để làm sâu sắc thêm sự hiểu biết của bạn: So sánh các đối tượng Python đúng cách: "là" vs "==" This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Comparing Python Objects the Right Way: "is" vs "=="

Một nhà điều hành so sánh trong Python là gì?

Một toán tử so sánh trong Python, còn được gọi là toán tử quan hệ Python, so sánh các giá trị của hai toán hạng và trả về đúng hay sai dựa trên việc điều kiện có được đáp ứng hay không.equality of two objects, whereas the Python

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 operator checks whether two variables point to the same object in memory. In the vast majority of cases, this means you should use the equality operators
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 and
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8, except when you’re comparing to
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
9.

Những toán tử nào được sử dụng để so sánh các giá trị?

  • Kết quả của toán tử so sánh này là một giá trị boolean là đúng hoặc sai. True trả về giá trị là "-1", trong khi Sai trả về "0". ....object equality and identity
  • Làm thế nào để bạn sử dụng các toán tử so sánh trong Python?compare objects
  • Lớn hơn nhà điều hành trong Python. Ít hơn nhà điều hành trong Python. Lớn hơn bằng người vận hành trong Python. ... Tài liệu tham khảo cho các nhà khai thác so sánh Python:.Python operators do under the hood
  • == và === trong Python là gì?unexpected behavior
  • Toán tử == Kiểm tra xem hai toán hạng có bằng giá trị hay không. Toán tử === Kiểm tra xem xem hai toán hạng có bằng với kiểu dữ liệu và giá trị không.custom
    >>> help(id)
    Help on built-in function id in module builtins:
    
    id(obj, /)
        Return the identity of an object.
    
        This is guaranteed to be unique among simultaneously existing objects.
        (CPython uses the object's memory address.)
    
    >>> id(id)
    2570892442576
    
    2 class method
    to define equality operator behavior

Có một sự khác biệt tinh tế giữa toán tử nhận dạng Python (Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b 0) và toán tử bình đẳng (Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b 1). Mã của bạn có thể chạy tốt khi bạn sử dụng toán tử Python Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b 0 để so sánh các số, cho đến khi nó đột nhiên không. Bạn có thể đã nghe thấy ở đâu đó rằng nhà điều hành Python Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b 0 nhanh hơn nhà điều hành Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is not equal to b Line 4 - a is not less than b Line 5 - a is greater than b Line 6 - a is either less than or equal to b Line 7 - b is either greater than or equal to b 1 hoặc bạn có thể cảm thấy rằng nó trông giống Pythonic hơn. Tuy nhiên, nó rất quan trọng để ghi nhớ rằng các nhà khai thác này không hoạt động khá giống nhau.

Toán tử

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 so sánh giá trị hoặc bình đẳng của hai đối tượng, trong khi toán tử Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 kiểm tra xem hai biến có hướng đến cùng một đối tượng trong bộ nhớ hay không. Trong phần lớn các trường hợp, điều này có nghĩa là bạn nên sử dụng các toán tử bình đẳng
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 và
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8, ngoại trừ khi bạn so sánh với
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
9.identity of two objects. In CPython, this is their memory address. Everything in Python is an object, and each object is stored at a specific memory location. The Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 and
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
1 operators check whether two variables refer to the same object in memory.

Trong hướng dẫn này, bạn sẽ học:

Sự khác biệt là gì giữa bình đẳng đối tượng và bản sắc

>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576

Khi nào nên sử dụng các toán tử bình đẳng và nhận dạng để so sánh các đối tượng

Những người điều khiển python này làm gì dưới mui xeinterned in CPython. Each number is stored at a singular and fixed place in memory, which saves memory for commonly-used integers.

Tại sao sử dụng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 và
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
1 để so sánh các giá trị dẫn đến hành vi bất ngờ

>>>

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784

Các biến

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 và
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 ban đầu chỉ ra hai đối tượng khác nhau trong bộ nhớ, như được hiển thị bởi các ID khác nhau của chúng. Khi bạn thực tập chúng, bạn đảm bảo rằng
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 và
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 trỏ đến cùng một đối tượng trong bộ nhớ. Bất kỳ chuỗi mới nào có giá trị
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
4 bây giờ sẽ được tạo tại một vị trí bộ nhớ mới, nhưng khi bạn thực tập chuỗi mới này, bạn đảm bảo rằng nó chỉ vào cùng một địa chỉ bộ nhớ với
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
4 đầu tiên mà bạn đã thực tập.

Các đối tượng khác được thực tập theo mặc định là

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
9,
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
7,
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
8 và các chuỗi đơn giản. Hãy nhớ rằng hầu hết thời gian, các đối tượng khác nhau có cùng giá trị sẽ được lưu trữ tại các địa chỉ bộ nhớ riêng biệt. Điều này có nghĩa là bạn không nên sử dụng toán tử Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 để so sánh các giá trị.This means you should not use the Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 operator to compare values.

Khi chỉ có một số số nguyên được thực tập

Đằng sau hậu trường, Python Intern đối tượng với các giá trị thường được sử dụng (ví dụ: số nguyên -5 đến 256) để lưu bộ nhớ. Bit mã sau đây cho bạn thấy cách chỉ có một số số nguyên có địa chỉ bộ nhớ cố định:

>>>

>>> a = 256
>>> b = 256
>>> a is b
True
>>> id(a)
1638894624
>>> id(b)
1638894624

>>> a = 257
>>> b = 257
>>> a is b
False

>>> id(a)
2570926051952
>>> id(b)
2570926051984

Ban đầu,

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 và
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 chỉ vào cùng một đối tượng được thực tập trong bộ nhớ, nhưng khi các giá trị của chúng nằm ngoài phạm vi của các số nguyên chung (từ -5 đến 256), chúng đã được lưu trữ tại các địa chỉ bộ nhớ riêng biệt.common integers (ranging from -5 to 256), they’re stored at separate memory addresses.

Khi nhiều biến trỏ đến cùng một đối tượng

Khi bạn sử dụng toán tử gán (

>>> a = 256
>>> b = 256
>>> a is b
True
>>> id(a)
1638894624
>>> id(b)
1638894624

>>> a = 257
>>> b = 257
>>> a is b
False

>>> id(a)
2570926051952
>>> id(b)
2570926051984
2) để làm cho một biến bằng biến khác, bạn sẽ làm cho các biến này trỏ đến cùng một đối tượng trong bộ nhớ. Điều này có thể dẫn đến hành vi bất ngờ cho các đối tượng có thể thay đổi:

>>>

>>> a = [1, 2, 3]
>>> b = a
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> b
[1, 2, 3, 4]

>>> id(a)
2570926056520
>>> id(b)
2570926056520

Điều gì vừa xảy ra? Bạn thêm một yếu tố mới vào

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0, nhưng bây giờ
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 cũng chứa yếu tố này! Chà, trong dòng trong đó
>>> a = 256
>>> b = 256
>>> a is b
True
>>> id(a)
1638894624
>>> id(b)
1638894624

>>> a = 257
>>> b = 257
>>> a is b
False

>>> id(a)
2570926051952
>>> id(b)
2570926051984
5, bạn đặt
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 để trỏ đến cùng một địa chỉ bộ nhớ là
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0, để cả hai biến bây giờ đề cập đến cùng một đối tượng.

Nếu bạn xác định các danh sách này một cách độc lập với nhau, thì chúng được lưu trữ tại các địa chỉ bộ nhớ khác nhau và hoạt động độc lập:

>>>

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> id(a)
2356388925576
>>> id(b)
2356388952648

Bởi vì

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 và
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 bây giờ đề cập đến các đối tượng khác nhau trong bộ nhớ, việc thay đổi một đối tượng khác không ảnh hưởng đến người kia.

So sánh bình đẳng với python == và! = Các toán tử

Hãy nhớ lại rằng các đối tượng có cùng giá trị thường được lưu trữ tại các địa chỉ bộ nhớ riêng biệt. Sử dụng các toán tử bình đẳng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 và
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8 nếu bạn muốn kiểm tra xem hai đối tượng có cùng giá trị hay không, bất kể chúng được lưu trữ ở đâu trong bộ nhớ. Trong phần lớn các trường hợp, đây là những gì bạn muốn làm.same value are often stored at separate memory addresses. Use the equality operators
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 and
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8 if you want to check whether or not two objects have the same value, regardless of where they’re stored in memory. In the vast majority of cases, this is what you want to do.

Khi bản sao đối tượng bằng nhau nhưng không giống nhau

Trong ví dụ dưới đây, bạn đặt

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 thành bản sao của
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 (là một đối tượng có thể thay đổi, chẳng hạn như danh sách hoặc từ điển). Cả hai biến sẽ có cùng một giá trị, nhưng mỗi biến sẽ được lưu trữ tại một địa chỉ bộ nhớ khác nhau:

>>>

>>> a = [1, 2, 3]
>>> b = a.copy()
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

>>> a == b
True
>>> a is b
False

>>> id(a)
2570926058312
>>> id(b)
2570926057736

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
0 và
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
1 hiện được lưu trữ tại các địa chỉ bộ nhớ khác nhau, do đó
>>> a = [1, 2, 3]
>>> b = a
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> b
[1, 2, 3, 4]

>>> id(a)
2570926056520
>>> id(b)
2570926056520
6 sẽ không còn trả về
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
7. Tuy nhiên,
>>> a = [1, 2, 3]
>>> b = a
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> b
[1, 2, 3, 4]

>>> id(a)
2570926056520
>>> id(b)
2570926056520
8 trả về
>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
7 vì cả hai đối tượng đều có cùng giá trị.

Cách so sánh bằng cách bình đẳng hoạt động

Sự kỳ diệu của toán tử bình đẳng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 xảy ra trong phương pháp lớp
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
2 của đối tượng ở bên trái của dấu hiệu
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1.

Đây là một phương pháp lớp ma thuật mà Lát gọi là bất cứ khi nào một thể hiện của lớp này được so sánh với một đối tượng khác. Nếu phương thức này không được thực hiện, thì

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 sẽ so sánh các địa chỉ bộ nhớ của hai đối tượng theo mặc định.

Là một bài tập, hãy tạo một lớp

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> id(a)
2356388925576
>>> id(b)
2356388952648
4 kế thừa từ
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> id(a)
2356388925576
>>> id(b)
2356388952648
5 và triển khai
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
2 để so sánh xem độ dài của chuỗi này có giống với độ dài của đối tượng khác hay không:

class SillyString(str):
    # This method gets called when using == on the object
    def __eq__(self, other):
        print(f'comparing {self} to {other}')
        # Return True if self and other have the same length
        return len(self) == len(other)    

Bây giờ, một sillystring

>>> from sys import intern
>>> a = 'hello world'
>>> b = 'hello world'
>>> a is b
False
>>> id(a)
1603648396784
>>> id(b)
1603648426160

>>> a = intern(a)
>>> b = intern(b)
>>> a is b
True
>>> id(a)
1603648396784
>>> id(b)
1603648396784
4 phải bằng với chuỗi
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
>>> id(a)
2356388925576
>>> id(b)
2356388952648
8 và thậm chí với bất kỳ đối tượng nào khác có cùng độ dài:

>>>

>>> # Compare two strings
>>> 'hello world' == 'world hello'
False

>>> # Compare a string with a SillyString
>>> 'hello world' == SillyString('world hello')
comparing world hello to hello world
True

>>> # Compare a SillyString with a list
>>> SillyString('hello world') == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
comparing hello world to [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
True

Tất nhiên, đây là hành vi ngớ ngẩn đối với một đối tượng hoạt động như một chuỗi, nhưng nó minh họa những gì xảy ra khi bạn so sánh hai đối tượng sử dụng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1. Toán tử
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8 đưa ra phản hồi nghịch đảo của điều này trừ khi phương pháp lớp
>>> a = [1, 2, 3]
>>> b = a.copy()
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

>>> a == b
True
>>> a is b
False

>>> id(a)
2570926058312
>>> id(b)
2570926057736
1 cụ thể được thực hiện.

Ví dụ trên cũng cho bạn thấy rõ lý do tại sao việc sử dụng toán tử Python

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 là tốt để so sánh với
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
9, thay vì toán tử
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1. Nó không chỉ nhanh hơn vì nó so sánh các địa chỉ bộ nhớ, mà còn an toàn hơn vì nó không phụ thuộc vào logic của bất kỳ phương pháp lớp
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
2 nào.

So sánh các toán tử so sánh Python

Theo nguyên tắc thông thường, bạn nên luôn luôn sử dụng các toán tử bình đẳng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 và
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8, ngoại trừ khi bạn so sánh với
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
9:

  • Sử dụng các toán tử Python

    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    1 và
    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    8 để so sánh bình đẳng đối tượng. Ở đây, bạn thường so sánh giá trị của hai đối tượng. Đây là những gì bạn cần nếu bạn muốn so sánh việc hai đối tượng có cùng nội dung hay không, và bạn không quan tâm đến nơi họ lưu trữ trong bộ nhớ.
    . Here, you’re generally comparing the value of two objects. This is what you need if you want to compare whether or not two objects have the same contents, and you don’t care about where they’re stored in memory.

  • Sử dụng các toán tử Python

    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    0 và
    >>> help(id)
    Help on built-in function id in module builtins:
    
    id(obj, /)
        Return the identity of an object.
    
        This is guaranteed to be unique among simultaneously existing objects.
        (CPython uses the object's memory address.)
    
    >>> id(id)
    2570892442576
    
    1 khi bạn muốn so sánh nhận dạng đối tượng. Ở đây, bạn có thể so sánh việc hai biến có chỉ vào cùng một đối tượng trong bộ nhớ hay không. Trường hợp sử dụng chính cho các nhà khai thác này là khi bạn so sánh với
    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    9. Nó nhanh hơn và an toàn hơn để so sánh với
    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    9 theo địa chỉ bộ nhớ so với sử dụng các phương thức lớp.
    . Here, you’re comparing whether or not two variables point to the same object in memory. The main use case for these operators is when you’re comparing to
    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    9. It’s faster and safer to compare to
    Line 1 - a is not equal to b
    Line 2 - a is not equal to b
    Line 3 - a is not equal to b
    Line 4 - a is not less than b
    Line 5 - a is greater than b
    Line 6 - a is either less than or equal to b
    Line 7 - b is either greater than or equal to b
    
    9 by memory address than it is by using class methods.

Các biến có cùng giá trị thường được lưu trữ tại các địa chỉ bộ nhớ riêng biệt. Điều này có nghĩa là bạn nên sử dụng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 và
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8 để so sánh các giá trị của chúng và chỉ sử dụng các toán tử Python ____10 và
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
1 khi bạn muốn kiểm tra xem hai biến có chỉ vào cùng một địa chỉ bộ nhớ hay không.

Sự kết luận

Trong hướng dẫn này, bạn đã học được rằng

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 và
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
8 so sánh giá trị của hai đối tượng, trong khi các toán tử Python ____10 và
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
1 so sánh xem hai biến có đề cập đến cùng một đối tượng trong bộ nhớ hay không. Nếu bạn ghi nhớ sự khác biệt này, thì bạn sẽ có thể ngăn chặn hành vi bất ngờ trong mã của mình.compare the value of two objects, whereas the Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 and
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
1 operators compare whether two variables refer to the same object in memory. If you keep this distinction in mind, then you should be able to prevent unexpected behavior in your code.

Nếu bạn muốn đọc thêm về thế giới tuyệt vời của việc thực tập đối tượng và nhà điều hành Python

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0, thì hãy xem lý do tại sao bạn gần như không bao giờ nên sử dụng trên mạng trong Python. Bạn cũng có thể xem cách bạn có thể sử dụng
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
9 để tối ưu hóa thời gian sử dụng bộ nhớ và thời gian so sánh cho các chuỗi, mặc dù rất có thể Python đã tự động xử lý việc này cho bạn hậu trường.object interning and the Python
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
0 operator, then check out Why you should almost never use “is” in Python. You could also have a look at how you can use
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
9 to optimize memory usage and comparison times for strings, although the chances are that Python already automatically handles this for you behind-the-scenes.

Bây giờ, bạn đã học được những gì các nhà khai thác bình đẳng và nhận dạng làm dưới mui xe, bạn có thể thử viết các phương thức lớp

>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
2 của riêng mình, xác định cách so sánh của lớp này khi sử dụng toán tử
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1. Đi và áp dụng kiến ​​thức mới của bạn về các nhà khai thác so sánh Python này!equality and identity operators do under the hood, you can try writing your own
>>> help(id)
Help on built-in function id in module builtins:

id(obj, /)
    Return the identity of an object.

    This is guaranteed to be unique among simultaneously existing objects.
    (CPython uses the object's memory address.)

>>> id(id)
2570892442576
2 class methods, which define how instances of this class are compared when using the
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
1 operator. Go and apply your newfound knowledge of these Python comparison operators!

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để làm sâu sắc thêm sự hiểu biết của bạn: So sánh các đối tượng Python đúng cách: "là" vs "==" This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Comparing Python Objects the Right Way: "is" vs "=="

Một nhà điều hành so sánh trong Python là gì?

Một toán tử so sánh trong Python, còn được gọi là toán tử quan hệ Python, so sánh các giá trị của hai toán hạng và trả về đúng hay sai dựa trên việc điều kiện có được đáp ứng hay không.compares the values of two operands and returns True or False based on whether the condition is met.

Những toán tử nào được sử dụng để so sánh các giá trị?

Kết quả của toán tử so sánh này là một giá trị boolean là đúng hoặc sai.True trả về giá trị là "-1", trong khi Sai trả về "0".....

Làm thế nào để bạn sử dụng các toán tử so sánh trong Python?

Lớn hơn nhà điều hành trong Python.Ít hơn nhà điều hành trong Python.Lớn hơn bằng người vận hành trong Python.... Tài liệu tham khảo cho các nhà khai thác so sánh Python:.

== và === trong Python là gì?

Toán tử == Kiểm tra xem hai toán hạng có bằng giá trị hay không. Toán tử === Kiểm tra xem xem hai toán hạng có bằng với kiểu dữ liệu và giá trị không. The === operator checks to see if two operands are equal by datatype and value.