លំហសិក្សាធិការកម្ពុជា
V1.0
ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណក្នុង Python មាន is និង is not ដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់វត្ថុតែមួយក្នុងអង្គចងចាំដែរឬទេ។ is ផ្ដល់លទ្ធផល True នៅពេលវត្ថុទាំងពីរជាវត្ថុដូចគ្នា ខណៈ is not ផ្ដល់ True នៅពេលវត្ថុទាំងពីរខុសគ្នា។ ប្រតិបត្តិករទាំងនេះខុសពី == ដែលប្រើសម្រាប់ប្រៀបធៀបតម្លៃ ហើយគួរប្រើ is None និង is not None នៅពេលពិនិត្យថា អញ្ញតិមាន ឬគ្មានតម្លៃ។
នៅក្នុង Python ពេលខ្លះយើងមិនត្រឹមតែចង់ដឹងថា តម្លៃពីរស្មើគ្នាឬអត់ប៉ុណ្ណោះទេ ប៉ុន្តែយើងក៏ចង់ដឹងផងដែរថា អញ្ញតិទាំងពីរកំពុងចង្អុលទៅកាន់វត្ថុដូចគ្នាក្នុងអង្គចងចាំឬអត់។ សម្រាប់ការងារបែបនេះ Python មាន ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ (Identity Operators) ដែលប្រើសម្រាប់ពិនិត្យថា វត្ថុពីរជាវត្ថុតែមួយឬមិនមែន។
ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណមាន ២ គឺ៖
isis notប្រតិបត្តិករទាំងនេះផ្ដល់លទ្ធផលជា True ឬ False។
ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ គឺជាប្រតិបត្តិករដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់ វត្ថុដូចគ្នា ក្នុងអង្គចងចាំដែរឬទេ មិនមែនគ្រាន់តែមានតម្លៃស្មើគ្នាប៉ុណ្ណោះទេ។
ឧទាហរណ៍៖
x = [1, 2, 3]
y = x
print(x is y)លទ្ធផល៖
Trueដោយសារ y = x មានន័យថា y កំពុងសំដៅទៅកាន់ List ដូចគ្នាជាមួយ x។

| ប្រតិបត្តិករ | អត្ថន័យ | ឧទាហរណ៍ | លទ្ធផល |
|---|---|---|---|
is | ពិនិត្យថាវត្ថុពីរជាវត្ថុតែមួយ | x is y | True បើជាវត្ថុដូចគ្នា |
is not | ពិនិត្យថាវត្ថុពីរមិនមែនជាវត្ថុតែមួយ | x is not y | True បើជាវត្ថុខុសគ្នា |
isប្រតិបត្តិករ is ប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងចង្អុលទៅវត្ថុតែមួយដែរឬទេ។
TrueFalseឧទាហរណ៍៖
a = [10, 20, 30]
b = a
print(a is b)លទ្ធផល៖
Trueព្រោះ b មិនបានបង្កើត List ថ្មីទេ ប៉ុន្តែសំដៅទៅកាន់ List ដូចគ្នាជាមួយ a។
a = [10, 20, 30]
b = [10, 20, 30]
print(a is b)លទ្ធផល៖
Falseទោះបី a និង b មានតម្លៃដូចគ្នា ក៏ដោយ តែវាជា List ពីរផ្សេងគ្នា ដែលត្រូវបានបង្កើតនៅទីតាំងផ្សេងគ្នាក្នុងអង្គចងចាំ។
is notប្រតិបត្តិករ is not ប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរមិនសំដៅទៅកាន់វត្ថុដូចគ្នា។
TrueFalseឧទាហរណ៍៖
a = [1, 2, 3]
b = [1, 2, 3]
print(a is not b)លទ្ធផល៖
Trueដោយសារ a និង b ជា List ពីរផ្សេងគ្នា។
a = [1, 2, 3]
b = a
print(a is not b)លទ្ធផល៖
Falseព្រោះ a និង b សំដៅទៅកាន់វត្ថុដូចគ្នា។
== និង isនេះជាចំណុចសំខាន់ណាស់ក្នុង Python។
| ប្រតិបត្តិករ | ពិនិត្យអ្វី |
== | ពិនិត្យថា តម្លៃ ស្មើគ្នាដែរឬទេ |
is | ពិនិត្យថា វត្ថុ ដូចគ្នាដែរឬទេ |
ឧទាហរណ៍៖
x = [1, 2, 3]
y = [1, 2, 3]
print(x == y)
print(x is y)លទ្ធផល៖
True
Falseការពន្យល់៖
x == y → True ព្រោះតម្លៃក្នុង List ទាំងពីរស្មើគ្នាx is y → False ព្រោះវាជាវត្ថុពីរផ្សេងគ្នាNonePython ប្រើ None ដើម្បីតំណាងឱ្យ “គ្មានតម្លៃ” ឬ “មិនទាន់មានទិន្នន័យ”។ នៅពេលពិនិត្យជាមួយ None គួរប្រើ is និង is not ជាធម្មតា។
isvalue = None
if value is None:
print("No value is assigned.")លទ្ធផល៖
No value is assigned.is notname = "Dara"
if name is not None:
print("Name is available.")លទ្ធផល៖
Name is available.ពេលពិនិត្យ None គួរប្រើ៖
value is None
value is not Noneជាជាង៖
value == None
value != Nonelist1 = [1, 2, 3]
list2 = list1
list3 = [1, 2, 3]
print(list1 is list2)
print(list1 is list3)
print(list1 == list3)លទ្ធផល៖
True
False
Trueការពន្យល់៖
list1 is list2 → True ព្រោះ list2 សំដៅទៅកាន់ List ដូចគ្នាlist1 is list3 → False ព្រោះ list3 ជា List ថ្មីlist1 == list3 → True ព្រោះតម្លៃដូចគ្នាប្រភេទទិន្នន័យមួយចំនួនដូចជា String និង Integer ពេលខ្លះអាចផ្ដល់លទ្ធផលមើលទៅដូចគ្នា ប៉ុន្តែអ្នកមិនគួរពឹងផ្អែកលើ is ដើម្បីប្រៀបធៀបតម្លៃទេ។
ឧទាហរណ៍៖
x = 100
y = 100
print(x == y)
print(x is y)លទ្ធផលអាចជា៖
True
Trueប៉ុន្តែសម្រាប់តម្លៃផ្សេងៗ ឬបរិបទផ្សេងៗ វាអាចមិនដូចគ្នាទេ។ ដូច្នេះ៖
==is
# Python Identity Operators Exercise
list1 = [10, 20, 30]
list2 = list1
list3 = [10, 20, 30]
name1 = None
name2 = "Python"
print("=== Identity Operator Results ===")
print("list1 is list2:", list1 is list2)
print("list1 is list3:", list1 is list3)
print("list1 == list3:", list1 == list3)
print("list1 is not list3:", list1 is not list3)
print("list1 is not list2:", list1 is not list2)
print("\n=== Checking None ===")
print("name1 is None:", name1 is None)
print("name2 is None:", name2 is None)
print("name2 is not None:", name2 is not None)
print("\n=== Final Decision ===")
if list1 is list2:
print("list1 and list2 refer to the same object.")
else:
print("list1 and list2 do not refer to the same object.")
if list1 is list3:
print("list1 and list3 refer to the same object.")
else:
print("list1 and list3 do not refer to the same object.")
if name1 is None:
print("name1 has no value.")
else:
print("name1 has a value.")
if name2 is not None:
print("name2 contains data.")
else:
print("name2 has no data.")# Python Identity Operators Exerciseបន្ទាត់នេះជាមតិយោបល់ Comment ដែលប្រាប់ថា កម្មវិធីនេះជាលំហាត់អំពីប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ។
list1 = [10, 20, 30]បង្កើត List មួយ ហើយរក្សាទុកក្នុងអញ្ញតិ list1។
list2 = list1អញ្ញតិ list2 សំដៅទៅកាន់វត្ថុដូចគ្នាជាមួយ list1។
list3 = [10, 20, 30]បង្កើត List ថ្មីមួយទៀត ដែលមានតម្លៃដូច list1 ប៉ុន្តែជាវត្ថុផ្សេងគ្នា។
name1 = None
name2 = "Python"name1 មានតម្លៃ Nonename2 មានតម្លៃ "Python"isprint("list1 is list2:", list1 is list2)ពិនិត្យថា list1 និង list2 ជាវត្ថុតែមួយដែរឬទេ។
print("list1 is list3:", list1 is list3)ពិនិត្យថា list1 និង list3 ជាវត្ថុតែមួយដែរឬទេ។
print("list1 == list3:", list1 == list3)ពិនិត្យថា តម្លៃក្នុង list1 និង list3 ស្មើគ្នាដែរឬទេ។
is notprint("list1 is not list3:", list1 is not list3)
print("list1 is not list2:", list1 is not list2)បន្ទាត់ទាំងនេះពិនិត្យថា វត្ថុទាំងនោះខុសគ្នាឬអត់។
Noneprint("name1 is None:", name1 is None)
print("name2 is None:", name2 is None)
print("name2 is not None:", name2 is not None)បន្ទាត់ទាំងនេះពិនិត្យថា អញ្ញតិមានតម្លៃ None ឬអត់។
if សម្រាប់សម្រេចចិត្តif list1 is list2:
print("list1 and list2 refer to the same object.")
else:
print("list1 and list2 do not refer to the same object.")លក្ខខណ្ឌនេះពិនិត្យថា list1 និង list2 សំដៅទៅវត្ថុតែមួយ។
if list1 is list3:
print("list1 and list3 refer to the same object.")
else:
print("list1 and list3 do not refer to the same object.")លក្ខខណ្ឌនេះពិនិត្យថា list1 និង list3 ជាវត្ថុដូចគ្នាដែរឬទេ។
if name1 is None:
print("name1 has no value.")ពិនិត្យថា name1 គ្មានតម្លៃដែរឬទេ។
if name2 is not None:
print("name2 contains data.")ពិនិត្យថា name2 មានទិន្នន័យដែរឬទេ។
លទ្ធផលអាចមានដូចខាងក្រោម៖
=== Identity Operator Results ===
list1 is list2: True
list1 is list3: False
list1 == list3: True
list1 is not list3: True
list1 is not list2: False
=== Checking None ===
name1 is None: True
name2 is None: False
name2 is not None: True
=== Final Decision ===
list1 and list2 refer to the same object.
list1 and list3 do not refer to the same object.
name1 has no value.
name2 contains data.is ជំនួស ==កូដមិនគួរប្រើ៖
x = 1000
y = 1000
print(x is y)បើចង់ពិនិត្យតម្លៃស្មើគ្នា គួរប្រើ៖
print(x == y)a = [1, 2]
b = [1, 2]a == b → Truea is b → Falseis Noneពេលពិនិត្យ None គួរប្រើ៖
if value is None:មិនគួរប្រើជាទម្លាប់៖
if value == None:បង្កើត List ពីរ៖ មួយដោយប្រើ b = a និងមួយទៀតដោយបង្កើតថ្មី។ បន្ទាប់មកសាកល្បង is, is not និង ==។
Noneបង្កើតអញ្ញតិមួយមានតម្លៃ None ហើយប្រើ is None និង is not None ដើម្បីពិនិត្យវា។
ទទួលអត្ថបទពីអ្នកប្រើ។ ប្រសិនបើតម្លៃទទេទេ បង្ហាញថា មានទិន្នន័យ; បើទទេ អាចកំណត់ឱ្យវាជា None ហើយពិនិត្យ។
បង្កើត Dictionary ពីរ ដែលមានទិន្នន័យដូចគ្នា ហើយប្រៀបធៀបដោយ == និង is។
is និង is not ប្រើសម្រាប់អ្វី?== និង is ខុសគ្នាយ៉ាងដូចម្ដេច?list1 == list3 អាចជា True ប៉ុន្តែ list1 is list3 ជា False?None?a = b មានឥទ្ធិពលយ៉ាងដូចម្ដេចលើ a is b?is not ផ្ដល់ True នៅពេលណា?is?== ជំនួស is?ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណក្នុង Python រួមមាន is និង is not ដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់វត្ថុដូចគ្នាក្នុងអង្គចងចាំដែរឬទេ។ is ផ្ដល់លទ្ធផល True នៅពេលវត្ថុទាំងពីរជាវត្ថុតែមួយ ខណៈ is not ផ្ដល់ True នៅពេលវត្ថុទាំងពីរមិនមែនជាវត្ថុតែមួយ។ ប្រតិបត្តិករទាំងនេះខុសពី == ដែលប្រើសម្រាប់ប្រៀបធៀបតម្លៃ។ ជាពិសេស នៅពេលពិនិត្យ None គួរប្រើ is None និង is not None ដើម្បីឱ្យកូដបានត្រឹមត្រូវ និងស្តង់ដារ។
មិនទាន់មានមតិយោបល់ — ក្លាយជាអ្នកដំបូង!