លំហសិក្សាធិការកម្ពុជា លំហសិក្សាធិការកម្ពុជា V1.0
ចូល ចុះឈ្មោះ
14 Jul 2026 02:30 UTC បានកែប្រែ 27 Jul 2026 23:39 UTC 34 ដងមើល 0 មតិ personal

លំហាត់៖ ការប្រើប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ (Identity Operators) ក្នុង Python

ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណក្នុង Python មាន is និង is not ដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់វត្ថុតែមួយក្នុងអង្គចងចាំដែរឬទេ។ is ផ្ដល់លទ្ធផល True នៅពេលវត្ថុទាំងពីរជាវត្ថុដូចគ្នា ខណៈ is not ផ្ដល់ True នៅពេលវត្ថុទាំងពីរខុសគ្នា។ ប្រតិបត្តិករទាំងនេះខុសពី == ដែលប្រើសម្រាប់ប្រៀបធៀបតម្លៃ ហើយគួរប្រើ is None និង is not None នៅពេលពិនិត្យថា អញ្ញតិមាន ឬគ្មានតម្លៃ។

១. សេចក្ដីផ្ដើម

នៅក្នុង Python ពេលខ្លះយើងមិនត្រឹមតែចង់ដឹងថា តម្លៃពីរស្មើគ្នាឬអត់ប៉ុណ្ណោះទេ ប៉ុន្តែយើងក៏ចង់ដឹងផងដែរថា អញ្ញតិទាំងពីរកំពុងចង្អុលទៅកាន់វត្ថុដូចគ្នាក្នុងអង្គចងចាំឬអត់។ សម្រាប់ការងារបែបនេះ Python មាន ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ (Identity Operators) ដែលប្រើសម្រាប់ពិនិត្យថា វត្ថុពីរជាវត្ថុតែមួយឬមិនមែន។

ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណមាន ២ គឺ៖

  • is
  • is not

ប្រតិបត្តិករទាំងនេះផ្ដល់លទ្ធផលជា TrueFalse


២. និយមន័យប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ

ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ គឺជាប្រតិបត្តិករដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់ វត្ថុដូចគ្នា ក្នុងអង្គចងចាំដែរឬទេ មិនមែនគ្រាន់តែមានតម្លៃស្មើគ្នាប៉ុណ្ណោះទេ។

ឧទាហរណ៍៖

x = [1, 2, 3]
y = x

print(x is y)

លទ្ធផល៖

True

ដោយសារ y = x មានន័យថា y កំពុងសំដៅទៅកាន់ List ដូចគ្នាជាមួយ x


៣. តារាងប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ

ប្រតិបត្តិករអត្ថន័យឧទាហរណ៍លទ្ធផល
isពិនិត្យថាវត្ថុពីរជាវត្ថុតែមួយx is yTrue បើជាវត្ថុដូចគ្នា
is notពិនិត្យថាវត្ថុពីរមិនមែនជាវត្ថុតែមួយx is not yTrue បើជាវត្ថុខុសគ្នា

៤. ប្រតិបត្តិករ is

៤.១ និយមន័យ

ប្រតិបត្តិករ is ប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងចង្អុលទៅវត្ថុតែមួយដែរឬទេ។

  • បើជាវត្ថុតែមួយ → True
  • បើមិនមែន → False

ឧទាហរណ៍៖

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 ប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរមិនសំដៅទៅកាន់វត្ថុដូចគ្នា។

  • បើមិនមែនជាវត្ថុតែមួយ → True
  • បើជាវត្ថុតែមួយ → False

ឧទាហរណ៍៖

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 == yTrue ព្រោះតម្លៃក្នុង List ទាំងពីរស្មើគ្នា
  • x is yFalse ព្រោះវាជាវត្ថុពីរផ្សេងគ្នា

៧. ការប្រើជាមួយ None

Python ប្រើ None ដើម្បីតំណាងឱ្យ “គ្មានតម្លៃ” ឬ “មិនទាន់មានទិន្នន័យ”។ នៅពេលពិនិត្យជាមួយ None គួរប្រើ is និង is not ជាធម្មតា។

៧.១ ឧទាហរណ៍ប្រើ is

value = None

if value is None:
    print("No value is assigned.")

លទ្ធផល៖

No value is assigned.

៧.២ ឧទាហរណ៍ប្រើ is not

name = "Dara"

if name is not None:
    print("Name is available.")

លទ្ធផល៖

Name is available.

ចំណាំសំខាន់

ពេលពិនិត្យ None គួរប្រើ៖

value is None
value is not None

ជាជាង៖

value == None
value != None

៨. ការប្រើជាមួយ List

list1 = [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 list2True ព្រោះ list2 សំដៅទៅកាន់ List ដូចគ្នា
  • list1 is list3False ព្រោះ list3 ជា List ថ្មី
  • list1 == list3True ព្រោះតម្លៃដូចគ្នា

៩. ការប្រើជាមួយ String និង Number

ប្រភេទទិន្នន័យមួយចំនួនដូចជា 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 ដែលប្រាប់ថា កម្មវិធីនេះជាលំហាត់អំពីប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណ។


បង្កើត List

list1 = [10, 20, 30]

បង្កើត List មួយ ហើយរក្សាទុកក្នុងអញ្ញតិ list1

list2 = list1

អញ្ញតិ list2 សំដៅទៅកាន់វត្ថុដូចគ្នាជាមួយ list1

list3 = [10, 20, 30]

បង្កើត List ថ្មីមួយទៀត ដែលមានតម្លៃដូច list1 ប៉ុន្តែជាវត្ថុផ្សេងគ្នា។


បង្កើតអញ្ញតិផ្សេងៗ

name1 = None
name2 = "Python"
  • name1 មានតម្លៃ None
  • name2 មានតម្លៃ "Python"

បង្ហាញលទ្ធផល is

print("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 not

print("list1 is not list3:", list1 is not list3)
print("list1 is not list2:", list1 is not list2)

បន្ទាត់ទាំងនេះពិនិត្យថា វត្ថុទាំងនោះខុសគ្នាឬអត់។


ពិនិត្យ None

print("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 == bTrue
  • a is bFalse

១៣.៣ មិនប្រើ is None

ពេលពិនិត្យ None គួរប្រើ៖

if value is None:

មិនគួរប្រើជាទម្លាប់៖

if value == None:

១៤. លំហាត់អនុវត្តបន្ថែម

លំហាត់ទី១៖ ពិនិត្យ List

បង្កើត List ពីរ៖ មួយដោយប្រើ b = a និងមួយទៀតដោយបង្កើតថ្មី។ បន្ទាប់មកសាកល្បង is, is not និង ==

លំហាត់ទី២៖ ពិនិត្យ None

បង្កើតអញ្ញតិមួយមានតម្លៃ None ហើយប្រើ is None និង is not None ដើម្បីពិនិត្យវា។

លំហាត់ទី៣៖ ពិនិត្យទិន្នន័យចូល

ទទួលអត្ថបទពីអ្នកប្រើ។ ប្រសិនបើតម្លៃទទេទេ បង្ហាញថា មានទិន្នន័យ; បើទទេ អាចកំណត់ឱ្យវាជា None ហើយពិនិត្យ។

លំហាត់ទី៤៖ ប្រៀបធៀប Object

បង្កើត Dictionary ពីរ ដែលមានទិន្នន័យដូចគ្នា ហើយប្រៀបធៀបដោយ == និង is


១៥. សំណួរត្រួតពិនិត្យការយល់ដឹង

  1. តើប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណមានអ្វីខ្លះ?
  2. តើ is និង is not ប្រើសម្រាប់អ្វី?
  3. តើ == និង is ខុសគ្នាយ៉ាងដូចម្ដេច?
  4. តើហេតុអ្វី list1 == list3 អាចជា True ប៉ុន្តែ list1 is list3 ជា False?
  5. តើគួរប្រើអ្វីដើម្បីពិនិត្យ None?
  6. តើ a = b មានឥទ្ធិពលយ៉ាងដូចម្ដេចលើ a is b?
  7. តើ is not ផ្ដល់ True នៅពេលណា?
  8. តើប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណផ្ដល់លទ្ធផលប្រភេទអ្វី?
  9. តើអ្វីជាកំហុសដែលគេច្រើនធ្វើពេលប្រើ is?
  10. តើនៅពេលណាអ្នកគួរប្រើ == ជំនួស is?

១៦. សន្និដ្ឋាន

ប្រតិបត្តិករបញ្ជាក់អត្តសញ្ញាណក្នុង Python រួមមាន is និង is not ដែលប្រើសម្រាប់ពិនិត្យថា អញ្ញតិពីរកំពុងសំដៅទៅកាន់វត្ថុដូចគ្នាក្នុងអង្គចងចាំដែរឬទេ។ is ផ្ដល់លទ្ធផល True នៅពេលវត្ថុទាំងពីរជាវត្ថុតែមួយ ខណៈ is not ផ្ដល់ True នៅពេលវត្ថុទាំងពីរមិនមែនជាវត្ថុតែមួយ។ ប្រតិបត្តិករទាំងនេះខុសពី == ដែលប្រើសម្រាប់ប្រៀបធៀបតម្លៃ។ ជាពិសេស នៅពេលពិនិត្យ None គួរប្រើ is None និង is not None ដើម្បីឱ្យកូដបានត្រឹមត្រូវ និងស្តង់ដារ។

មតិយោបល់ 0
ចូលគណនី ដើម្បីបញ្ចេញមតិ

មិនទាន់មានមតិយោបល់ — ក្លាយជាអ្នកដំបូង!