Rumah >pembangunan bahagian belakang >Tutorial Python >Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?

Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?

Barbara Streisand
Barbara Streisandasal
2024-12-26 16:39:14617semak imbas

Python String Comparison: When Does `==` Differ From `is`?

Menyelidiki Percanggahan Perbandingan Rentetan: '==' vs 'is'

Perbuatan membandingkan rentetan menggunakan sama ada '== ' atau 'adalah' kadangkala boleh menghasilkan hasil yang berbeza. Ini menimbulkan persoalan mengapa jurang ini wujud.

Dua pembolehubah rentetan mungkin mempunyai nilai yang sama, namun 's1 == s2' secara konsisten mengembalikan Benar, manakala 's1 ialah s2' kadangkala mengembalikan Salah.

Apabila ditafsirkan dalam Python, perbandingan serupa berjaya:

>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True

Untuk memahami fenomena ini, adalah penting untuk membezakan antara ujian identiti ('adalah') dan ujian kesaksamaan ('==').

Dalam contoh yang disediakan, perkara yang berlaku direplikasi dalam penterjemah seperti berikut:

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False

Perbezaan itu timbul kerana 'adalah' membandingkan identiti objek (iaitu, alamat memori), manakala '==' membandingkan nilainya. Dalam senario di atas, 'a' dan 'b' mempunyai nilai yang sama tetapi wujud secara berasingan dalam ingatan.

Oleh itu, logik bahawa 'a ialah b' akan menilai kepada Palsu kerana ia adalah objek yang berbeza, walaupun kandungannya sejajar. Pada dasarnya, 'a ialah b' adalah serupa dengan 'id(a) == id(b)'.

Atas ialah kandungan terperinci Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn