Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara `==` dan `is` dalam Python?

Apakah Perbezaan Antara `==` dan `is` dalam Python?

Barbara Streisand
Lepaskan: 2024-12-24 22:41:11
asal
680 orang telah melayarinya

What's the Difference Between `==` and `is` in Python?

Memahami Perbezaan Antara "=='' dan "is'' dalam Python

Apabila membandingkan nilai dalam Python, terdapat dua perkara biasa pengendali: "=" dan "adalah." Selalunya, nampaknya pengendali ini melakukan pemeriksaan kesaksamaan yang sama. Walau bagaimanapun, terdapat perbezaan halus antara kedua-duanya dari segi apa yang mereka nilai.

Pengendali "==" dan "is''

  • "==": Ujian untuk kesamaan nilai Ini bermakna ia menilai jika dua pembolehubah merujuk kepada objek yang mengandungi yang sama nilai.
  • "adalah": Ujian untuk identiti objek ini menyemak sama ada dua pembolehubah merujuk kepada objek yang sama dalam ingatan, tanpa mengira nilainya.

Kesamaan Nilai lwn. Identiti Objek

Nilai Kesamaan:

  • Apabila menggunakan "==", Python membandingkan nilai objek yang dirujuk oleh pembolehubah.
  • Jika nilainya sama, hasilnya adalah Benar , tidak kira sama ada objek adalah contoh yang berbeza ingatan.

Contoh:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10
Salin selepas log masuk

Identiti Objek:

  • Apabila menggunakan "is," Python membandingkan objek pengecam pembolehubah.
  • Jika pembolehubah merujuk kepada objek yang sama dalam ingatan, hasilnya adalah Benar, walaupun nilainya berbeza.

Contoh:

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

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list
Salin selepas log masuk

Pengecualian kepada Peraturan

  • Integer : Python cache objek integer kecil (sehingga 256) atas sebab prestasi. Ini bermakna "adalah" boleh mengembalikan Benar walaupun untuk pembolehubah integer yang berbeza dalam julat ini:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
Salin selepas log masuk
  • String: Begitu juga, Python menyimpan literal rentetan biasa. Walau bagaimanapun, ambil perhatian bahawa ini tidak terpakai pada rentetan yang dibuat daripada pembolehubah:
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object
Salin selepas log masuk

Ringkasnya, "==" menguji kesamaan nilai, manakala "is" menguji identiti objek. Memahami perbezaan ini adalah penting untuk menulis kod Python yang betul dan cekap.

Atas ialah kandungan terperinci Apakah Perbezaan Antara `==` dan `is` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan