Operator Identiti Python: Memahami 'is' dan 'is not'

Selamat datang, pemrogram Python masa depan! Hari ini, kita akan melihatkan aspek yang menarik tentang Python: Operator Identiti. Jangan khawatir jika anda baru di atas pengaturcaraan; Saya akan memandu anda melalui konsep ini langkah demi langkah, sama seperti yang saya lakukan untuk pelbagai pelajar selama tahun penyelajaran saya. Jadi, rakitkan atas rakus anda dan mari kitaembark untuk perjalanan yang menarik ini bersama-sama!

Python - Identity Operators

Apa Itu Operator Identiti Python?

Sebelum kita melompat ke atas perincian, mari kita fahami apa itu operator identiti. Dalam Python, operator identiti digunakan untuk membandingkan lokasi memori dua objek. Mereka tidak membandingkan nilai objek, tetapi melihat jika objek adalah benar-benar objek yang sama di atas memori.

Fikirkan seperti ini: bayangkan anda dan kawan anda keduanya memiliki rakit penyapu merah. Mereka mungkin kelihatan serupa, tetapi mereka bukan rakit penyapu yang sama. Itu jenis perbezaan yang operator identiti membantu kita buat di atas Python.

Python memiliki dua operator identiti:

Operator Keterangan
is Kembali True jika kedua operan mengacu kepada objek yang sama
is not Kembali True jika kedua operan tidak mengacu kepada objek yang sama

Sekarang, mari kita lihat setiap operator ini secara perincian.

Operator Python 'is'

Operator 'is' memeriksa jika dua objek memiliki identiti yang sama, yang berarti mereka mengambil tempat yang sama di atas memori. Ia kembali True jika objek adalah identik, dan False jika sebaliknya.

Mari lihat beberapa contoh:

# Contoh 1: Membandingkan integer
a = 5
b = 5
print(a is b)  # Output: True

# Contoh 2: Membandingkan senarai
senarai1 = [1, 2, 3]
senarai2 = [1, 2, 3]
print(senarai1 is senarai2)  # Output: False

# Contoh 3: Membandingkan dengan None
x = None
print(x is None)  # Output: True

Mari kita kongsi contoh ini:

  1. Dalam contoh pertama, 'a' dan 'b' keduanya diiktiraf dengan nilai 5. Python mengoptimumkan memori dengan membuat integer kecil (biasanya -5 hingga 256) berkongsi tempat yang sama di atas memori. Jadi, 'a' dan 'b' sebenarnya mengacu kepada objek yang sama di atas memori, membuat 'a is b' kembali True.

  2. Dalam contoh kedua, walaupun senarai1 dan senarai2 mengandungi nilai yang sama, mereka adalah dua objek yang berbeza di atas memori. Itu mengapa 'senarai1 is senarai2' kembali False.

  3. Dalam contoh ketiga, 'None' adalah objek singleton khas di atas Python. Setiap pembolehubah yang diiktiraf None akan selalu mengacu kepada objek ini, jadi 'x is None' kembali True.

Operator Python 'is not'

Operator 'is not' adalah penolakan dari operator 'is'. Ia kembali True jika objek bukan objek yang sama di atas memori, dan False jika mereka adalah.

Mari lihat beberapa contoh:

# Contoh 1: Membandingkan rakaman
rakam1 = "Hello"
rakam2 = "Hello"
print(rakam1 is not rakam2)  # Output: False

# Contoh 2: Membandingkan senarai lagi
senarai1 = [1, 2, 3]
senarai2 = [1, 2, 3]
print(senarai1 is not senarai2)  # Output: True

# Contoh 3: Membandingkan dengan None
y = 10
print(y is not None)  # Output: True

Mari kita analisis contoh ini:

  1. Dalam contoh pertama, Python mengoptimumkan memori untuk rakaman kecil, membuat rakam1 dan rakam2 mengacu kepada objek yang sama. Oleh itu, 'rakam1 is not rakam2' kembali False.

  2. Dalam contoh kedua, seperti yang kita lihat sebelumnya, senarai1 dan senarai2 adalah objek berbeza di atas memori, jadi 'senarai1 is not senarai2' kembali True.

  3. Dalam contoh ketiga, y diiktiraf dengan nilai 10, yang bukan None. Oleh itu, 'y is not None' kembali True.

Operator Identiti Python: Contoh Praktikal Dengan Penjelasan

Sekarang kita telah cuba yang asas, mari kita lihat beberapa contoh praktikal lagi untuk memastikan pemahaman kita.

# Contoh 1: Fungsi kembali None
def ucapkan(salam=None):
if salam is not None:
return f"Helo, {salam}!"
else:
return "Helo, pelarian!"

print(ucapkan())  # Output: Helo, pelarian!
print(ucapkan("Alice"))  # Output: Helo, Alice!

# Contoh 2: Memeriksa kumpulan kosong
kumpulan_kosong = []
if kumpulan_kosong is not None and len(kumpulan_kosong) == 0:
print("Senarai ini kosong tetapi bukan None")

# Contoh 3: Perbandingan objek
class Orang:
def __init__(self, nama):
self.nama = nama

orang1 = Orang("Bob")
orang2 = Orang("Bob")
orang3 = orang1

print(orang1 is orang2)  # Output: False
print(orang1 is orang3)  # Output: True

Mari kita kongsi contoh ini:

  1. Dalam contoh pertama, kita menggunakan 'is not None' untuk memeriksa jika nama telah diberikan kepada fungsi ucapkan kita. Ini adalah pola umum di atas Python untuk mengendungi parameter opsional.

  2. Contoh kedua menunjukkan bagaimana kita dapat menggunakan 'is not None' dalam kombinasi dengan pemeriksaan lain. Di sini, kita membuat sedar our senarai wujud (bukan None) dan kosong.

  3. Contoh ketiga menunjukkan bagaimana 'is' bertindak dengan objek khas. Walaupun orang1 dan orang2 memiliki nama yang sama, mereka adalah objek berbeza di atas memori. Walau bagaimanapun, orang3 diiktiraf dengan objek yang sama sebagai orang1, jadi 'orang1 is orang3' kembali True.

Penutup

Dan itu adalah untuk masa ini, rakyat! Kita telah melakukan perjalanan melalui wilayah Operator Identiti Python. Ingat, 'is' dan 'is not' tentang identiti, bukan kesetaraan. Mereka memeriksa jika objek adalah objek yang sama di atas memori, bukan jika mereka memiliki nilai yang sama.

Di atas tahun penyelajaran saya, saya mendapati bahawa pelajar sering kacau 'is' dengan '=='. Ini adalah rakaman yang saya gunakan untuk membantu untuk mengingat: "Is adalah untuk identiti, equals equals untuk kesetaraan!"

Latihan dengan operator ini, main-main dengan contoh yang berbeza, dan anda akan menggunakan mereka seperti profesional. Selamat pengaturcaraan, dan ingat: di atas Python, seperti di atas hidup, itu bukan hanya tentang apa sesuatu itu adalah, tetapi di mana ia adalah yang penting!

Credits: Image by storyset