You are on page 1of 336

ទំព័រ 1

ទំព័រ 2
ទំព័រ 3

លំនំដ ើម ...................................................................................................................13

កមមវិធី ........................................................................................................................................ 13

ផ្ផែកទន់ច ាំបាច់ ......................................................................................................................... 15

វត្ថនិ
ុ ងដ្មោះ ..........................................................................................................19

វត្ថុ ............................................................................................................................................... 19

ឈ្មោះរបស់វត្ថុ .......................................................................................................................... 20

ររដេទននវត្ថុ ..........................................................................................................25

ចាំនួនគត្់ ..................................................................................................................................... 25

ររមាណវិ ធីនព្វនត .....................................................................................................................................................26

អាទិភាព្ននររមាណសញ្ញា ......................................................................................................................................29

ចាំនួនពិត្ ..................................................................................................................................... 30

ររមាណវិ ធីនព្វនត .....................................................................................................................................................31

ត្កកវត្ថុ ........................................................................................................................................ 32

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................33

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................36

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................38


ទំព័រ 4

ឈោឃៈវត្ថុ .................................................................................................................................. 39

កម្មងអកសរ ................................................................................................................................ 39

ររមាណវិ ធីបូក្បនត...................................................................................................................................................43

ររមាណវិ ធីគុនបនត...................................................................................................................................................43

ររមាណវិ ធីបេខប ៀង ..............................................................................................................................................44

ររមាណវិ ធីកាត់ចម្លង ..............................................................................................................................................46

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................48

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................49

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................51

ររមាណវិ ធី ក្ធាតុ...................................................................................................................................................52

ក្ំណត់ព្នយេ់ .........................................................................................................................................................53

កម្មងឈេរ ................................................................................................................................... 54

ររមាណវិ ធីបូក្បនត...................................................................................................................................................56

ររមាណវិ ធីគុនបនត...................................................................................................................................................56

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................56

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................58

ររមាណវិ ធី ក្ធាតុ...................................................................................................................................................60

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................61

ររមាណវិ ធីបេខប ៀង ..............................................................................................................................................61


ទំព័រ 5

ររមាណវិ ធីកាត់ចម្លង ..............................................................................................................................................62

កម្មងអឈេរ ................................................................................................................................ 63

ររមាណវិ ធីបូក្បនត...................................................................................................................................................64

ររមាណវិ ធីគុនបនត...................................................................................................................................................64

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................64

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................66

ររមាណវិ ធី ក្ធាតុ...................................................................................................................................................68

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................68

ររមាណវិ ធីបេខប ៀង ..............................................................................................................................................70

ររមាណវិ ធីកាត់ចម្លង ..............................................................................................................................................71

វចនានុម្កម .............................................................................................................................. 73

ររមាណវិ ធីបេខប ៀង ..............................................................................................................................................73

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................75

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................76

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................77

ររមាណវិ ធី ក្ធាតុ...................................................................................................................................................78

សាំណុាំ ............................................................................................................................................ 78

ររមាណវិ ធីដក្ធាតុ .................................................................................................................................................79

ររមាណវិ ធីររជុំ.......................................................................................................................................................80
ទំព័រ 6

ររមាណវិ ធីររសព្វ...................................................................................................................................................82

ររមាណវិ ធីររជុំធាតុខុសគ្នា.....................................................................................................................................83

ររមាណវិ ធីតក្កវិទា .................................................................................................................................................84

ររមាណវិ ធីបររៀបបធៀប............................................................................................................................................85

ររមាណវិ ធី ក្ធាតុ...................................................................................................................................................87

ររមាណវិ ធីអតតសញ្ញាណ .........................................................................................................................................88

សោសវត្ថននសោសវត្ថ
ុ ុ ....................................................................................................... 89

ររដេទននបញ្ជ
ា ......................................................................................................92

បញ្ជ
ា ចត្់ត ាំង ........................................................................................................................... 92

សវ័យររមាណវិ ធី .....................................................................................................................................................95

កឈនោមម្បោណវិធី .............................................................................................................. 102

បញ្ជ
ា if ....................................................................................................................................... 103

បញ្ជ
ា if/else ............................................................................................................................... 104

បញ្ជ
ា if/elif/else ........................................................................................................................ 105

ក្បនោម្ររមាណវិ ធីមានជបរម្ើស............................................................................................................................107

បញ្ជ
ា while ................................................................................................................................ 108

បញ្ជ
ា for .................................................................................................................................... 110
ទំព័រ 7

បញ្ជ
ា break ................................................................................................................................ 111

បញ្ជ
ា continue........................................................................................................................... 112

បញ្ជ
ា pass .................................................................................................................................. 113

បញ្ជ
ា while/else ........................................................................................................................ 114

បញ្ជ
ា for/else ............................................................................................................................ 116

វដ្តកមមកងវដ្ត
ែុ កមម ................................................................................................................. 117

ក្បន
ួ ............................................................................................................................. 119

ការបឈងកើត្កបន
ួ ......................................................................................................................... 119

ការយកកបនមកឈម្បើ
ួ .............................................................................................................. 122

ដ្ាំណឹងនិងដ្ាំណាង ................................................................................................................. 127

បញ្ជ
ា return ............................................................................................................................... 129

ដ្ាំណឹងតមឈលខឈរៀង ............................................................................................................. 130

ដ្ាំណឹងតមដ្ាំណាង ................................................................................................................ 131

ដ្ាំណឹងោនម្ាប់.................................................................................................................... 132

ការបាំផ្បកដ្ាំណឹង .................................................................................................................... 135

ការម្បមូលផតាំដ្
ុ ាំណឹង................................................................................................................ 136
ទំព័រ 8

លាំដាប់ថ្នែក់ននដ្ាំណាងនិងដ្ាំណឹង ...................................................................................... 138

ផ្ដ្នកាំណត្់ .............................................................................................................................. 140

ដដនក្ំណត់សក្េ.................................................................................................................................................140

ដដនក្ំណត់បោយដែក្..........................................................................................................................................141

ដដនក្ំណត់ចា ក្
ឹ ក្ាុងនិងដដនក្ំណត់ចា ក្
ឹ បរៅ.......................................................................................................142

ដដនក្ំណត់ទូបៅ ...................................................................................................................................................143

កា ដសវង ក្វតថុ .......................................................................................................................................................145

កបនោនម្ាប់
ួ ........................................................................................................................ 153

ថ្នាក្់............................................................................................................................. 158

ការបឈងកើត្ថ្នែក់......................................................................................................................... 158

ការយកថ្នែក់មកឈម្បើ .............................................................................................................. 161

ការយកសមបត្តថ្ន
ិ ែ ក់មកឈម្បើ ................................................................................................. 163

ការបផ្នថមវត្ថុចូលឈៅកែងថ្ន
ុ ែ ក់............................................................................................ 165

ាថបនិក .................................................................................................................................... 166

វិធី ............................................................................................................................................. 167

ទិនែន័យគម្មូ ............................................................................................................................ 173

សិសស .......................................................................................................................................... 175


ទំព័រ 9

ការបនតថ្នែក់ .............................................................................................................................. 185

សមបត្តឈិ ្មោះដ្ូចគ្នែ ................................................................................................................ 195

ពហុបនតថ្នែក់ ............................................................................................................................ 202

ការបនតថ្នែក់រាងចត្ុឈកាណឈសមើ ............................................................................................ 210

ថ្នាក្់មានរាប់.................................................................................................... 217

ថ្នែក់ int ...................................................................................................................................... 219

ថ្នែក់ float ................................................................................................................................... 221

ថ្នែក់ bool ................................................................................................................................... 223

ថ្នែក់ str ...................................................................................................................................... 224

ថ្នែក់ tuple .................................................................................................................................. 229

ថ្នែក់ list ...................................................................................................................................... 231

ថ្នែក់ dict..................................................................................................................................... 236

ថ្នែក់ set ...................................................................................................................................... 240

ាស្ត្ាា ..................................................................................................................... 244

ការបឈងកើត្ាស្ត្ាត.................................................................................................................... 244

ការយកាស្ត្ាតមកឈម្បើ ......................................................................................................... 245


ទំព័រ 10

ការយកសមបត្តា
ិ ស្ត្ាតមកឈម្បើ ............................................................................................ 247

ក្ញ្ច ប់ ........................................................................................................................ 251

ការបឈងកើត្កញ្ច ប់ ..................................................................................................................... 251

ការយកាស្ត្ាតកែងកញ្ច
ុ ប់មកឈម្បើ ...................................................................................... 253

បណា
ា ល័យមជ្ឍ ឹម ................................................................................................................... 256

ការផ្សែងរកាស្ត្ាត ................................................................................................................. 256

ភាពមិនរររក្តី ................................................................................................... 258

ម្បឈភទននភាពមិនម្បម្កត្ី .................................................................................................... 258

បញ្ជ
ា try/except ........................................................................................................................ 260

បញ្ជ
ា try/except/else ................................................................................................................ 265

បញ្ជ
ា try/except/finally ............................................................................................................. 266

បញ្ជ
ា try/except/else/finally ..................................................................................................... 266

បញ្ជ
ា raise ................................................................................................................................. 267

បញ្ជ
ា assert ............................................................................................................................... 268

ការបឈងកើត្ថ្នែក់ននភាពមិនម្បម្កត្ី ...................................................................................... 268


ទំព័រ 11

បដចចក្ដទសជាន់ខ្ស
ព ់ ...................................................................................... 271

កបនអនាមិ
ួ ក ............................................................................................................................ 271

វឌ្ឍនករ ................................................................................................................................... 272

កបនផលិ
ួ ត្ករនិងផលិត្ករ ................................................................................................... 276

កម្មងអឈេររ ូបមនត ................................................................................................................. 283

កឈនោមផលិត្ករ .................................................................................................................... 286

វិធីពិឈសស ............................................................................................................................... 287

វិ ធីព្ិបសសសរមាប់ររមាណវិ ធីនព្វនត ......................................................................................................................292

វិ ធីព្ិបសសសរមាប់ររមាណវិ ធីបររៀបបធៀប ............................................................................................................296

វិ ធីព្ិបសសសរមាប់សមាសវតថុ ................................................................................................................................299

វិ ធីព្ិបសសសរមាប់សិសស .......................................................................................................................................301

សមបត្តព
ិ ិឈសស ......................................................................................................................... 304

សម្បតតិព្ិបសសប្មោះ __dict__ ............................................................................................................................305

សម្បតតិព្ិបសសប្មោះ __doc__ ............................................................................................................................307

សម្បតតិព្ិបសសប្មោះ __slots__ ...........................................................................................................................308

សមបត្តឯ
ិ កជ្ន ......................................................................................................................... 309

លកខណៈសមបត្ត.ិ ....................................................................................................................... 311


ទំព័រ 12

វិធីឯឈកា ................................................................................................................................... 313

វិធីម្បច ាំថ្នែក់ .......................................................................................................................... 315

រចនាករ ..................................................................................................................................... 316

ថ្នែក់ឈមអរ ូបី .............................................................................................................................. 318

សែយ
័ ឈសវា ............................................................................................................................... 319

ការចមលងសោសវត្ថុ .............................................................................................................. 321

កា ចម្លងបសើបេើ .....................................................................................................................................................321

កា ចម្លងទំងរសុង.................................................................................................................................................325

អាណាពាបាលនិងបញ្ជ
ា with.............................................................................................. 326

អាណាព្ាបាេ .....................................................................................................................................................326

បញ្ញា with .............................................................................................................................................................328

បញ្ញា with/as ........................................................................................................................................................331

ពាក្យបដចចក្ដទស ............................................................................................... 333

ឯក្ាររាវរជាវ ......................................................................................... 336


ទំព័រ 13

លំនំដ ើម

កមមវិធី

នៅក្នុងជីវភាពរស់នៅរបស់នយើងសពវថ្ងៃ នយើងតែងឮនេនិយាយពីក្មមវ ិធីនផេងៗមានដូចជា

ក្មមវ ិធីបុណ្យ ក្មមវ ិធីអភិ វឌឍន៍ ក្មមវ ិធីទូរទសេន៍ជានដើម។ នែើ ពាក្យថា ”ក្មមវ ិធី” ន ោះមានន័យ

ដូចនមតចតដ?

នបើនយើងនលើក្យក្ក្មមវ ិធីបុណ្យមក្ពិនិែយនមើលនយើងនឹងន ើញថា ក្មមវ ិធីបុណ្យេឺ ជាអែថបទ

នរៀបរាប់ពីនធវើពិធីនផេងៗតដលរែូវនធវើនឡើងតំងពីនពលចាប់នផតើមបុណ្យរហូែដល់នពលចប់បុណ្យ

ក្នុងនោលបំណ្ងរារពវពិធីបុណ្យទំងមូល។ ដូចននោះក្មមវ ិធីបុណ្យេឺ ជាការនរៀបចំការងារតដល

រែូវនធវើតមលំដាប់លំនដាយនដើមបីនធវើពិធីបុណ្យទំងមូល។

មួយវ ិញនទៀែ នបើសិនជានយើងនលើក្យក្ក្មមវ ិធីអភិវឌឍន៍មក្ពិនិែយនមើលវ ិញមតង នយើងនឹង

ន ើញថា ក្មមវ ិធី អភិវឌឍន៍េឺជាអែថបទនរៀបរាប់ពីការងារទំងឡាយណាតដលរែូវនធវើតម

លំដាប់លំនដាយនៅក្នុងរយៈនពលមានក្រមឹែណាមួយនដើមបីកាែ់បនថយភាពរក្ីរក្។

ចំតណ្ក្ឯក្មមវ ិធីទូរទសេន៍វ ិញ វាេឺ ជាអែថបទនរៀបរាប់ពីការបញ្


ច ង
ំ ទីនផេងៗសរមាប់

រយៈនពលនពញមួយថ្ងៃ។

សរុបមក្ ទំងក្មមវ ិធីបុណ្យ ទំងក្មមវ ិធីអភិវឌឍន៍ ទំងក្មមវ ិធីទូរទសេន៍ េឺសុទតធ ែតសតងនចញពី

ការងារតដលរែូវនធវើតមលំដាប់លំនដាយក្នុងរយៈនពលមានក្រមឹែណាមួយនដើមបីនដាោះស្រាយ

បញ្
ា មួយចំនួន។
ទំព័រ 14

ចំនពាោះក្មមវ ិធីក្ំពយូទ័រវ ិញក្៍ មានលក្ខណ្ៈស្រសនដៀងនឹងក្មមវ ិធីទំងអស់ខាងនលើននោះតដរ នពាលេឺ

វាក្៍ជាអែថបទនរៀបរាប់ពីការងារមួយចំនួនតដលែរមូវឲ្យក្ំ ពយូទ័ រយក្នៅនធវើក្ុងនោលបំ


ន ណ្ង

នដាោះស្រាយបញ្
ា មួយចំនួនតដរ។ តែនដាយនហែុថា ក្ំពយូទ័ រអាចនធវើការងារជានរចើនមានចំនួន

រាប់មុឺនតសនតែក្នុងរយៈនពលតែមួយប៉របិចតភនក្តែប៉ុនណាណោះ ដូចននោះការងារទំងអស់នៅក្នុង

ក្មមវ ិធីក្ំពយូទ័រ មិនទមទរឲ្យមានរយៈនពលក្ំណ្ែ់ នឡើយ។ បចចុបបននននោះ ក្ំពយូទ័ រទំននើបៗអាច

នធវើការងារចំនួនរាប់ លានតែក្នុងមួ យវ ិ ទីតែប៉ុនណាណោះ។

និយាយឲ្យខ្លី នៅនពលណាតដលនយើងសរនសរនរៀបរាប់ពីការងារមួយចំនួនែរមូវឲ្យក្ំ ពយូទ័ រនធវើ

តមលំដាប់លំនដាយក្នុងនោលបំណ្ងនដាោះស្រាយបញ្
ា ណាមួយ េឺនៅនពលន ោះនហើយ

តដលនយើងសរនសរក្មមវ ិធីក្ំពយូទ័រ។ ជាក្់តសតង នដើមបីនរៀបចំក្មមវ ិធីែរមូវឲ្យក្ំ ពយូទ័ រនដាោះស្រាយ

បញ្
ា រក្រាក្់ចំនណ្ញ នយើងអាចនធវើដូចខាងនរកាមននោះ៖

គណនាឥកថ្លលវិញ

គណនាឥកថ្លលឦក់

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

ការនធវើដូចខាងនលើននោះនៅថាការសរនសរ ដំនណាោះស្រាយ (algorithm) ឬការនរៀបចំតផនការ

តដលជាក្មមវ ិធីជាភាាតខ្មរនយើងធមមត។ ក្៍ ប៉ុតនត ក្ំ ពយូទ័ រមិនអាចយល់ក្មមវ ិធី ជាភាាតខ្មរដូច

ខាងនលើននោះាននឡើយ េឺនយើងរែូវសរនសរក្មមវ ិធីខាងនលើននោះជាភាាណាមួយតដលក្ំ ពយូទ័ រ

អាចយល់ាន និងអាចយក្នៅ អនុវែត (execute) នដើមបីនដាោះស្រាយបញ្


ា រក្រាក្់ចំនណ្ញ

ននោះ។

ក្នលងមក្ នយើងទំងអស់ោនសុទតធ ែានាគល់រច


ួ មក្នហើយនូវអវីតដលនៅថាដំនណាោះស្រាយ

ន ោះ។ ពីនរពាោះនយើងទំងអស់ោនសុទធតែធ្លលប់ាននធវើការស្រាយបំភឺលឬនធវើការនដាោះស្រាយ

លំហាែ់ ធរណ្ីមារែឬេណ្ិែវ ិទានផេងរួចមក្នហើយតដរ។ ម៉ាងនទៀែការសរនសរ


ទំព័រ 15

ដំនណាោះស្រាយសរមាប់ក្មមវ ិធីក្ំពយូទ័រ េឺ ោមនអវីខ្ុសតបលក្ពីការសរនសរដំនណាោះស្រាយនៅក្នុង

លំហាែ់ េណ្ិែវ ិទានឡើយ។ នពាលេឺនយើងរែូវនសនសរចនមលើយនផេងនដាយនរៀបចំនៅតម

លំដាប់លំនដាយថ្នការនដាោះស្រាយបញ្
ា ។

ផ្ផែកទន់ ច ាំបាច់

នៅក្នុងចំនណាមភាានរបើ សរមាប់សរនសរក្មមវ ិធីក្ំពយូទ័ រ Python េឺ ជាភាាមួយតដលស្រសួល

នរៀនជាងនេ នរពាោះវាមានលក្ខណ្ៈដ៍ាមញ្ដ បំផុែ។ នដើ មបីអាចសរនសរក្មមវ ិធីជាភាា Python

ាន នយើងចាំាច់រែូវតែទញយក្តផនក្ទន់ Python 3 ឬងមីជាងននោះពី នេហទំព័រ

www.python.org ។ នៅក្នុងរបព័នរធ បែិបែតិការ Windows នយើងអាចនរបើរាស់ IDLE ជា

នរាងជាង (IDE) តដលជាក្តនលងសរមាប់សរនសរនរៀបចំក្មមវ ិធីជាភាា Python ។ នដើមបី

ដំនណ្ើរការនរាងជាង IDLE នយើងរែូវចុច Start > All Programs > Python 3 > IDLE ។
ទំព័រ 16

នដើមបីបនងកើែឯក្ារតដលជាក្មមវ ិធីជាភាា Python នយើងរែូវចុច File > New Window ។

នយើងនឹងន ើញមានបងអួចមួយនទៀែដូចនៅក្នុងរូបខាងនរកាមននោះ៖

េឺនៅនលើបងអួចចុងនរកាយននោះនហើយតដលនយើងនឹងសរនសរក្មមវ ិធីជាភាា Python 3

ទំងឡាយ។ ក្៍ប៉ុតនតេួរឲ្យាតយតដរ បងអួច IDLE មិនអនុញ្ដែឲ្យនយើងសរនសរអក្េរតខ្មរនៅ

នលើន ោះនដាយផ្ទទល់ាននឡើយ នយើងចាំាច់រែូវតែសរនសរអក្េរតខ្មរនៅក្នុងក្មមវ ិធីណាមួយ

រូចសឹមចមលងយក្មក្ដាក្់ នៅនលើបងអួច IDLE ននោះ។ នដើមបីសរនសរអក្េរតខ្មរ នយើងអាច

នរបើរាស់ក្មមវ ិធីមួយចំនួនមានដូចជា Notepad ជានដើម។


ទំព័រ 17

ច ប់នផតើម ចូលនយើងសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖


ជាក្ិចចា

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញគ៖
ឺ ", រាក់ចណំ ណញ)

ប ទ ប់មក្នទៀែ នយើងរែូវរក្ាក្មមវ ិធីខាងនលើននោះទុក្នដាយដាក្់ ន្មោះថាអវីមួយ មានដូចជា

test.py ជានដើម។ នហើយនដើមបី ដំនណ្ើរការ (run) ក្មមវ ិធីននោះ នយើងរែូវចុច F5 ។ នយើងនឹងន ើញ

លទធផលដូចនៅក្នុងរូបខាងនរកាមននោះ៖
ទំព័រ 18

នៅនពលតដលក្មមវ ិធីខាងនលើននោះដំនណ្ើរការ តផនក្ទន់បក្តរប (interpreter) នឹងបក្តរបអវីៗ

ទំងអស់តដលមាននៅក្នុងក្មមវ ិធីន ោះ ពីភាា Python នៅជាភាាមា៉ សុីន នដើមបីពនយល់

រាប់ក្ំពយូទ័រឲ្យនធវើការងារនផេងៗដូចមានតចងនៅក្នុងក្មមវ ិធីន ោះ។ នហើយការបក្តរបេឺ រែូវនធវើ

នឡើងពីនលើចុោះនរកាមនិងពី នឆវងនៅាតំមួយប ទ ែ់មតងៗ។

មួយវ ិញនទៀែ នដាយនហែុថាការងារទំងឡាយនៅក្នុងក្មមវ ិធីក្ំពយូទ័ រ េឺ ជាការងារតដលែរមូវ

ឲ្យក្ំពយូទ័រយក្នៅនធវើ ដូចននោះការងារទំងន ោះមានលក្ខណ្ៈជា បញ្


ា (statement) ែរមូវឲ្យ

ក្ំពយូទ័រយក្នៅអនុវែតនដើមបីនដាោះស្រាយបញ្
ា នផេងៗ។

សរុបមក្ ការសរនសរក្មមវ ិធីក្ំពយូទ័រ េឺ ជាការសរនសរនរៀបចំបញ្


ា មួយចំនួនតមលំដាប់

លំនដាយែរមូវឲ្យក្ំ ពយូទ័រយក្នៅអនុវែតក្ុងនោលបំ
ន ណ្ងនដាោះស្រាយបញ្
ា មួយចំនួន។
ទំព័រ 19

វត្ថុនិងដ្មោះ

វត្ថុ

ា នដាោះស្រាយរក្រាក្់ចំនណ្ញមក្វ ិភាេនមើលមតងនទៀែ នយើងនឹងន


នបើនយើងនលើក្យក្បញ្ ើញ

ថា នដើមបីរក្រាក្់ ចំនណ្ញ នយើងរែូវមានព័ែ៌មានពីរេឺ ថ្ងលលក្់ និង ថ្ងលទិញ ពីនរពាោះរាក្់

ចំនណ្ញ េឺ ជាផលដក្រវាង ថ្ងលលក្់ និង ថ្ងលទិញ ។ នៅក្នុងវ ិស័យព័ែ៌មានវ ិទា ព័ែ៌មានចាំាច់

សរមាប់យក្មក្នដាោះស្រាយបញ្
ា ទំងន ោះនៅថា ទិននន័យ (data) ដូចននោះការនដាោះស្រាយ

បញ្
ា រក្រាក្់ចំនណ្ញ េឺជាការយក្ទិននន័យតដលជា ថ្ងលលក្់ និងទិននន័យតដលជា ថ្ងលទិញ មក្

នធវើរបមាណ្វ ិធីដក្។

នៅក្នុងការសរនសរក្មមវ ិធីជាភាា Python នដើមបីឲ្យមានទិននន័យចាំាច់ទំងន ោះ នយើង

ចាំាច់រែូវតែសរនសរនចញបញ្
ា ែរមូវឲ្យក្ំ ពយូទ័ របនងកើែទិននន័យទំងន ោះទុក្នៅក្នុង សែិ

(memory) របស់វាផ្ទទល់តែមតង។ នហើយការសរនសរក្មមវ ិធីបនងកើែទិននន័យនផេងៗនៅក្នុងភាា

Python េឺរែូវនធវើនឡើងដូចខាងនរកាមននោះ៖

1000

ខាងនលើននោះេឺជាក្មមវ ិធីជាភាា Python ជាអបបបរ ិមា (minimal) តដលនៅក្នុងន ោះមានបញ្


ែរមូវឲ្យបនងកើែទិននន័យនលខ្1000 មួយទុក្នៅក្នុងសែិរបស់ក្ំពយូទ័ រ។

នដាយនហែុថានៅក្នុងភាា Python តផនក្ថ្នសែិរបស់ក្ំពយូទ័ រតដលមានព័ែ៌មាននៅក្នុងន ោះ

រែូវនៅថា វែថុ (object) ដូចននោះការសរនសរ 1000 េឺ ជាការបនងកើែវែថុនលខ្ 1000 មួយ។ មួយ

វ ិញនទៀែ នយើងអាចនរបៀបរបដូចវែថុនៅនឹងរបអប់មួយតដលមានទិននន័យនៅក្នុងន ោះ។

1000
ទំព័រ 20

ឈ្មោះរបស់ វត្ថុ

វែថុតដលរែូវានបនងកើែដូចនៅក្នុងក្មមវ ិធីខាងនលើននោះ រែូវានលុបនចញវ ិញជាប ទ ន់ពីក្ុង


សែិរបស់ក្ំពយូទ័ រ េឺនយើងមិនអាចយក្វានៅនរបើការនធវើការអវីនផេងនទៀែាននឡើយ។ នដើមបីក្ុំឲ្យ

វែថុតដលរែូវានបនងកើែរួចនហើយរែូវលុបនចញវ ិញ នយើងរែូវដាក្់ ន្មោះឲ្យវែថុន ោះនដាយរែូវ

សរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ល ក់ = 1000 េឺជាបញ្
ថ្លឦ ា ែរមូវឲ្យបនងកើែវែថុនលខ្ 1000 តដលមានន្មោះថា ថ្ងលលក្់ ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា សញ្ដនសមើ (=) នៅក្នុងភាា Python េឺជាសញ្ដនរបើសរមាប់

ភាាប់ (bind) ន្មោះ (identifier) នៅនឹងវែថុ េឺមិនតមនជាសញ្ដនរបើសរមាប់បញ្


ា ក្់លទធផល

ានមក្ពីការនធវើរបមាណ្វ ិធី នឡើយ។

ការភាាប់ន្មោះ ថ្ងលលក្់ នៅនឹងវែថុនលខ្ 1000 អាចតងនដាយេំនូសបំរពួញដូចខាងនរកាមននោះ

ថ្ងលលក្់ 1000

ន្មោះរបស់វែថុអាចជាពាក្យជាភាាណាមួយក្៍ ានតដរ ឲ្យតែន្មោះទំងន ោះរែូវចាប់នផតើម

នដាយែួ អក្េរមិនតមនជានលខ្។ តែនយើងអាចនរបើសញ្ដ _ ជាែួ អក្េរទីមួយាន។ ម៉ាងនទៀែ

ន្មោះរបស់វែថុមិនរែូវមានអក្េរដក្ឃ្លល (space) នៅក្នុងន ោះាននឡើយ នហើយន្មោះ

ទំងន ោះរែូវតែខ្ុសពី ពាក្យពិនសស (keyword) មួយចំនួននៅក្នុងភាា Python ។ ពាក្យ

ពិនសសទំងន ោះមានដូចខាងនរកាមននោះ៖
ទំព័រ 21

False class finally is return


None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise

ចំនពាោះន្មោះរបស់វែថុតដលជាអក្េរឡាតំង ន្មោះជាអក្េរធំ ខ្ុសពី ន្មោះជាអក្េរែូច ដូចជា

NUMBER, Number, number េឺជាន្មោះខ្ុសៗោន។ ន្មោះរបស់វែថុេួរតែជាពាក្យមានន័យអវី

ម៉ាងតដលតសតងនចញពី ែួ ទីរបស់វែថុន ោះ។

តមការសនងកែជាក្់តសតង ការភាាប់ន្មោះណាមួយនៅនឹងវែថុណាមួយ េឺជាការដាក្់ន្មោះឲ្យ

វែថុន ោះ តដលជាទនងវើមួយដូចជាការតងអញ្ដ ែនៅក្នុងេណ្ិែវ ិទាតដរ។ ម៉ាងនទៀែ នរកាយពី

វែថុមានន្មោះមួយរួចនហើយ រេប់ការយក្ន្មោះរបស់វែថុន ោះនៅនរបើនៅនពលនរកាយៗនទៀែ

េឺជាការយក្វែថុន ោះផ្ទទល់នៅនរបើតែមតង។

នៅក្នុងក្មមវ ិធីខាងនលើ នរកាយពីន្មោះ ថ្ងលលក្់ រែូវានភាាប់នៅនឹងវែថុនលខ្ 1000 រួចមក្ វែថុ

ចុងនរកាយននោះអាចសថិែនៅក្នុងសែិរបស់ក្ំពយូទ័ ររហូែដល់ចប់ ក្មមវ ិធី។ ក្៍ប៉ុតនតនទោះជាយា៉ ង

ណាក្៍នដាយ ក្៍នយើងនៅតែមិនអាចនមើលន ើញវែថុនលខ្ 1000 ន ោះតដរ េឺ វាមាននៅតែក្នុង

សែិរបស់ក្ំពយូទ័ រតែប៉ុនណាណោះ។ នហើយនបើ នយើងចង់នមើលន ើញវែថុន ោះ នយើងរែូវសរនសរក្មមវ ិធី

ដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

print(ថ្លលឦក់)

ល ក)់ េឺ ជាបញ្
print(ថ្លឦ ា ែរមូវឲ្យសរនសរវែថុតដលមានន្មោះថា ថ្ងលលក្់ នៅនលើ បងអួចបឋម

(prompt window ) ។ បងអួចបឋមេឺជាបងអួចម៉ាងតដលមានែួ ទីជាអនក្បងាាញព័ែ៌មាននផេង


ទំព័រ 22

ៗតដលជាលទធផលានមក្ពី ការនរបើបញ្
ា print ននោះ។ នហើយនយើងនឹងានាគល់ចាស់ពី

បញ្
ា print ននោះនៅនពលណាតដលនយើងនធវើការសិក្ាពីវែថុតដលជាក្បួននៅក្នុងភាា Python

។ នៅនពលននោះនយើងរោន់តែដឹងថា ការសរនសរពាក្យថា print េឺ ជាបញ្


ា ែរមូវឲ្យបងាាញវែថុ

នផេងៗនៅនលើបងអួចបឋម។

នយើងន ើញថាការដាក្់ន្មោះឲ្យវែថុ េឺ ជារបការតដលនធវើឲ្យវែថុអាចសថិែនៅក្នុងសែិរបស់

ក្ំពយូទ័ររហូែដល់ចប់ក្មមវ ិធី នហើយវាជារបការតដលនធវើឲ្យនយើងអាចយក្វែថុន ោះនៅនរបើការនធវើ

អវីនផេងៗនទៀែានតដរ។ នលើសពី ននោះនទៀែ នរៅពីការដាក្់ន្មោះតែមួយឲ្យនៅវែថុណាមួយ

នយើងក្៍អាចដាក្់ន្មោះជានរចើនឲ្យនៅវែថុន ោះនដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

រាក់សឥុស = ថ្លលឦក់

print(ថ្លលឦក់)

print(រាក់សឥុស)

រាក់សឥុស = ថ្លឦ
ល ក់ េឺ ជាបញ្
ា ែរមូវឲ្យភាាប់ន្មោះ រាក្់សរុប មួយនទៀែនៅនឹងវែថុតដល

មានន្មោះថា ថ្ងលលក្់ មួយរួចនៅនហើយ។ ជាលទធផល វែថនលខ្


ុ 1000 មានន្មោះរហូែដល់

នៅពីរ េឺ ន្មោះមួយជា ថ្ងលលក្់ និងន្មោះមួយនទៀែជា រាក្់សរុប ។

ការភាាប់ន្មោះ រាក្់សរុប នៅនឹងវែថុតដលមានន្មោះថា ថ្ងលលក្់ អាចតងនដាយេំនូស

បំរពួញដូចខាងនរកាមននោះ៖

ថ្ងលលក្់ 1000

រាក្់សរុប
ទំព័រ 23

ន្មោះរបស់វែថុមានែួ ទីសំខាន់សរមាប់សំោល់ទីតំងរបស់វែថុនៅក្នុងសែិរបស់ក្ំពយូទ័ រ

នហើយនបើោមនន្មោះន ោះនទ នយើងនឹងោមនមនធាាយណាមួយតដលអនុញ្ដែឲ្យនយើងអាច

យក្វែថុនៅនរបើ រាស់នៅទី ក្តនលងនផេងៗនទៀែាននឡើយ។ ក្៍ប៉ុតនតផុយមក្វ


ទ ិញ នយើងអាចដក្

យក្ន្មោះរបស់វែថុណាមួយនៅភាាប់ជាមួយវែថុមួយនផេងនទៀែាននដាយសរនសរក្មមវ ិធីដូច

ខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលឦក់ = 2000

print(ថ្លលឦក់)

ល ក់ = 2000 េឺជាបញ្
ថ្លឦ ា ែរមូវឲ្យយក្ន្មោះ ថ្ងលលក្់ តដលជាន្មោះរបស់នលខ្ 1000 នៅ

ភាាប់នឹងវែថុនលខ្ 2000 វ ិញមតង។ ជាលទធផល វែថុនលខ្ 1000 រែូវាែ់ ន្មោះ និងរែូវលុបនចញ

ពីក្ុងសែិ
ន របស់ក្ំពយូទ័រនដាយសវ័យរបវែតិ។ ការលុបវែថុរនបៀបននោះនៅថា យនតការនាសសមាអែ

(garbage collection) តដលតែងតែនក្ើែមាននឡើងនៅនពលតដលវែថុរែូវាែ់ ន្មោះ។

ម៉ាងនទៀែន្មោះ ថ្ងលលក្់ ានកាលយនៅជាន្មោះរបស់វែថុនលខ្ 2000 វ ិញមតង ដូចននោះរេប់ការ

យក្វែថុន្មោះ ថ្ងលលក្់ នៅនរបើ េឺជាការយក្នលខ្ 2000 នៅនរបើ មិនតមនជាការយក្នលខ្

1000 នៅនរបើនឡើយ ពីនរពាោះ ថ្ងលលក្់ តលងជាន្មោះរបស់វែថុនលខ្ 1000 នទៀែនហើយ។

ការយក្ន្មោះ ថ្ងលលក្់ របស់វែថុនលខ្ 1000 នៅភាាប់នឹងវែថុនលខ្ 2000 អាចតងនដាយេំនូស

បំរពូញដូចខាងនរកាមននោះ៖

ថ្ងលលក្់ 1000

2000
ទំព័រ 24

សរុបមក្ ការយក្ន្មោះរបស់វែថុមួយនៅភាាប់ នឹងវែថុមួយនផេងនទៀែ នបើនិយាយឲ្យស្រសួលាតប់

ត នៅក្នុងក្មមវ ិធីខាងនលើននោះ មុនដំបូងវែថុន្មោះ ថ្ងលលក្់ េឺជា


នៅ េឺជាការយក្វែថុមក្ផ្ទលស់បូរ។

នលខ្ 1000 នហើយនរកាយពីការយក្ន្មោះ ថ្ងលលក្់ នៅភាាប់នឹងវែថុនលខ្ 2000 វ ិញមតងមក្ វែថុ

ន្មោះថ្ងលលក្់ េឺជានលខ្ 2000 វ ិញមតង។ ដូចននោះការយក្ន្មោះ ថ្ងលលក្់ នៅភាាប់ នឹងវែថុងមី េឺ

ត ុន្មោះ ថ្ងលលក្់ ពីនលខ្ 1000 ឲ្យកាលយនៅជានលខ្ 2000 វ ិញមតង។ ការនធវើ


ជាការផ្ទលស់បូរវែថ

ដូនចនោះអាចនិយាយានម៉ាងនទៀែថា េឺ ជាការយក្វែថុន្មោះ ថ្ងលលក្់ មក្នដាោះដូរែថ្មលរបស់វា។

មួយវ ិញនទៀែ នយើងរែូវនធវើការក្ែ់សំោល់ផងតដរថា វែថុមួយរែូវលុបនចញពីក្ុងសែិ


ន របស់

ក្ំពយូទ័រ តែក្នុងក្រណ្ីតដលវែថុន ោះរែូវាែ់ន្មោះអស់តែប៉ុនណាណោះ តែនបើវែថុន ោះមានន្មោះ

នលើសពី មួយ ការយក្ន្មោះណាមួយនៅភាាប់ នឹងវែថុនផេងនទៀែនឹងមិនបណា


ត លឲ្យវែថុន ោះរែូវ

លុបនចញពីក្ុងសែិ
ន របស់ក្ំពយូទ័រនឡើយ នរពាោះនៅមានន្មោះជានរចើននទៀែនៅជាប់នឹងវែថុន ោះ

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

រាក់សឥុស = ថ្លលឦក់

ថ្លលឦក់ = 2000

print(ថ្លលឦក់)

print(រាក់សឥុស)

ល ក់ = 2000 េឺជាបញ្
ថ្លឦ ា ែរមូវឲ្យយក្ន្មោះ ថ្ងលលក្់ តដលជាន្មោះរបស់វែថុនលខ្ 1000 នៅ

ភាាប់នឹងវែថុនលខ្ 2000 វ ិញមតង។ របការននោះមិនាននធវើឲ្យវែថុនលខ្ 1000 រែូវលុបនចញពី ក្ុង


សែិរបស់ក្ំពយូទ័ រនឡើយ ពីនរពាោះនៅមានន្មោះ រាក្់សរុប មួយនទៀែនៅជាប់នឹងវែថុន ោះ។

ថ្ងលលក្់ 1000

រាក្់សរុប 2000
ទំព័រ 25

ររដេទននវត្ថុ

នៅក្នុងភាា Python នរៅពីវែថុតដលនយើងានន ើញក្នលងមក្ នៅមានវែថុជានរចើន របនភទ

(type) នទៀែតដលនយើងអាចបនងកើែនឡើងនដើមបីនឆលើយែបនៅនឹងែរមូវការថ្នការនដាោះស្រាយ

បញ្
ា នផេងៗ។ វែថុទំងន ោះមាន៖

ចាំនួន គត្់

ចំនួនេែ់ (integer) េឺ ជានលខ្ទំងឡាយណាតដលជានលខ្ោមននក្បៀស។ ដូចននោះការបនងកើែវែថុ

នៅក្នុងក្មមវ ិធីក្នលងមក្ េឺជាការបនងកើែវែថុតដលមានរបនភទជាចំនូនេែ់ ពីនរពាោះវែថុទំងន ោះេឺ

ជានលខ្ោមននក្បៀស។ នយើងេួររ ំលឹក្នឡើងវ ិញថា នដើមបីបនងកើែចំនួនេែ់ នយើងរែូវសរនសរ

ក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

print(ថ្លលឦក់)

print(ថ្លលវិញ)

ល ក់ = 1000 េឺជាបញ្
ថ្លឦ ា ែរមូវឲ្យបនងកើែចំនួនេែ់មួយមានន្មោះថា ថ្ងលលក្់ តដលជានលខ្

1000 ។

ថ្លវ
ល ិញ = 900 េឺជាបញ្
ា ែរមូវឲ្យបនងកើែចំនួនេែ់មួយនទៀែមានន្មោះថា ថ្ងលទិញ តដលជា

នលខ្ 900 ។
ទំព័រ 26

ចាប់ពីភាា Python 3 នឡើងនៅ ចំនួនេែ់េឺជានលខ្ោមនរពំតដន នពាលេឺ វាអាចជានលខ្មាន

ប៉ុ ម នខ្ទង់ក្៍ានតដរ។

នរកាយពីចំនួនេែ់នផេងៗរែូវានបនងកើែនឡើងនៅក្នុងសែិរបស់ក្ំពយូទ័ ររួចមក្ នយើងអាចយក្

វែថុទំងន ោះមក្នធវើរបមាណ្វ ិធី នផេងៗក្នុងនោលបំណ្ងបនងកើែវែថុងមីៗនទៀែតដលនឆលើយែបនៅ

នឹងែរមូវការរបស់នយើងនៅក្នុងការនដាោះស្រាយបញ្
ា ។ ចំនួនេែ់អាចរែូវយក្មក្នធវើរបមាណ្

វ ិធី មួយចំនួនដូចែនៅននោះ៖

ររមាណវិ ធីនព្វនត

របមាណ្វ ិធីនពវនត (arithmetic operation) េឺជា របមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះ

មានការនរបើរាស់ របមាណ្សញ្ដ (operator) +, -, *, /, //, %, ** ។

នយើងអាចយក្ចំនួនេែ់នផេងៗមក្នធវើរបមាណ្វ ិធី នពវនដ


ត ូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

print(ថ្លលឦក់ + ថ្លលវិញ)

print(ថ្លលឦក់ - ថ្លលវិញ)

print(ថ្លលឦក់ * ថ្លលវិញ)

print(ថ្លលឦក់ / ថ្លលវិញ)

print(ថ្លលឦក់ // ថ្លលវិញ)

print(ថ្លលឦក់ % ថ្លលវិញ)

print(ថ្លលឦក់ ** ថ្លលវិញ)
ទំព័រ 27

ល ក់ + ថ្លវ
ថ្លឦ ល ិ ញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី បូក្ (addition) រវាងចំនួនេែ់ន្មោះ

ល ក់ + ថ្លវ
ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ ។ ការសរនសរ ថ្លឦ ល ិ ញ នៅថា ក្ននាម

របមាណ្វ ិធី (expression) តដលនៅក្នុងន ោះមានវែថុន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ ជា

របមាណ្អងគ (operand) និងសញ្ដបូក្ (+) េឺ ជារបមាណ្សញ្ដ។

នៅក្នុងភាា Python ការនធវើរបមាណ្វ ិធី នផេងៗមិនទមទរឲ្យមានសញ្ដនសមើ (=) នដើមបី

ា ក្់ ពីលទធផលានមក្ពីការនធវើរបមាណ្វ ិធីន


បញ្ ោះនទ េឺនយើងរោន់តែសរនសរក្ននាម

របមាណ្វ ិធី នយើងនឹងានលទធផលជាវែថុណាមួយនដាយសវ័យរបវែតិ។ នយើងេួររ ំលឹក្នឡើងវ ិញ

ថាសញ្ដនសមើនៅក្នុងភាា Python រែូវនរបើ សរមាប់តែភាាប់ន្មោះនៅនឹងវែថុតែប៉ុនណាណោះ។

មួយវ ិញនទៀែ តដលនៅថាក្ននាមរបមាណ្វ ិធី េឺ រេប់ការសរនសរទំងឡាយណាតដល ំឲ្យ

ានលទធផលជាវែថុអវីមួយ។ ជាក្់តសតង ការសរនសរ ថ្ងលលក្់ + ថ្ងលទិញ ំឲ្យានលទធផលជា

ចំនូនេែ់មួយនផេងនទៀែ ដូចននោះការសរនសររនបៀបននោះនៅថាក្ននាមរបមាណ្វ ិធីនរពាោះវា ំ

ឲ្យានលទធផលជាវែថុមួយងមីនទៀែ។

ល ក់ - ថ្លវ
ថ្លឦ ល ិ ញ េឺជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី ដក្ (subtraction) រវាងចំនួនេែ់ន្មោះ

ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ំឲ្យានលទធផលជាចំនួនេែ់មួយនទៀែរែូវាន

សរនសរនៅនលើបងអួចបឋម។

ល ក់ * ថ្លវ
ថ្លឦ ល ិញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី េុន (multiplication) រវាងចំនួនេែ់ន្មោះ

ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ំឲ្យានលទធផលជាចំនួនេែ់មួយនទៀែរែូវាន

សរនសរនៅនលើបងអួចបឋម។
ទំព័រ 28

ល ក់ / ថ្លវ
ថ្លឦ ល ិញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធីតចក្ (division) រវាងចំនួនេែ់ន្មោះ

ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ំឲ្យានលទធផលជានលខ្មាននក្បៀស។

នៅក្នុងភាា Python រេប់ការនធវើរបមាណ្វ ិធីតចក្ទំងឡាយផតល់លទធផលជានលខ្មាន

នក្បៀស។ នយើងនឹងនធវើការសិក្ាលមអឹែពីនលខ្មាននក្បៀសនៅនពលបនតិចនទៀែននោះ។

ល ក់ // ថ្លវ
ថ្លឦ ល ិ ញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី តចក្បនថយ (floor division) រវាងចំនួនេែ់

ន្មោះ ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ំឲ្យានលទធផលជាចំនួនេែ់មួយនទៀែរែូវ

ានសរនសរនៅនលើបងអួចបឋម។

តដលនៅថារបមាណ្វ ិធី តចក្បនថយ េឺជារបមាណ្វ ិធី ទងឡាយណាតដលផតល់លទធផលជា

នលខ្េែ់នៅខាងមុខ្នក្បៀស នលខ្នៅខាងនរកាយនក្បៀសរែូវលុបនចាលនបើ សិនជាមាន។

ល ក់ % ថ្លវ
ថ្លឦ ល ិ ញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី តចក្យក្សំណ្ល់ (modulus) រវាង

ចំនួនេែ់ន្មោះ ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ឲ្


ំ យានលទធផលជាចំនួនេែ់មួយ

នទៀែរែូវានសរនសរនៅនលើបងអួចបឋម។

តដលនៅថារបមាណ្វ ិធី តចក្យក្សំណ្ល់ េឺ ជារបមាណ្វ ិធីតចក្តដលផតល់លទធផលជា

សំណ្ល់។

ល ក់ ** ថ្លវ
ថ្លឦ ល ិញ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើ របមាណ្វ ិធី ស័យ
វ េុន (exponentiation) រវាងចំនួនេែ់

ន្មោះ ថ្ងលលក្់ និងចំនួនេែ់ន្មោះ ថ្ងលទិញ តដល ំឲ្យានលទធផលជាចំនួនេែ់មួយនទៀែរែូវ

ល ក់ ** ថ្លវ
ានសរនសរនៅនលើបងអួចបឋម។ ក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិ ញ មានន័យថា ថ្ងលលក្់

សវ័យេុន ថ្ងលទិញ ។
ទំព័រ 29

អាទិភាព្ននររមាណសញ្ញា

នរៅពីការយក្ចំនួនេែ់ពីរមក្នធវើរបមាណ្វ ិធី នយើងអាចយក្ចំនួនេែ់មានចំនួនប៉ុ ម នក្៍ ាន

តដរមក្នធវើរបមាណ្វ ិធីចំរោះ
ុ ោននដើមបីឲ្យានលទធផលជាវែថុតដលនយើងរែូវការ។ ក្នុងក្រណ្ីននោះ

នយើងានក្ននាមរបមាណ្វ ិធី មួយតដលមានរបមាណ្សញ្ដជានរចើននៅក្នុងន ោះ។ នហើយនបើ

សិនជារបមាណ្សញ្ដទំងន ោះជារបមាណ្សញ្ដខ្ុសៗោន របមាណ្វ ិធីនឹងរែូវនធវើនឡើង

នដាយអនុនលាមនៅតម អាទិភាពថ្នរបមាណ្សញ្ដ (operator precedence) ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

ណោហុ ឤ = 300

print(ថ្លលឦក់ + ថ្លលវិញ * ណោហុ ឤ)

ល ក់ + ថ្លវ
ថ្លឦ ល ិញ * ណោហុ ឤ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រវាងចំនួនេែ់ន្មោះ ថ្ងលលក្់

ចំនួនេែ់ន្មោះ ថ្ងលទិញ និងចំនួនេែ់ន្មោះ នាហ៊ុយ ។ នៅក្នុងក្រណ្ីននោះ នយើងាន

ក្ននាមរបមាណ្វ ិធី មួយតដលនៅក្នុងន ោះមានរបមាណ្អងគចំនួនបី និងរបមាណ្សញ្ដចំនួន

ពីរខ្ុសៗោន េឺ របមាណ្សញ្ដបូក្ (+) និងរបមាណ្សញ្ដេុន (*) ។ អាស្រស័យនៅតមចាប់នៅ

ក្នុងភាា Python របមាណ្វ ិធី រែូវនធវើនឡើងនដាយនោរពនៅតមអាទិភាពថ្នរបមាណ្សញ្ដ។

នពាលេឺ របមាណ្វ ិធី េុនរែូវនធវើនឡើងមុនរបមាណ្វ ិធី បូក្។ ដូចននោះរបមាណ្វ ិធី េុនរវាង

ចំនួនេែ់ន្មោះ ថ្ងលទិញ និងចំនួនេែ់ន្មោះ នាហ៊ុយ រែូវនធវើនឡើងមុន រួចានយក្លទធផល

មក្នធវើរបមាណ្វ ិធី បូក្ជាមួយនឹងចំនួនេែ់ន្មោះ ថ្ងលលក្់ ។

អាទិភាពថ្នរបមាណ្សញ្ដនៅក្នុងក្ននាមរបមាណ្វ ិធី មិនតមនជានរឿងតដលនយើងមិនតដល

ជួបរបទោះន ោះនទ នយើងានដឹងតំងតែនៅវ ិទាល័យមក្នមលោះថា នៅក្នុងក្ននាមពីជេណ្ិែ


ទំព័រ 30

របមាណ្សញ្ដេុនមានអាទិភាពជាងរបមាណ្សញ្ដបូក្។ ម៉ាងនទៀែនៅក្នុងក្ននាម

ពីជេណ្ិែ នបើសិនណាជានយើងចង់ផតល់អាទិភាពឲ្យនៅរបមាណ្សញ្ដណាមួយ នយើងរែូវនរបើ

សញ្ដរងវង់រក្ចក្នៅអមសងខាងក្ននាមរបមាណ្វ ិធីតដលមានរបមាណ្សញ្ដន ោះ។ ដូចោន

តដរ នៅក្នុងភាា Python នបើ សិនជានយើងចង់ផតល់អាទិភាពឲ្យនៅរបមាណ្សញ្ដណាមួយ

ន ោះ នយើងក្៍ រែូវនរបើសញ្ដរងវង់រក្ចក្នៅអមសងខាងក្ននាមរបមាណ្វ ិធី តដលមានរបមាណ្

សញ្ដន ោះតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

ណោហុ ឤ = 300

print((ថ្លលឦក់ + ថ្លលវិញ) * ណោហុ ឤ)

ល ក់ + ថ្លវ
(ថ្លឦ ល ិ ញ) * ណោហុ ឤ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរវាងចំនួនេែ់ន្មោះ ថ្ងលលក្់

ចំនួនេែ់ន្មោះ ថ្ងលទិញ និងចំនួនេែ់ន្មោះ នាហ៊ុយ ។ នដាយារមានសញ្ដរងវង់រក្ចក្

ល ក់ + ថ្លវ
នៅអមសងខាងក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិញ ដូចននោះរបមាណ្វ ិធី បូក្រែូវនធវើនឡើង

មុនរបមាណ្វ ិធីេុន។

មួយវ ិញនទៀែ នយើងសនងកែន ើញថា រេប់ការយក្ចំនួនេែ់នផេងៗមក្នធវើរបមាណ្វ ិធី េឺជា

ការបនងកើែវែថុងមីនផេងនទៀែ វែថុនដើមតដលរែូវានយក្មក្នធវើរបមាណ្វ ិធីទំងប៉ុ ម ន មិនរែូវាន

តក្តរបឬាែ់បង់នឡើយ។

ចាំនួន ពិត្
ទំព័រ 31

ចំនួនពិែ (floating-point number) េឺជានលខ្ទំងឡាយណាតដលជានលខ្មាននក្បៀស។

នដើមបីបនងកើែចំនួនពិែ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000.75

ថ្លលវិញ = 900.33

print(ថ្លលឦក់)

print(ថ្លលវិញ)

ល ក់ = 1000.75 េឺ ជាបញ្
ថ្លឦ ា ែរមូវឲ្យបនងកើែចំនួនពិែន្មោះ ថ្ងលលក្់ មួយតដលជានលខ្

1000.75 ។

ថ្លវ
ល ិញ = 900.33 េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែចំនូនពិែមួយនទៀែមានន្មោះថា ថ្ងលទិញ តដលជា

នលខ្ 900.33 ។

ររមាណវិ ធីនព្វនត

ដូចោននឹងចំនួនេែ់ តដរ នយើងអាចយក្ចំនួនពិែនផេងៗមក្នធវើរបមាណ្វ ិធី នពវនដ


ត ូចខាងនរកាម

ននោះ៖

ថ្លលឦក់ = 100.75

ថ្លលវិញ = 90.33

print(ថ្លលឦក់ + ថ្លលវិញ)

print(ថ្លលឦក់ - ថ្លលវិញ)

print(ថ្លលឦក់ * ថ្លលវិញ)

print(ថ្លលឦក់ / ថ្លលវិញ)

print(ថ្លលឦក់ // ថ្លលវិញ)
ទំព័រ 32

print(ថ្លលឦក់ % ថ្លលវិញ)

print(ថ្លលឦក់ ** ថ្លលវិញ)

នរៅពីការនធវើរបមាណ្វ ិធី នពវនរត វាងចំនួនេែ់ និងចំនួនេែ់ ឬរវាងចំនួនពិែនិងចំនួនពិែ នយើង

អាចយក្ចំនួនេែ់នផេងៗមក្នធវើរបមាណ្វ ិធី នពវនជា


ត មួយនឹងចំនួនពិែតដល ំឲ្យានលទធផល

ជាចំនួនពិែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 100

ថ្លលវិញ = 90.33

print(ថ្លលឦក់ + ថ្លលវិញ)

print(ថ្លលឦក់ - ថ្លលវិញ)

print(ថ្លលឦក់ * ថ្លលវិញ)

print(ថ្លលឦក់ / ថ្លលវិញ)

print(ថ្លលឦក់ // ថ្លលវិញ)

print(ថ្លលឦក់ % ថ្លលវិញ)

print(ថ្លលឦក់ ** ថ្លលវិញ)

ត្កកវត្ថុ

ែក្កវែថុ (Boolean) េឺជាវែថុពីរយា៉ ងេឺ True និង False ។ នដើមបីបនងកើែែក្កវែថុ នយើងរែូវនធវើដូចខាង

នរកាមននោះ៖

ររូឧ = True

ខុស = False

print(ររូឧ)
ទំព័រ 33

print(ខុស)

ររូឧ = True េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែែក្កវែថុមានន្មោះថា រែូវ តដលជា True ។

ខុស = False េឺជាបញ្


ា ែរមូវឲ្យបនងកើែែក្កវែថុមួយនទៀែមានន្មោះថា ខ្ុស តដលជា False ។

ជាទូនៅែក្កវែថុមានរបនយាជន៍នៅក្នុងការនធវើរបមាណ្វ ិធីមូយចំ នួនមានដូចជារបមាណ្វ ិធី

ែក្កវ ិទាជានដើម។ នលើសពី ននោះនទៀែ ែក្កវែថុអាចជាវែថុតដលជាលទធផលានមក្ពីការនធវើ

របមាណ្វ ិធី មួយចំនួននទៀែតដលនយើងនឹងានន ើញនៅនពលបនតិចនទៀែននោះ។

ររមាណវិ ធីតក្កវិទា

របមាណ្វ ិធីែក្កវ ិទា (logical operation) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះ

មានការនរបើរាស់របមាណ្សញ្ដ and, or, not ។

នយើងអាចយក្ែក្កវែថុនផេងៗមក្នធវើរបមាណ្វ ិធីែក្កវ ិទាដូចខាងនរកាមននោះ៖

ររូឧ = True

ខុស = False

print(ររូឧ and ខុស)

print(ររូឧ or ខុស)

print(not ររូឧ)

print(not ខុស)

ររូឧ and ខុស េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ and រវាងែក្ក

វែថុន្មោះ រែូវ និងែក្កវែថុន្មោះ ខ្ុស ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False


ទំព័រ 34

នៅក្នុងការនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ and នបើរបមាណ្អងគនៅខាងនឆវង

ំ ផទុយមក្វ ិញ នបើរបមាណ្អងគនៅខាង
ជាែក្កវែថុ True លទធផលេឺ ជារបមាណ្អងគនៅខាងាត។

នឆវងជាែក្កវែថ False លទធផលេឺ ជារបមាណ្អងគន ោះតែមតង។

ររូឧ or ខុស េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ or រវាងែក្កវែថុ

ន្មោះ រែូវ និងែក្កវែថុន្មោះ ខ្ុស ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True ។

នៅក្នុងការនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ or នបើ របមាណ្អងគនៅខាងនឆវងជា

ែក្កវែថុ True លទធផលេឺ ជារបមាណ្អងគន ោះតែមតង។ ផទុយមក្វ ិញ នបើរបមាណ្អងគនៅខាងនឆវង

ជាែក្កវែថ False លទធផលេឺជារបមាណ្អងគនៅខាងាត។


not ររូឧ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ not ជាមូយនឹង

ែក្កវែថុន្មោះ រែូវ ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False ។

នៅក្នុងការនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not នបើរបមាណ្អងគជាែក្កវែថុ

True លទធផលេឺជាែក្កវែថុ False ។ ផទុយមក្វ ិញ នបើរបមាណ្អងគេឺជាែក្កវែថុ False លទធផលេឺ

ជាែក្កវែថុ True ។

not ខុស េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ not ជាមូយនឹង

ែក្កវែថុន្មោះ ខ្ុស ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺជាែក្កវែថុ True នរពាោះ ខ្ុស េឺជាែក្ក

វែថុ False ។

ដូចោនតដរ នយើងអាចយក្នលខ្នផេងៗមក្នធវើរបមាណ្វ ិធីែក្កវ ិទាដូចខាងនរកាមននោះ៖

សណតោ ឤ = 176

វវឹង = 0.0
ទំព័រ 35

print(សណតោ ឤ and វវឹង)

print(សណតោ ឤ or វវឹង)

print(not សណតោ ឤ)

print(not វវឹង)

សណតោ ឤ and វវឹង េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ and

រវាងចំនួនេែ់ ន្មោះ បនណា


ត យ និងចំនួនពិែន្មោះ ទទឹង។ នដាយវែថុន្មោះ បនណា
ត យ ជា

នលខ្ខ្ុសពីសូនយ ដូចននោះវា សមមូល (equivalent) នឹងែក្កវែថុ True ពីនរពាោះរេប់នលខ្

ទំងឡាយណាតដលខ្ុសពីសូនយសមមូលនឹងែក្កវែថុ True ។ របការននោះនធវើឲ្យលទធផលានមក្

ពីរបមាណ្វ ិធី ននោះេឺ ជាចំនួនេែ់ ន្មោះ ទទឹង នរពាោះវាជារបមាណ្អងគនៅខាងាត។


សណតោ ឤ or វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ or

រវាងចំនួនេែ់ ន្មោះ បនណា


ត យ និងចំនួនពិែន្មោះ ទទឹង។ នដាយវែថុន្មោះ បនណា
ត យ

សមមូលនឹងែក្កវែថុ True របការននោះនធវើឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាចំនួនេែ់ននោះ

តែមតង។

not សណតោ ឤ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not ជាមួយ

នឹងចំនួនេែ់ ន្មោះ បនណា


ត យ ។ នដាយ បនណា
ត យ េឺ ជានលខ្សមមូលនឹងែក្កវែថុ True

ដូចននោះលទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False ។

not វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ not ជាមួយនឹង

ចំនួនពិែន្មោះ ទទឹង ។ នដាយ ទទឹង េឺជានលខ្សូនយ ដូចននោះវាសមមូលនឹងែក្កវែថុ False ។

ដូចននោះលទធផលានមក្េឺជាែក្កវែថុ True ។
ទំព័រ 36

ររមាណវិ ធីបររៀបបធៀប

របមាណ្វ ិធីនរបៀបនធៀប (comparison operation) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅ

ក្នុងន ោះមានការនរបើរាស់របមាណ្សញ្ដ ==, !=, >, <, >=, <= ក្នុងនោលបំណ្ងយក្វែថុ

នផេងៗមក្នរបៀបនធៀបោន។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ។

នយើងអាចយក្នលខ្នផេងៗមក្នធវើរបមាណ្វ ិធីនរបៀបនធៀបដូចខាងនរកាមននោះ៖

សណតោ ឤ = 176

វវឹង = 23.31

print(សណតោ ឤ == វវឹង)

print(សណតោ ឤ != វវឹង)

print(សណតោ ឤ > វវឹង)

print(សណតោ ឤ < វវឹង)

print(សណតោ ឤ >= វវឹង)

print(សណតោ ឤ <= វវឹង)

សណតោ ឤ == វវឹង េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ ==

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជានសមើនឹង ទទឹង តមនឬនទ។ លទធផលានមក្ពី

របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថា បនណា
ត យ មិននសមើនឹង ទទឹង នទ។

ជាងមីមតងនទៀែ នយើងរែូវនធវើការក្ែ់សំោល់ថារបមាណ្សញ្ដ == នៅក្នុងភាា Python

ា ក្់ លទធផលានមក្ពី ការនធវើរបមាណ្វ ិធីនឡើយ របមាណ្


មិនតមនជាសញ្ដនរបើសរមាប់បញ្

សញ្ដននោះរែូវនរបើសរមាប់តែនធវើរបមាណ្វ ិធី នដើមបីពិនិែយនមើលថា នែើវែថុពីរពិែជាមានែថ្មលនសមើ

ោនតដរឬនទ។ នហើយនបើ សិនជាវែថុទំងពីរន ោះមានែថ្មលនសមើោន លទធផលេឺជាែក្កវែថុ True នបើពុំ

ន ោះនាែនទ លទធផលេឺ ជាក្ែក្កវែថុ False ។


ទំព័រ 37

សណតោ ឤ != វវឹង េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ !=

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជាមិននសមើនឹង ទទឹង តមនឬនទ។ លទធផលានមក្ពី

របមាណ្វ ិធីននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា បនណា
ត យ ពិែជាមិននសមើនឹង ទទឹង តមន។

សណតោ ឤ > វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ >

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជាធំជាង ទទឹង តមនឬនទ។ លទធផលានមក្ពី របមាណ្

វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា បនណា
ត យ ពិែជាធំជាង ទទឹង តមន។

សណតោ ឤ < វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ <

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជាែូចជាង ទទឹង តមនឬនទ។ លទធផលានមក្ពី

របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថា បនណា
ត យ មិនែូចជាង ទទឹង នទ។

សណតោ ឤ >= វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ >=

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជាធំជាងឬនសមើនឹង ទទឹង តមនឬនទ។ លទធផលានមក្ពី

របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា បនណា
ត យ ពិែជាធំជាងឬនសមើនឹង ទទឹង តមន

សណតោ ឤ <= វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្នរបៀបនធៀបនដាយនរបើ របមាណ្សញ្ដ <=

នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ ពិែជាែូចជាងឬនសមើនឹង ទទឹង តមនឬនទ។ លទធផលានមក្

ពីរបមាណ្វ ិធី ននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា បនណា
ត យ ពិែជាែូចជាងឬនសមើនឹង ទទឹង

តមន។
ទំព័រ 38

ររមាណវិ ធីអតតសញ្ញាណ

របមាណ្វ ិធីអែតសញ្ដណ្ (identification) េឺ ជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះ

មានការនរបើរាស់របមាណ្សញ្ដ is និង is not ក្នុងនោលបំណ្ងយក្វែថុពីរមក្ពិនិែយនមើលថា

នែើវាពិែជាវែថុតែមួយតមនតដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺ ជាែក្កវែថុ។

នយើងអាចយក្វែថុនផេងៗមក្នធវើរបមាណ្វ ិធីអែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

សណតោ ឤ = 176

វវឹង = 23.31

កំឡស់ = សណតោ ឤ

print(សណតោ ឤ is វវឹង)

print(សណតោ ឤ is កំឡស់)

print(សណតោ ឤ is not វវឹង)

សណតោ ឤ is វវឹង េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្នដាយនរបើរបមាណ្សញ្ដ

is នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ និង ទទឹង េឺជាវែថុតែមួយតមនតដរឬនទ។ លទធផលាន

មក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់រាប់ថា បនណា
ត យ និង ទទឹង មិនតមនជាវែថុតែ

មួយន ោះនទ។

សណត ំ ស់ េឺ ជាបញ្
ោ ឤ is កឡ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដាយនរបើរបមាណ្សញ្ដ

is នដើមបីពិនិែយនមើលថានែើ បនណា
ត យ និង ក្ំពស់ េឺជាវែថុតែមួយតមនតដរឬនទ។ លទធផលាន

មក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា បនណា
ត យ និង ក្ំពស់ ពិែជាវែថុតែមួយ

តមន។
ទំព័រ 39

សណតោ ឤ is not វវឹង េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដាយនរបើរបមាណ្

សញ្ដ is not នដើមបីពិនិែយនមើលថានែើ បនណា


ត យ និង ទទឹង មិនតមនជាវែថុតែមួយតមនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា បនណា
ត យ និង ទទឹង ពិែ

ជាមិនតមនជាវែថុតែមួយតមន។

បនណា
ត យ 176

ក្ំពស់

ទទឹង 23.31

ឈោឃៈ វត្ថុ

None េឺជា នមា ៈវែថុ ។ នដើមបីបនងកើែនមា ៈវែថុ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

អរ់រថ្ឣល = None

print(អរ់រថ្ឣល)

អរ់រថ្ឣល = None េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែនមា ៈវែថុមួយមានន្មោះថា អែ់ែថ្មល ។

នមា ៈវែថុរែូវនរបើសរមាប់ែំណាងឲ្យវែថុទំងឡាយណាតដលោមនែថ្មលអីវទំងអស់។ នហើយ

ជួនកាលនមា ៈវែថុអាចជាលទធផលានមក្ពីការនធវើរបមាណ្វ ិធីនផេងៗមានដូចជាការយក្

ក្បួនមក្នរបើជានដើម។ នយើងនឹងានាគល់ពីការយក្ក្បួនមក្នរបើនៅនពលខាងមុខ្ននោះ។

កម្មង អកសរ
ទំព័រ 40

ក្រមងអក្េរ (string) េឺជាឃ្លលរបនយាេទំងឡាយណាតដលមានន័យនសចក្តីអីវម៉ាង។ នដើមបី

បនងកើែក្រមងអក្េរ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

ឃ្លល = "កឣមឧឝ
ិ ជាភាោ
ី Python "

print(ឃ្លល)

ឃ្លល = "កឣឧម ឝ
ិ ីជាភាោ Python " េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែក្រមងអក្េរមួយមានន្មោះថា ឃ្លល

តដលជារបនយាេមានន័យថា “ក្មមវ ិធីជាភាា Python “ ។

ដូចននោះនយើងន ើញថានដើមបីបនងកើែក្រមងអក្េរ នយើងរែូវនរបើសញ្ដ “ “ ននោះនៅអមសងខាងឃ្លល

របនយាេណាមួយ។ តែនលើសពីននោះនទៀែ នយើងក្៍ អាចនរបើសញ្ដ ' ' ននោះនដើមបីបនងកើែក្រមង

អក្េរានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លល១ = "អនករាជញឥកាណលល"

ឃ្លល២ = 'អនកមាឞឥកាកសរ់'

print(ឃ្លល១)

print(ឃ្លល២)

ឃ្លល១ = "អក
ន រាជឥញ កាណលល" េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែក្រមងអក្េរមួយមានន្មោះថា ឃ្លល១

នដាយនរបើសញ្ដ " " នៅអមសងខាងរបនយាេមួយតដលមានន័យថា "អនក្រាជញរក្ានលល" ។

ន មាឞឥកាកសរ់' េឺ ជាបញ្
ឃ្លល២ = 'អក ា ែរមូវឲ្យបនងកើែក្រមងអក្េរមួយមានន្មោះថា ឃ្លល២

នដាយនរបើសញ្ដ ' ' នៅអមសងខាងរបនយាេមួយតដលមានន័យថា 'អនក្មានរក្ាក្េែ់' ។


ទំព័រ 41

នដាយនហែុថានយើងអាចនរបើសញ្ដរហូែដល់នៅពីរតបបនៅក្នុងការបនងកើែក្រមងអក្េរ ដូចននោះ

នយើងអាចនរបើ សញ្ដណាមួយជាែួអក្េរនៅក្នុងឃ្លលនៅនពលតដលនយើងនរបើ សញ្ដមួយនទៀែនៅ

អមសងខាងឃ្លលន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

រសណោគ = 'សឥណសឥកឣមឧឝ
ិ គ
ី ជា
ឺ "កាឥណ ា ទ ំងឡួង'
ោះរោឤ" សញ្ហ

print(រសណោគ)

រសណោគ = 'សឥណសឥកឣឧម ឝ
ិ ីគជា
ឺ "កាឥណ ោះរោឤ" សញ្ហ ំ ួ ង' េឺ ជាបញ្
ា ទងឡ ា ែរមូវឲ្យបនងកើែ

ក្រមងអក្េរមួយមានន្មោះថា របនយាេ តដលនៅក្នុងន ោះមានសញ្ដ " " ជាែួ អក្េរ។

នដើមបីបនងកើែក្រមងអក្េរតដលមាននរចើនប ទ ែ់ នយើងរែូវនរបើសញ្ដ ''' ''' ឬសញ្ដ """ """ នៅ

អមសងខាងអែថបទណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ពាកយចាស់ = """អនកមាឞឥកាកសរ់ ដូ ចសំឡរ់ឡ័វឡ


ធ ី កណរៅ

អនករាជញឥកាណលល ដូ ចសំណៅណៅសំា៉ាឞ។"""

កថា = '''កាឥសឥណសឥកឣមឧឝ
ិ កំ
ី ឡយូវ័ឥគជាកាឥសឥណសឥណឥៀសចំ

សញ្ហ
ា ឣួ ឤចំឞួឞតាឣឦំ ស់ឦណំ ឤ។'''

print(ពាកយចាស់)

print(កថា)

នៅក្នុងក្មមវ ិធីខាងនលើននោះ មានការបនងកើែក្រមងអក្េរចំនួនពីរេឺក្រមងអក្េរមានន្មោះថា

ពាក្យចាស់ និងក្រមងអក្េរមានន្មោះថា ក្ថា ។ ការបនងកើែក្រមងអក្េរមានន្មោះថា

ពាក្យចាស់ រែូវាននធវើនឡើងនដាយនរបើ សញ្ដ """ """ នៅអមសងខាងអែថបទមួយ ចំតណ្ក្

ការបនងកើែក្រមងអក្េរមានន្មោះថា ក្ថា វ ិញរែូវាននធវើនឡើងនដាយនរបើសញ្ដ ''' ''' នៅអម

សងខាងអែថបទមួយនទៀែ។
ទំព័រ 42

ចំនពាោះអក្េរពិនសសមួយចំនួនតដលមាននៅនលើខ្ទង់ក្ំពយូទ័ រដូចជា៖ Tab, Backspace, Enter

ជានដើម នយើងរែូវនរបើសញ្ដ \ រួមផេំជាមួយនឹងអក្េរណាមួយនទៀែនដើមបីបនងកើែអក្េរពិនសស

ទំងន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ពាកយចាស់ = """អនកមាឞឥកាកសរ់\tដូ ចសំឡរ់ឡ័វឡ


ធ ី កណរៅ\nអនករាជញឥកាណលល\tដូ ចសំណៅណៅ

សំា៉ាឞ។"""

print(ពាកយចាស់)

ពាកយចាស់ = """អក
ន មាឞឥកាកសរ់\tដូចសឡ
ំ រ់ឡ័វឡ ន រាជឥញ កាណលល\tដូចសណំ ៅណៅ
ធ ី កណរៅ\nអក

ំ ៉ា ឞ។""" េឺជាបញ្
សា ា ែរមូវឲ្យបនងកើែក្រមងអក្េរមួយមានន្មោះថា ពាក្យចាស់ តដលនៅក្នុង

ន ោះមាន \t ជាអក្េរសរមាប់ដក្ឃ្លលតវង (Tab) និង \n ជាអក្េរសរមាប់ចុោះប ទ ែ់។

នរៅពីអក្េរ \t និង \n ននោះ នៅមានអក្េរពិនសសមួយចំនួននទៀែតដលនយើងអាចយក្មក្នរបើ

នដាយសរនសរតមលំ ំដូចោនននោះតដរ។ អក្េរពិនសសទំងន ោះមាន៖

\b Backspace

\r Enter

\" "

\' '

\b សនមលងជួង

ផទុយមក្វ ិញ នបើសិនជានយើងចង់ នរបើរាស់សញ្ដ \ ននោះជាែួ អក្េរធមមតនៅក្នុងក្រមងអក្េរ

ណាមួយ នយើងរែូវតែសរនសរអក្េរ R ឬ r នៅខាងមុខ្ក្រមងអក្េរន ោះ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

ឃ្លល = R"ឯកោឥសំខាឞ់សិរណៅកន
ថ ុ ងលរ c:\n\ឯកោឥសំងារ់"
ទំព័រ 43

print(ឃ្លល)

ំ ឞ់សិរណៅក
ឃ្លល = R"ឯកោឥសខា ថ ុ ងលរ
ន ំ រ់" េឺ ជាបញ្
c:\n\ឯកោឥសងា ា ែរមូវឲ្យបនងកើែក្រមង

អក្េរមួយមានន្មោះថា ឃ្លល តដលនៅក្នុងន ោះមានសញ្ដ \ េឺជាអក្េរធមមត។ នហើយេឺនដាយ

ារអក្េរ R នៅខាងនដើមក្រមងអក្េរន ោះនហើយ តដលនធវើឲ្យសញ្ដ \n កាលយនៅជាអក្េរ

ធមមត នបើោមនអក្េរ R ននោះនទ \n នឹងកាលយនៅជាអក្េរសរមាប់ចុោះប ទ ែ់។

ររមាណវិ ធីបូក្បនត

របមាណ្វ ិធីបូក្បនត (concatenation) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដ + នដើមបីចមលងយក្វែថុនផេងៗមក្ដាក្់ បនតោនបនងកើែជាវែថុងមីមួយ

នទៀែ។

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីបូក្បនតដូចខាងនរកាមននោះ៖

ឃ្លល១ = "អនករាជញឥកាណលល\t"

ឃ្លល២ = "ដូ ចសំណៅណៅសំា៉ាឞ។"

print(ឃ្លល១ + ឃ្លល២)

ឃ្លល១ + ឃ្លល២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីបូក្បនតនដាយចមលងយក្រមងអក្េរន្មោះ

ឃ្លល១ និង ឃ្លល២ មក្ដាក្់បនតោនបនងកើែជាក្រមងអក្េរងមីមួយនទៀែ។

ររមាណវិ ធីគុនបនត

រសមាណឧឝ
ិ ីគុឞសឞោ (repetition) េឺ ជារបមាណ្វ ិធី ទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដ * នដើមបីចមលងយក្វែថុណាមួយមក្េុនឲ្យាននរចើនរួចដាក្់ បនតោន

បនងកើែជាវែថុងមីមួយនទៀែ។
ទំព័រ 44

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្េុនបនតដូចខាងនរកានននោះ៖


រសណោគណដើឣ = "រក់ៗណឡញសំឡង\t"

print(រសណោគណដើឣ * 3)

រសណោគណដើឣ * 3 េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីេុនបនតនដាយចមលងយក្ក្រមងអក្េរមាន

ន្មោះថា របនយាេនដើម មក្េុនបនងកើែជាក្រមងអក្េរដូចោនចំនួនបី រួចដាក្់បនតោនបនងកើែជា

ក្រមងអក្េរងមីមួយនទៀែ។

ររមាណវិ ធីបេខប ៀង

ក្រមងអក្េរេឺ ជា សមាសវែថុ (container) ានន័យថាក្រមងអក្េរេឺ ជាវែថុមួយតដលនៅក្នុងន ោះ

មានវែថុជានរចើននទៀែ។ វែថុនៅក្នុងក្រមងអក្េរេឺ ជាែួអក្េរនផេងៗ។ ែួ អក្េរទំងន ោះរែូវចាែ់

ទុក្ថាជា ធ្លែុ (element) ថ្នក្រមងអក្េរ។ ែួអក្េរនៅក្នុងក្រមងអក្េររែូវដាក្់ែនរមៀបជួរោន

តមនលខ្នរៀង (index) ចាប់ពីសូនយនឡើងនៅ នបើរាប់ពីនដើមក្រមងអក្េរនឡើងនៅ តែនបើ នយើង

រាប់ចាប់ពីចុងក្រមងអក្េរចុោះមក្វ ិញ ែួអក្េរនៅខាងចុងនេមាននលខ្នរៀង -1 ។ ជាក្់តសតង នៅ

ក្នុងក្រមងអក្េរ Python ែួអក្េរ P, y, t, h, o, n ែនរមៀបជួរោនចាប់សូនយនឡើងនៅរហូែដល់ 5

នបើនយើងរាប់ចាប់ពីអក្េរ P នឡើងនៅ តែនបើនយើងរាប់ចាប់ អក្េរ n ចុោះមក្វ ិញ ែួអក្េរទំងន ោះ

ែនរមៀបជួរោនចាប់ពី -1 ចុោះមក្រហូែដល់ -6 ។

0 1 2 3 4 5
P y t h o n
-6 -5 -4 -3 -2 -1
ទំព័រ 45

ម៉ាងនទៀែក្រមងអក្េរក្៍ មានលក្ខណ្ៈដូចជាក្រមងថ្នវែថុនផេងៗនទៀែតដរ នពាលេឺ វាជា ក្រមង

(sequence) មួយតដលនៅក្នុងន ោះអាចមានវែថុនផេងៗនទៀែជានរចើនតដលរែូវរក្ងភាាប់ោនពី

មួយនៅមួយែនរមៀបោនជាជួររែង់ដូចប ទ ែ់។ នយើងអាចនរបៀបរបដូចក្រមងអក្េរនៅនឹង

រែនណាែថ្នវែថុនផេងៗ។

របមាណ្វ ិធីនលខ្នរៀង (indexing) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដ [ ] នដើមបីចមលងយក្ធ្លែុណាមួយនៅក្នុងសមាសវែថុណាមួយមក្

នរបើការ។

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីនលខ្នរៀងដូចខាងនរកាមននោះ៖

ើ = "រក់ៗណឡញសំឡង"់
ឃ្លលណដឣ

print(ឃ្លលណដើឣ[5])

print(ឃ្លលណដើឣ[-3])

print(ឃ្លលណដឣ
ើ [0])

ឃ្លលណដើឣ[5] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបីចមលងយក្ែួ អក្េរមាននលខ្នរៀង 5

នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លលនដើម ។

ឃ្លលណដឣ
ើ [-3] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីចមលងយក្ែួ អក្េរមាននលខ្នរៀង

-3 នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លលនដើម ។

ឃ្លលណដឣ
ើ [0] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបីចមលងយក្ែួ អក្េរមាននលខ្នរៀង 0

នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លលនដើម ។
ទំព័រ 46

ររមាណវិ ធីកាត់ចម្លង

របមាណ្វ ិធីកាែ់ចមលង (slicing) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដ [:] ឬ [::] នដើមបីចមលងយក្ធ្លែុមួយចំនួនពី ក្ុងក្រមងណាមួ


ន យ

មក្បនងកើែជាក្រមងងមីមួយនទៀែ។

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីកាែ់ចមលងដូចខាងនរកាមននោះ៖

ពាកយចាស់ = "អនករាជញឥកាណលលដូ ចសំណៅណៅសំា៉ាឞ។"

print(ពាកយចាស់[3:30])

print(ពាកយចាស់[:30])

print(ពាកយចាស់[3:])

print(ពាកយចាស់[:])

print(ពាកយចាស់[3:30:2])

ពាកយចាស់[3:30] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដើមបីចមលងយក្ែួ អក្េរមួយចំនួន

មាននលខ្នរៀងចាប់ពី 3 រហូែដល់ 29 នៅក្នុងក្រមងអក្េរន្មោះ ពាក្យចាស់ មក្បនងកើែជា

ក្រមងអក្េរមួយងមីនទៀែ។

ពាកយចាស់[:30] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដើមបីចមលងយក្ែួ អក្េរមួយចំនួន

មាននលខ្នរៀងចាប់ពី 0 រហូែដល់ 29 នៅក្នុងក្រមងអក្េរន្មោះ ពាក្យចាស់ មក្បនងកើែជា

ក្រមងអក្េរមួយងមីនទៀែ។

ពាកយចាស់[3:] េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដើមបីចមលងយក្ែួ អក្េរមួយចំនួន

មាននលខ្នរៀងចាប់ពី 3 រហូែដល់អក្េរនៅខាងចុងនេបំផុែនៅក្នុងក្រមងអក្េរន្មោះ

ពាក្យចាស់ មក្បនងកើែជាក្រមងអក្េរមួយងមីនទៀែ។
ទំព័រ 47

ពាកយចាស់[:] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដើមបីចមលងយក្ែួអក្េរទំងអស់នៅ

ក្នុងក្រមងអក្េរន្មោះ ពាក្យចាស់ មក្បនងកើែជាក្រមងអក្េរមួយងមីនទៀែ។

ពាកយចាស់[3:30:2] េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដើមបីចមលងយក្ែួអក្េរមួយ

ចំនួនមាននលខ្នរៀងចាប់ពី 3 រហូែដល់ 29 នដាយរ ំលងអក្េរចំនួនមួយនចាលរហូែ នៅក្នុង

ក្រមងអក្េរន្មោះ ពាក្យចាស់ មក្បនងកើែជាក្រមងអក្េរមួយងមីនទៀែ។

ដូចននោះនបើ ក្ ខ្ េ ជាចំនួនេែ់ និង ឃ្លល ជាន្មោះរបស់ក្រមងអក្េរណាមួយ ការសរនសរ៖

ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលង នដើមបីចមលងយក្អក្េរមួយចំនួន


 ឃ្លល[ក្:ខ្] េឺជាបញ្

មាននលខ្នរៀងចាប់ពី ក្ រហូែដល់ ខ្-1 នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល មក្បនងកើែជា

ក្រមងអក្េរងមីមួយនទៀែ។

ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលង នដើមបីចមលងយក្អក្េរមួយចំនួន


 ឃ្លល[:ខ្] េឺជាបញ្

មាននលខ្នរៀងចាប់ពី 0 រហូែដល់ ខ្-1 នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល មក្បនងកើែជា

ក្រមងអក្េរងមីមួយនទៀែ។

ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលង នដើ មបីចមលងយក្អក្េរមួយចំនួន


 ឃ្លល[ក្:] េឺជាបញ្

មាននលខ្នរៀងចាប់ពី ក្ រហូែដល់អក្េរចុងនេបំផុែនៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល មក្

បនងកើែជាក្រមងអក្េរងមីមួយនទៀែ។

ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ ចមលង នដើមបីចមលងយក្អក្េរទំងអស់នៅ


 ឃ្លល[:] េឺជាបញ្

ក្នុងក្រមងអក្េរន្មោះ ឃ្លល មក្បនងកើែជាក្រមងអក្េរងមីមួយនទៀែ។

ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលង នដើមបីចមលងយក្អក្េរមាន


 ឃ្លល[ក្:ខ្:េ] េឺ ជាបញ្

នលខ្នរៀងចាប់ ពី ក្ រហូែដល់ ខ្-1 នដាយរ ំលងអក្េរចំនូន េ-1 នចាលរហូែ នៅក្នុង

ក្រមងអក្េរន្មោះ ឃ្លល មក្បនងកើែជាក្រមងអក្េរងមីមួយនទៀែ។


ទំព័រ 48

ររមាណវិ ធីតក្កវិទា

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីែក្កវ ិទាដូចខាងនរកាមននោះ៖

ឃ្លលវណវ = ""

ពាកយចាស់ = "រក់ៗណឡញសំឡង់"

print(ឃ្លលវណវ and ពាកយចាស់)

print(ឃ្លលវណវ or ពាកយចាស់)

print(not ឃ្លលវណវ)

print(not ពាកយចាស់)

ឃ្លលវណវ = "" េឺជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអក្េរន្មោះ ឃ្លលទនទ មួយតដលជាក្រមងអក្េរ

ោមនអក្េរនៅក្នុងន ោះ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា អក្េរដក្ឃ្លល (space) ក្៍ជាែួអក្េរមួយដូចជាែួអក្េរដថ្ទនទៀែ

តដរ។ នពាលេឺ វាមិនតមនជាអក្េរទនទន ោះនទ។ នៅក្នុងក្រមងអក្េរ អក្េរដក្ឃ្លលមាន ទីជា

អនក្នធវើឲ្យមានេំលាែរវាងែួអក្េរនផេងៗនទៀែ។

ឃ្លលវណវ and ពាកយចាស់ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ

and រវាងក្រមងអក្េរន្មោះ ឃ្លលទនទ និ ងក្រមងអក្េរន្មោះ ពាក្យចាស់ ។ នដាយក្រមងអក្េរ

ន្មោះ ឃ្លលទនទ ជាក្រមងអក្េរទនទ ដូចននោះវាសមមូលនឹងែក្កវែថុ False តដល ំឲ្យលទធផល

ានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាក្រមងអក្េរន្មោះ ឃ្លលទនទ ន ោះតែមតង។

ឃ្លលវណវ or ពាកយចាស់ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ or

រវាងក្រមងអក្េរន្មោះ ឃ្លលទនទ និងក្រមងអក្េរន្មោះ ពាក្យចាស់ ។ នដាយក្រមងអក្េរ

ន្មោះ ឃ្លលទនទ ជាក្រមងអក្េរទនទ ដូចននោះវាសមមូលនឹងែក្កវែថុ False តដល ំឲ្យលទធផល


ទំព័រ 49

ានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាក្រមងអក្េរន្មោះ ពាក្យចាស់ នរពាោះវាជារបមាណ្អងគនៅខាង

ាត។

not ឃ្លលវណវ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not ជាមួយ

នឹងក្រមងអក្េរន្មោះ ឃ្លលទនទ ។ នដាយក្រមងអក្េរន្មោះ ឃ្លលទនទ ជាក្រមងអក្េរទនទ

ដូចននោះវាសមមូលនឹងែក្កវែថុ False តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ

True ។

not ពាកយចាស់ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not

ជាមួយនឹងក្រមងអក្េរន្មោះ ពាក្យចាស់ ។ នដាយក្រមងអក្េរន្មោះ ពាក្យចាស់ មិនតមនជា

ក្រមងអក្េរទនទ ដូចននោះវាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធី

ននោះេឺជាែក្កវែថុ False ។

ររមាណវិ ធីបររៀបបធៀប

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីនរបៀបនធៀបដូចខាងនរកាមននោះ៖

នាឣ១ = "ឦឹឣ កុ សឦ"

នាឣ២ = "កកឧ សំតង"

print(នាឣ១ == នាឣ២)

print(នាឣ១ != នាឣ២)

print(នាឣ១ > នាឣ២)

print(នាឣ១ < នាឣ២)

print(នាឣ១ >= នាឣ២)

print(នាឣ១ <= នាឣ២)


ទំព័រ 50

នាឣ១ == នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើ ក្រមង

អក្េរន្មោះ ម១ ពិែជាដូចនៅនឹងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។ លទធផលាន

មក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាក្រមងអក្េរទំងពីរន ោះមិនដូចោននទ។

ក្រមងអក្េរពី រដូចោនេឺជាក្រមងអក្េរតដលមានអក្េរដូចោនទំងអស់។

នាឣ១ != នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើ ក្រមង

អក្េរន្មោះ ម១ ពិែជាមិនដូចនៅនឹងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។ លទធផល

ានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអក្េរទំងពីរន ោះពិ ែជាមិន

ដូចោនតមន។

នាឣ១ > នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើក្រមង

អក្េរន្មោះ ម១ ពិែជាធំជាងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។ លទធផលានមក្ពី

របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអក្េរន្មោះ ម១ ពិែជាធំ ជាង

ក្រមងអក្េរន្មោះ ម២ តមន។

ក្រមងអក្េរន្មោះ ម១ ធំ ជាងក្រមងអក្េរន្មោះ ម២ ានន័យថា ក្រមងអក្េរន្មោះ

ម១ មានលំដាប់ថានក្់នៅនរកាយក្រមងអក្េរន្មោះ ម២ នបើសិនជានយើងយក្ក្រមងអក្េរ

ទំងពីរន ោះនៅែនរមៀបជាពាក្យនៅក្នុងវច នុរក្មណាមួយ។ នហើយការនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដើមបីក្ំណ្ែ់ ពីទីតំងថ្នវែថុនផេងៗនធៀបនៅនឹងពាក្យនៅក្នុងវច នុរក្ម េឺជា

ការនធវើរបមាណ្វ ិធី នរបៀបនធៀប តមរនបៀបវច នុរក្ម (lexicographically) ។ នយើងនឹងន ើញ

នៅនពលនរកាយៗនទៀែថា ការនធវើរបមាណ្វ ិធី នរបៀបនធៀបរវាងសមាសវែថុមួយចំនួននទៀែ ក្៍ជា

កានធវើរបមាណ្វ ិធីនរបៀបនធៀបតមវច នុរក្មដូចោនននោះតដរ។


ទំព័រ 51

នាឣ១ < នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើក្រមង

អក្េរន្មោះ ម១ ពិែជាែូចជាងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។ លទធផលានមក្

ពីរបមាណ្វ ិធី ននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងអក្េរន្មោះ ម១ មិនែូចជាង

ក្រមងអក្េរន្មោះ ម២ នទ។

នាឣ១ >= នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើ ក្រមង

អក្េរន្មោះ ម១ ពិែជាធំជាងឬនសមើនឹងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។ លទធផល

ានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអក្េរន្មោះ ម១ ពិែជាធំ

ជាងឬនសមើនឹងក្រមងអក្េរន្មោះ ម២ តមន។

នាឣ១ <= នាឣ២ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថានែើ ក្រមង

អក្េរន្មោះ ម១ ពិែជាែូចជាងឬនសមើនឹងក្រមងអក្េរន្មោះ ម២ តមនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាក្រមងអក្េរន្មោះ ម១

មិនែូចជាងឬនសមើនឹងក្រមងអក្េរន្មោះ ម២ នទ។

ររមាណវិ ធីអតតសញ្ញាណ

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីអែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

ឃ្លល១ = "រក់ៗណឡញសំឡង់"

ឃ្លល២ = "ណសចកោឡាោឣគង
ី ់
ាឞសណរឣច"

print(ឃ្លល១ is ឃ្លល២)

print(ឃ្លល១ is not ឃ្លល២)


ទំព័រ 52

ឃ្លល១ is ឃ្លល២ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្ នដើមបីពិនិែយនមើលថានែើក្រមង

អក្េរន្មោះ ឃ្លល១ និងក្រមងអក្េរន្មោះ ឃ្លល២ ជាវែថុតែមួយតមនតដរឬនទ។ លទធផលានមក្

ពីរបមាណ្វ ិធី ននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា ក្រមងអក្េរន្មោះ ឃ្លល១ និងក្រមងអក្េរ

ន្មោះ ឃ្លល២ មិនតមនជាក្រមងអក្េរតែមួយន ោះនទ។

ឃ្លល១ is not ឃ្លល២ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្ នដើមបីពិនិែយនមើលថានែើ

ក្រមងអក្េរន្មោះ ឃ្លល១ និងក្រមងអក្េរន្មោះ ឃ្លល២ ពិែជាមិនតមនជាវែថុតែមួយតមនតដរឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា ក្រមងអក្េរន្មោះ

ឃ្លល១ និងក្រមងអក្េរន្មោះ ឃ្លល២ ពិែជាមិនតមនជាក្រមងអក្េរតែមួយតមន។

ររមាណវិ ធី ក្ធាតុ

របមាណ្វ ិធីរក្ធ្លែុ (membership) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមានការ

នរបើរាស់របមាណ្សញ្ដ in និងឬ not in នដើមបីពិនិែយនមើលថានែើ នៅក្នុងសមាសវែថុណាមួយ

មានធ្លែុដូចនៅនឹងវែថុណាមួយន ោះតដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ

នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើរបមាណ្វ ិធីរក្ធ្លែុដូចខាងនរកាមននោះ៖

ឃ្លល = "រក់ៗណឡញសំឡង"់

ពាកយ = "សំឡង"់

print(ពាកយ in ឃ្លល)

print(ពាកយ not in ឃ្លល)

ពាកយ in ឃ្លល េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរក្ធ្លែុនដាយនរបើរបមាណ្សញ្ដ in នដើមបីពិនិែយ

នមើលថានែើនៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល មានពាក្យណាមួយដូចនៅនឹងក្រមងអក្េរន្មោះ


ទំព័រ 53

ពាក្យ ន ោះតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា នៅ

ក្នុងក្រមងអក្េរន្មោះ ឃ្លល ពិែជាមានពាក្យដូចនៅនឹងក្រមងអក្េរន្មោះ ពាក្យ ន ោះតមន។

ពាកយ not in ឃ្លល េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រក្ធ្លែុនដាយនរបើ របមាណ្សញ្ដ not in

នដើមបីពិនិែយនមើលថានែើនៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល ោមនពាក្យណាមួយដូចនៅនឹងក្រមង

អក្េរន្មោះ ពាក្យ ន ោះតមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False

បញ្
ា ក្់ រាប់ថា របការតដលថានៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល ោមនពាក្យណាមួយដូចនៅនឹង

ក្រមងអក្េរន្មោះ ពាក្យ ន ោះេឺខ្ុស។

ក្ំណត់ព្នយេ់

ក្ំណ្ែ់ពនយល់ (comment) េឺជាឃ្លលរបនយាេទំងឡាយណាតដលនយើងសរនសរនៅក្នុងក្មមវ ិធី

នដើមបីនធវើការពនយល់ពីការនរបើបញ្
ា នផេងៗ។ ឃ្លលរបនយាេទំងន ោះរែូវតែមានសញ្ដ # ននោះនៅ

ពីមុខ្។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

#កាឥសណងកើរករឣងអកសឥ

ឃ្លល = "រក់ៗណឡញសំឡង"់

ពាកយ = "សំឡង"់

print(ពាកយ in ឃ្លល) #កាឥណឝវរសមាណឧ


ើ ឝិ ឥកធារុ

#កាឥសណងើរ
ក ករឣងអកសឥ េឺ ជាក្ំណ្ែ់ ពនយល់នរបើសរមាប់ពនយល់ពីការនរបើបញ្
ា ប ទ ប់ពីន ោះ។

#កាឥណឝរសមាណឧ
ើវ ឝិ ីឥកធារុ េឺ ជាក្ំណ្ែ់ ពនយល់មួយនទៀែនរបើ សរមាប់ពនយល់ពីការនរបើបញ្

នៅខាងនដើមប ទ ែ់។
ទំព័រ 54

ដូចននោះ រេប់ ឃ្លលរបនយាេទំងឡាយណាតដលមានសញ្ដ # ននោះនៅពី មុខ្ រែូវចាែ់ទុក្ថាជា

ក្ំណ្ែ់ ពនយល់។ នហើយតផនក្ទន់ បក្តរបនឹងរ ំលងក្ំណ្ែ់ ពនយល់ទំងន ោះនចាលនធវើហាក្់ ដូចជា

ោមននៅក្នុងក្មមវ ិធី។ ម៉ាងនទៀែក្ំណ្ែ់ ពនយល់អាចរែូវសរនសរនៅនលើប ទ ែ់មួយដាច់ តែឯង

និងឬអាចរែូវសរនសរនៅខាងចុងប ទ ែ់ប ទ ប់ពីបញ្


ា ណាមួយ។

កម្មង ឈេរ

ក្រមងនងរ (tuple) េឺជាក្រមងមួយតដលនៅក្នុងន ោះអាចមានវែថុនផេងៗនទៀែជានរចើនែនរមៀប

ជួរោនតមនលខ្នរៀងចាប់ពី 0 នឡើងនៅ នបើរាប់ ពីនដើមក្រមងនឡើងនៅ និងមាននលខ្នរៀង -1 ចុោះ

មក្វ ិញ នបើរាប់ពីចុងក្រមងចុោះមក្វ ិញ។ នដើមបីបនងកើែក្រមងនងរ នយើងរែូវសរនសរក្មមវ ិធីដូចខាង

នរកាមននោះ៖

ករឣងចរឣរោះ = (100, 1.5, 'ថ្លលឦក់', True)

print(ករឣងចរឣរោះ)

ល ក់', True) េឺជាបញ្


ករឣងចរឣរោះ = (100, 1.5, 'ថ្លឦ ា ែរមូវឲ្យបនងកើែក្រមងនងរន្មោះ

ក្រមងចរមរោះ មួយតដលនៅក្នុងន ោះមានវែថុជានរចើនរបនភទខ្ុសៗោន។

ក្រមងចរមរោះ 100 1.5 ថ្ងលលក្់ True

វែថុនៅក្នុងក្រមងនងរេឺជាធ្លែុថ្នក្រមងនងរ។ ធ្លែុទំងន ោះអាចជាវែថុមានរបនភទតែមួយឬជា

វែថុមានរបនភទខ្ុសៗោន។ របការននោះនធវើឲ្យក្រមងនងរខ្ុសពី ក្រមងអក្េរតដលជាក្រមងមាន

ធ្លែុតែមួយរបនភទដូចៗោន។ ធ្លែុនៅក្នុងក្រមងអក្េរមិនអាចជាវែថុណានរៅពី ែួអក្េរាន

នឡើយ។
ទំព័រ 55

ក្រមងនងអាចរែូវបនងកើែនឡើងនដាយមិនាច់នរបើសញ្ដរងវង់រក្ចក្។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

ករឣងចរឣរោះ = 100, 1.5, 'ថ្លលឦក់', True

print(ករឣងចរឣរោះ)

ល ក់', True េឺ ជាបញ្


ករឣងចរឣរោះ = 100, 1.5, 'ថ្លឦ ា ែរមូវឲ្យបនងកើែក្រមងនងរន្មោះ

ក្រមងចរមរោះ មួយនដាយមិនចាំាច់នរបើ សញ្ដរងវង់រក្ចក្។

នៅក្នុងក្រមងនងរមួយអាចមានធ្លែុមានចំនួនមិនក្ំណ្ែ់ នពាលេឺ ចាប់ពីសូនយរហូែដល់អននត

។ ក្៍ប៉ុតនត នដើមបីបនងកើែក្រមងនងរមានធ្លែុតែមួយ នយើងរែូវនធវើតមរនបៀបពិនសសម៉ាងដូចខាង

នរកាមននោះ៖

ករឣង = (1000,)

ថ្លលឦក់ = (1000)

print(ករឣង)

print(ថ្លលឦក់)

ករឣង = (1000,) េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងនងរន្មោះ ក្រមង តដលមានធ្លែុតែមួយនៅ

ក្នុងន ោះ។

ល ក់ = (1000) េឺជាបញ្
ថ្លឦ ា ែរមូវឲ្យបនងកើែចំនួនេែ់ន្មោះ ថ្ងលលក្់ មួយ។

ដូចននោះនយើងន ើញថា នបើ នយើងមិននរបើ សញ្ដនក្បៀសនទ រេប់ការាក្លបងបនងកើែក្រមងនងរ

មានធ្លែុតែមួយ េឺជាការបនងកើែវែថុនទលនៅវ ិញនទ។ ម៉ាងនទៀែនៅក្នុងក្មមវ ិធីនផេងៗ នយើង


ទំព័រ 56

អាចដឹងថាវែថុណាមួយជាក្រមងនងរមានធ្លែុតែមួយឬជាវែថុនទល េឺនដាយារក្រមងនងរមាន

ធ្លែុតែមួយមានសញ្ដនក្បៀសនៅជិែន ោះ។

ររមាណវិ ធីបូក្បនត

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី បូក្បនតដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = (100, 1.5, "ថ្លលឦក់", True)

ករឣងវីឡីឥ = (200, 3.14, False)

print(ករឣងវីឣួ ឤ + ករឣងវីឡីឥ)

ករឣងវីឣួឤ + ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី បូក្បនត នដាយចមលងយក្រមងនងរ

ន្មោះ ក្រមងទីមួយ និង ក្រមងទីពីរ មក្ដាក្់បនតោនបនងកើែានជាក្រមងនងរងមីមួយនទៀែ។

ររមាណវិ ធីគុនបនត

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី េុនបនតដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = (100, 1.5, "ថ្លលឦក់", True)

print(ករឣងណដឣ
ើ * 3)

ករឣងណដើឣ * 3 េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្េុនបនតនដាយចមលងយក្ក្រមងនងរន្មោះ

ក្រមងនដើម មក្េុននឹង 3 បនងកើែជាក្រមងនងរចំនួនបី ដូចោន រួចដាក្់បនតោនបនងកើែជាក្រមងនងរ

មួយងមីនទៀែ។

ររមាណវិ ធីតក្កវិទា

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី ែក្កវ ិទាដូចខាងនរកាមននោះ៖


ទំព័រ 57

ករឣងវណវ = ()

ករឣងចំឥុោះ = (100, 1.5, "ថ្លលឦក់", True)

print(ករឣងវណវ and ករឣងចំឥុោះ)

print(ករឣងវណវ or ករឣងចំឥុោះ)

print(not ករឣងវណវ)

print(not ករឣងចំឥុោះ)

ករឣងវណវ and ករឣងចឥំ ុោះ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្

សញ្ដ and រវាងក្រមងនងរន្មោះ ក្រមងទនទ និងក្រមងនងរន្មោះ ក្រមងចំរោះ


ុ ។ នដាយក្រមង

នងរន្មោះ ក្រមងទនទ ជាក្រមងតដលោមនធ្លែុនៅក្នុងន ោះ ដូ ចននោះវាសមមូលនឹងែក្កវែថុ

False តដល ំ យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាក្រមងនងរន្មោះ ក្រមងទនទ ននោះតែ


ឲ្

មតង។

ករឣងវណវ or ករឣងចឥំ ុោះ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ

or រវាងក្រមងនងរន្មោះ ក្រមងទនទ និងក្រមងនងរន្មោះ ក្រមងចំរោះុ ។ នដាយក្រមង

នងរន្មោះ ក្រមងទនទ ជាក្រមងតដលោមនធ្លែុនៅក្នុងន ោះ ដូចននោះវាសមមូលនឹងែក្កវែថុ

False តដល ំ យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាក្រមងនងរន្មោះ ក្រមងចំរោះ


ឲ្ ុ នរពាោះវា

ជារបមាណ្អងគនៅខាងាត។

not ករឣងវណវ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not

ជាមួយនឹងក្រមងនងរន្មោះ ក្រមងទនទ ។ នដាយក្រមងនងរន្មោះ ក្រមងទនទ ជាក្រមងតដល

ោមនធ្លែុនៅក្នុងន ោះ ដូចននោះវាសមមូលនឹងែក្កវែថុ False តដល ំឲ្យលទធផលានមក្ពី

របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True ។


ទំព័រ 58

not ករឣងចឥំ ុោះ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not ជាមួយ

នឹងក្រមងនងរន្មោះ ក្រមងចំ រោះ


ុ ។ នដាយក្រមងនងរន្មោះ ក្រមងចំ រោះ
ុ ជាក្រមងតដលមានធ្លែុ

នៅក្នុងន ោះ ដូចននោះវាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធីននោះ

េឺជាែក្កវែថុ False ។

ររមាណវិ ធីបររៀបបធៀប

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី នរបៀបនធៀបដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = (200, 0.35, 20, 73)

ករឣងវីឡីឥ = (100, 1.5, 400, 3.14)

print(ករឣងវីឣួ ឤ == ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ != ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ > ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ < ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ >= ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ <= ករឣងវីឡីឥ)

របមាណ្វ ិធី នរបៀបនធៀបរវាងក្រមងនងរនផេងៗ េឺជារបមាណ្វ ិធីនរបៀបនធៀបតមរនបៀប

វច នុរក្ម។ ានន័យថាធ្លែុនៅខាងនឆវងនេបងអស់ថ្នក្រមងនងរនិមួយៗ រែូវយក្មក្

នរបៀបនធៀបោន នហើយនបើធ្លែុណាធំ ឬែូចជាងនេ ក្រមងនងរតដលមានធ្លែុន ោះរែូវចាែ់ទុក្ថា

ជាក្រមងនងរតដលធំ ឬែូចជាងនេ តែនបើ ធ្លែុទំងពីរន ោះនសមើោន ធ្លែុខាងនឆវងប ទ ប់មក្នទៀែ

រែូវយក្មក្នរបៀបនធៀប នបើធ្លែុទំងអស់ដូចោន ក្រមងនងរទំងន ោះរែូវចាែ់ទុក្ថាជាក្រមង

នងរដូចោន។
ទំព័រ 59

ករឣងវីឣួឤ == ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើក្រមងនងរន្មោះ ក្រមងទីមួយ ពិែជាដូចោននៅនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមនតដរ

ឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងនងរន្មោះ

ក្រមងទីមួយ មិនដូចនៅនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ នទ។

ករឣងវីឣួឤ != ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើក្រមងនងរន្មោះ ក្រមងទីមួយ ពិែជាខ្ុសោននឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមនតដរឬនទ

។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងនងរន្មោះ

ក្រមងទីមួយ ពិែជាមិនដូចនៅនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមន។

ករឣងវីឣួឤ > ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើក្រមងនងរន្មោះ ក្រមងទីមួយ ពិែជាធំជាងក្រមងនងរន្មោះ ក្រមងទីពីរ តមនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងនងរន្មោះ

ក្រមងទីមួយ ពិែជាធំ ជាងក្រមងនងរន្មោះ ក្រមងទីពីរ តមន។

ករឣងវីឣួឤ < ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើក្រមងនងរន្មោះ ក្រមងទី មួយ ពិែជាែូចជាងក្រមងនងរន្មោះ ក្រមងទីពីរ តមនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងនងរន្មោះ

ក្រមងទីមួយ មិនែូចជាងក្រមងនងរន្មោះ ក្រមងទីពីរ នទ។

ករឣងវីឣួឤ >= ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើក្រមងនងរន្មោះ ក្រមងទីមួយ ពិែជាធំ ជាងឬនសមើនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមន

តដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងនងរ

ន្មោះ ក្រមងទីមួយ ពិែជាធំជាងឬនសមើនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមន។


ទំព័រ 60

ករឣងវីឣួឤ <= ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើក្រមងនងរន្មោះ ក្រមងទីមួយ ពិែជាែូចជាងឬនសមើនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ តមន

តដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាក្រមងនងរ

ន្មោះ ក្រមងទីមួយ មិនែូចជាងឬនសមើនឹងក្រមងនងរន្មោះ ក្រមងទីពីរ នទ។

ររមាណវិ ធី ក្ធាតុ

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី រក្ធ្លែុដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = (200, 0.35, 20, 73)

ថ្លលឦក់ = 73

print(ថ្លលឦក់ in ករឣងណដឣ
ើ )

print(ថ្លលឦក់ not in ករឣងណដើឣ)

ល ក់ in ករឣងណដឣ
ថ្លឦ ើ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រក្ធ្លែុ នដើមបីពិនិែយនមើលថានែើ នៅក្នុង

ក្រមងនងរន្មោះ ក្រមងនដើម មានធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ ថ្ងលលក្់ តដរឬនទ។

លទធផលានមក្ពី របមាណ្ននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថានៅក្នុងក្រមងន ោះពិែជា

មានធ្លែុដូចនៅនឹងវែថុន្មោះ ថ្ងលលក្់ តមន។

ល ក់ not in ករឣងណដើឣ េឺ ជាបញ្


ថ្លឦ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរក្ធ្លែុនដើមបីពិនិែយនមើលថានែើនៅ

ក្នុងក្រមងនងរន្មោះ ក្រមងនដើម ពិែជាោមនធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ ថ្ងលលក្់ តដរឬ

នទ។ លទធផលានមក្ពីរបមាណ្ននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា របការតដលថានៅក្នុង

ក្រមងនងរន្មោះ ក្រមងនដើម ពិែជាមានធ្លែុដូចនៅនឹងវែថុន្មោះ ថ្ងលលក្់ េឺ ខ្ុស។


ទំព័រ 61

ររមាណវិ ធីអតតសញ្ញាណ

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី អែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = (200, 0.35, 20, 73)

ករឣងវីឡីឥ = (100, 1.5, 400, 3.14)

print(ករឣងវីឣួ ឤ is ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ is not ករឣងវីឡីឥ)

ករឣងវីឣួឤ is ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្នដើមបីពិនិែយនមើល

ថានែើក្រមងនងរន្មោះ ក្រមងទីមួយ និងក្រមងនងរន្មោះ ក្រមងទីពីរ ពិែជាក្រមងនងរតែមួយ

តមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា ក្រមង

នងរន្មោះ ក្រមងទីមួយ និងក្រមងនងរន្មោះ ក្រមងទីពីរ មិនតមនជាវែថុតែមួយន ោះនទ។

ករឣងវីឣួឤ is not ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដើមបីពិនិែយ

នមើលថានែើក្រមងនងរន្មោះ ក្រមងទីមួយ និងក្រមងនងរន្មោះ ក្រមងទីពីរ ពិែជាមិនតមនជា

ក្រមងនងរតែមួយតមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់

រាប់ថា ក្រមងនងរន្មោះ ក្រមងទីមួយ និងក្រមងនងរន្មោះ ក្រមងទីពីរ ពិែជាមិនតមនជាវែថុ

តែមួយតមន។

ររមាណវិ ធីបេខប ៀង

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី នលខ្នរៀងដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = (200, 0.35, 20, 73)

print(ករឣងណដើឣ[2])
ទំព័រ 62

ករឣងណដើឣ[2] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីចមលងយក្ធ្លែុមាននលខ្នរៀង

2 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម មក្នរបើ។

ររមាណវិ ធីកាត់ចម្លង

នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើរបមាណ្វ ិធី កាែ់ចមលងដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = (100, 10.5, "រាក់ចណំ ណញ", True, 200, "ថ្លលឦក់", False)

print(ករឣងណដឣ
ើ [1:7])

print(ករឣងណដឣ
ើ [1:])

print(ករឣងណដើឣ[:7])

print(ករឣងណដើឣ[:])

print(ករឣងណដឣ
ើ [1:7:2])

ករឣងណដើឣ[1:7] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួន

តដលមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ 6 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម មក្បនងកើែជា

ក្រមងនងរមួយងមីនទៀែ។

ករឣងណដឣ
ើ [1:] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួន

តដលមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ធ្លែុចុងនេបងអស់នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម

មក្បនងកើែជាក្រមងនងរមួយងមីនទៀែ។

ករឣងណដឣ
ើ [:7] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួន

តដលមាននលខ្នរៀងចាប់ពី ០ រហូែដល់ 6 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម មក្បនងកើែជា

ក្រមងនងរមួយងមីនទៀែ។
ទំព័រ 63

ករឣងណដើឣ[:] េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដាយចមលងយក្ធ្លែុទំងអស់តដល

មាននៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងនងរមួយងមីនទៀែ។

ករឣងណដើឣ[1:7:2] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដើមបីចមលងយក្ធ្លែុមួយចំនួន

នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងនងរមួយងមីនទៀែ។ ធ្លែុតដលរែូវចមលង

យក្ េឺជាធ្លែុតដលមាននលខ្នរៀងចាប់ ពី 1 រហូែដល់ 6 នដាយរ ំលងធ្លែុ ចំនួនមួយនចាល

រហូែ។

កម្មង អឈេរ

ក្រមងអនងរ (list) ស្រសនដៀងនឹងក្រមងនងរតដរ នរពាោះវាក្៍ជាក្រមងមួយតដលនៅក្នុងន ោះអាច

មានវែថុជានរចើនែនរមៀបជួរោនតមនលខ្នរៀងចាប់ពីសូនយនឡើងនៅ នបើនយើងរាប់ពីនដើមក្រមង

នឡើងនៅ និងមាននលខ្នរៀងចាប់ ពី -1 ចុោះមក្នបើ នយើងរាប់ ចាប់ពីចុងក្រមងចុោះមក្វ ិញ។

នដើមបីបនងកើែក្រមងអនងរ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = [100, 10.5, "ថ្លលឦក់", True]

print(ករឣងណដឣ
ើ )

ល ក់", True] េឺ ជាបញ្


ករឣងណដើឣ = [100, 10.5, "ថ្លឦ ា ែរមូវឲ្យបនងកើែក្រមងអនងរមួយមាន

ន្មោះថា ក្រមងនដើម ។

ក្រមងចរមរោះ 100 1.5 ថ្ងលលក្់ True


ទំព័រ 64

ររមាណវិ ធីបូក្បនត

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី បូក្បនតដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = [100, 10.5, "ថ្លលឦក់", True]

ករឣងវីឡីឥ = [200, False, 3.14]

print(ករឣងវីឣួ ឤ + ករឣងវីឡីឥ)

ករឣងវីឣួឤ + ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី បូក្បនតនដាយចមលងយក្ក្រមង

អនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីពីរ មក្ដាក្់ បនតោនបនងកើែជាក្រមង

អនងរងមីមួយនទៀែ។

ររមាណវិ ធីគុនបនត

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី េុនបនតដូចខាងនរកាមននោះ៖

ករឣងណដឣ
ើ = [100, 10.5, "ថ្លលឦក់", True]

print(ករឣងណដើឣ * 3)

ករឣងណដឣ
ើ * 3 េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី េុនបនត នដាយចមលងយក្ក្រមងអនងរន្មោះ

ក្រមងនដើម មក្េុននឹងនលខ្ 3 បនងកើែានជាក្រមងអនងរដូចោនចំនួនបី រូចដាក្់បនតោនបនងកើែជា

ក្រមងអនងរមួយងមីនទៀែ។

ររមាណវិ ធីតក្កវិទា

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី ែក្កវ ិទាដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = [100, 10.5, "ថ្លលឦក់", True]


ទំព័រ 65

ករឣងវណវ = [ ]

print(ករឣងណដឣ
ើ and ករឣងវណវ)

print(ករឣងណដើឣ or ករឣងវណវ)

print(not ករឣងណដើឣ)

print(not ករឣងវណវ)

ករឣងណដើឣ and ករឣងវណវ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើរបមាណ្

សញ្ដ and ។ នដាយក្រមងអនងរន្មោះ ក្រមងនដើម ជាក្រមងអនងរមានធ្លែុនៅក្នុងន ោះ

ដូចននោះវាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាក្រមង

អនងរន្មោះ ក្រមងទនទ នរពាោះវាជារបមាណ្អងគនៅខាងាត។


ករឣងណដើឣ or ករឣងវណវ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ

or ។ នដាយក្រមងអនងរន្មោះ ក្រមងនដើម ជាក្រមងអនងរមានធ្លែុនៅក្នុងន ោះ ដូចននោះវា

សមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺ ជាក្រមងអនងរន ោះ

តែមតង។

not ករឣងណដឣ
ើ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not ។

នដាយក្រមងអនងរន្មោះ ក្រមងនដើម ជាក្រមងអនងរមានធ្លែុនៅក្នុងន ោះ ដូចននោះវាសមមូល

នឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False ។

not ករឣងវណវ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not ។

នដាយក្រមងអនងរន្មោះ ក្រមងទនទ ជាក្រមងអនងរោមនធ្លែុនៅក្នុងន ោះ ដូចននោះវាសមមូល

នឹងែក្កវែថុ False តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True ។


ទំព័រ 66

ររមាណវិ ធីបររៀបបធៀប

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី នរបៀបនធៀបដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = [100, 10.5, 300, 0.33]

ករឣងវីឡីឥ = [200, 0.5, 50 ]

print(ករឣងវីឣួ ឤ == ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ != ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ > ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ < ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ >= ករឣងវីឡីឥ)

print(ករឣងវីឣួ ឤ <= ករឣងវីឡីឥ)

របមាណ្វ ិធី នរបៀបនធៀបរវាងក្រមងអនងរនផេងៗ េឺជារបមាណ្វ ិធីនរបៀបនធៀបតមរនបៀប

វច នុរក្ម។ នពាលេឺធ្លែុនៅខាងនឆវងនេបងអស់ថ្នក្រមងអនងរតដលជារបមាណ្អងគនិមួយៗ

រែូវយក្មក្នរបៀបនធៀបោន នហើយនបើធ្លែុ ណាធំឬែូចជាងនេ ក្រមងអនងរតដលមានធ្លែុន ោះ

រែូវចាែ់ ទុក្ថាជាក្រមងអនងរធំ ឬែូចជាងនេ។ តែនបើធ្លែុទំងពីរន ោះនសមើោន ធ្លែុខាងនឆវង

ប ទ ប់មក្នទៀែនឹងរែូវយក្មក្នរបៀបនធៀបជាបនតនៅនទៀែ នហើយនបើ ធ្លែុទំងអស់ដូចោន

ក្រមងអនងរទំងពីរន ោះនឹងរែូវចាែ់ទុក្ថាជាក្រមងអនងរដូចោន។

ករឣងវីឣួឤ == ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថា នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីពីរ ដូចោនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ន ោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ ខ្ុសពី ក្រមងអនងរន្មោះ ក្រមងទីពីរ ។


ទំព័រ 67

ករឣងវីឣួឤ != ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីពីរ ដូចោនតដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ន ោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ ខ្ុសពី ក្រមងអនងរន្មោះ ក្រមងទីពីរ ។

ករឣងវីឣួឤ > ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិរែនមើលថា

នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ ធំជាងក្រមងអនងរន្មោះ ក្រមងទីពីរ តដរឬនទ។ លទធផល

ានមក្ពីរបមាណ្វ ិធីន ោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងអនងរន្មោះ ក្រមងទីមួយ

មិនធំជាងក្រមងអនងរន្មោះ ក្រមងទីពីរ នទ។

ករឣងវីឣួឤ < ករឣងវីឡីឥ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិរែនមើលថា

នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ ែូចជាងក្រមងអនងរន្មោះ ក្រមងទីពីរ តដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ន ោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ ពិែជាែូចជាងក្រមងអនងរន្មោះ ក្រមងទីពីរ តមន។

ករឣងវីឣួឤ >= ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិរែនមើល

ថា នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ ធំជាងឬនសមើនឹងក្រមងអនងរន្មោះ ក្រមងទីពីរ តមនតដរ

ឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីន ោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងអនងរ

ន្មោះ ក្រមងទីមួយ មិនធំ ជាងឬនសមើនឹងក្រមងអនងរន្មោះ ក្រមងទីពីរ នទ។

ករឣងវីឣួឤ <= ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិរែនមើល

ថា នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ ែូចជាងឬនសមើនឹងក្រមងអនងរន្មោះ ក្រមងទីពីរ តដរឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ន ោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ ពិែជាែូចជាងឬនសមើនឹងក្រមងអនងរន្មោះ ក្រមងទីពីរ តមន។


ទំព័រ 68

ររមាណវិ ធី ក្ធាតុ

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី រក្ធ្លែុ ដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = [100, 1.5, "រាក់ចណំ ណញ", True]

ពាកយ = "រាក់ចណំ ណញ"

print(ពាកយ in ករឣងណដឣ
ើ )

print(ពាកយ not in ករឣងណដឣ


ើ )

ពាកយ in ករឣងណដឣ
ើ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រក្ធ្លែុ នដើមបីពិនិែយនមើលថានែើ នៅក្នុង

ក្រមងអនងរន្មោះ ក្រមងនដើម មានធ្លែុ ណាមួយដូចនៅនឹងវែថុន្មោះ ពាក្យ តដរឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះ េឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថានៅក្នុងក្រមងអនងរ

ន្មោះ ក្រមងនដើម ពិែជាមានធ្លែុណាមយយដូចនៅនឹងវែថុមានន្មោះថា ពាក្យ ន ោះតមន។

ពាកយ not in ករឣងណដឣ


ើ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរក្ធ្លែុនដើមបីពិនិែយនមើលថានែើនៅ

ក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម ោមនធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ ពាក្យ តមនតដរឬនទ

។ លទធផលានមក្ពី របមាណ្វ ិធីននោះ េឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា របការតដលថានៅ

ក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម ោមនធ្លែុដូចនៅនឹងវែថុមានន្មោះថា ពាក្យ េឺ ខ្ុស។

ររមាណវិ ធីអតតសញ្ញាណ

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី អែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

ករឣងវីឣួ ឤ = [100, 1.5, "រាក់ចណំ ណញ", True]

ករឣងវីឡីឥ = ករឣងវីឣួ ឤ

ករឣងវីសី = [100, 1.5, "រាក់ចណំ ណញ", True]

print(ករឣងវីឣួ ឤ is ករឣងវីឡីឥ)
ទំព័រ 69

print(ករឣងវីឣួ ឤ is ករឣងវីស)ី

print(ករឣងវីឣួ ឤ is not ករឣងវីស)ី

ករឣងវីឣួឤ is ករឣងវីឡីឥ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្នដើមបីពិនិែយនមើល

ថានែើក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីពីរ ជាវែថុតែមួយតមនឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីពីរ ពិែជាវែថុតែមួយតមន។

ករឣងវីឣួឤ is ករឣងវីសី េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដើមបីពិនិែយនមើលថា

នែើក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីបី ជាវែថុតែមួយតមនឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាក្រមងអនងរន្មោះ

ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីបី មិនតមនជាវែថុតែមួយនទ។

ករឣងវីឣួឤ is not ករឣងវីសី េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដើមបីពិនិែយ

នមើលថានែើក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីបី ពិែជាមិនតមន

ជាវែថុតែមួយតមនឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថា

ក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីបី ពិែជាមិនតមនជាវែថុតែមួយ

តមន។

នយើងសនងកែន ើញថាក្រមងអនងរន្មោះ ក្រមងទីមួយ និងក្រមងអនងរន្មោះ ក្រមងទីបី េឺជា

ក្រមងអនងរពីរដូចោន តែវាមិនតមនជាក្រមងអនងរតែមួយនទ។ ានន័យថាក្រមងអនងរ

ទំងន ោះ ជាក្រមងអនងរពី រតដលមានធ្លែុដូចោន តែវាជាវែថុពីរសថិែនៅក្នុងក្តនលងនផេងោន

នៅក្នុងសែិរបស់ក្ំពយូទ័រ។ នហើយជាទូនៅ វែថុពីរដូចោនមិនតមនជាវែថុតែមួយនទ។


ទំព័រ 70

ររមាណវិ ធីបេខប ៀង

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី នលខ្នរៀងដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = [100, 1.5, "នាឣ", True]

print(ករឣងណដើឣ[-2])

ករឣងណដឣ
ើ [-2] = "នាឣររកូ ឦ"

print(ករឣងណដឣ
ើ )

ករឣងណដឣ
ើ [-2] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីចមលងយក្ធ្លែុមាននលខ្នរៀង

-2 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម មក្នរបើការ។

ករឣងណដឣ
ើ [-2] = "នាឣររកូឦ" េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីជំនួសធ្លែុ

មាននលខ្នរៀង -2 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម ។

ដូចននោះនយើងន ើញថា ធ្លែុនៅក្នុងក្រមងអនងរអាចរែូវជំនួសនដាយវែថុនផេងៗនទៀែាន។ េឺ

លក្ខណ្ៈននោះនហើយតដលនធវើឲ្យក្រមងអនងរខ្ុសពី ក្រមងនងរនិងក្រមងអក្េរ។ ធ្លែុនៅក្នុង

ក្រមងនងរនិងក្រមងអក្េរមិនអាចរែូវនដាោះដូរឬជំនួសនដាយវែថុនផេងនទៀែាននឡើយ។

ការប៉ុនប៉ងនដាោះដូរធ្លែុ នៅក្នុងក្រមងទំងពីរននោះនឹងបណា
ត លឲ្យក្ំហុសនក្ើែមាននឡើង។

នៅក្នុងភាា Python រេប់វែថុទំងឡាយណាតដលមានធ្លែុអាចរែូវនដាោះដូរាន េឺ ជាវែថុ

អាចនដាោះដូរាន (mutable) និងរេប់វែថុទំងឡាយណាតដលមានធ្លែុមិនអាចរែូវនដាោះដូរាន

េឺជាវែថុ មិនអាចនដាោះដូរាន (immutable) ។ ដូចននោះ នលខ្ ែក្កវែថុ នមា ៈវែថុ ក្រមងអក្េរ និង

ក្រមងនងរ េឺជាវែថុមិនអាចនដាោះដូរាន ចំតណ្ក្ឯក្រមងអនងរវ ិញេឺ ជាវែថុអាចនដាោះដូរាន។


ទំព័រ 71

ររមាណវិ ធីកាត់ចម្លង

នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើរបមាណ្វ ិធី កាែ់ចមលងដូចខាងនរកាមននោះ៖

ើ = [100, 1.5, "នាឣ", True, 200, 3.5, "រាក់ចណំ ណញ", "ណោរោនាឣ"]


ករឣងណដឣ

print(ករឣងណដើឣ[1:7])

print(ករឣងណដឣ
ើ [1:])

print(ករឣងណដឣ
ើ [:7])

print(ករឣងណដើឣ[:])

print(ករឣងណដើឣ[1:7:2])

ករឣងណដើឣ[1:7] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួនពី

ក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងអនងរងមីមួយនទៀែ។ ធ្លែុតដលរែូវចមលង

យក្មក្ន ោះ េឺជាធ្លែុទំងឡាយណាតដលមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ 6 ។

ករឣងណដើឣ[1:] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួនពី

ក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងអនងរងមីមួយនទៀែ។ ធ្លែុតដលរែូវចមលង

យក្មក្ន ោះ េឺជាធ្លែុទំងឡាយណាតដលមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ធ្លែុនៅខាង

ចុងនេបំផុែ។

ករឣងណដឣ
ើ [:7] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួនពី

ក្នុងក្រមងអនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងអនងរងមីមួយនទៀែ។ ធ្លែុតដលរែូវចមលង

យក្មក្ន ោះ េឺជាធ្លែុទំងឡាយណាតដលមាននលខ្នរៀងចាប់ពី 0 រហូែដល់ 6 ។

ករឣងណដឣ
ើ [:] េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីកាែ់ចមលងនដាយចមលងយក្ធ្លែុទំងអស់ពីក្ុង

ក្រមងអនងរន្មោះ ក្រមងនដើម មក្បនងកើែជាក្រមងអនងរងមីមួយនទៀែ។


ទំព័រ 72

ករឣងណដើឣ[1:7:2] េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដាយចមលងយក្ធ្លែុមួយចំនួន

ពីក្ុងក្រមងអនងរន្
ន ម ោះ ក្រមងនដើម មក្បនងកើែជាក្រមងអនងរងមីមួយនទៀែ។ ធ្លែុ តដលរែូវ

ចមលងយក្មក្ន ោះ េឺជាធ្លែុទំងឡាយណាតដលមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ 6 នដាយ

រ ំលងធ្លែុចំនួនមួយនចាលរហូែ។

នដាយនហែុថាក្រមងអនងរជាវែថុអាចនដាោះដូរាន ដូចននោះនយើងអាចយក្វាមក្នធវើរបមាណ្វ ិធី

កាែ់ចមលងនដើមបីនដាោះដូរធ្លែុរបស់វាមួយចំនួនដូចខាងនរកាមននោះ៖

ករឣងណដើឣ = [100, 1.5, "នាឣ", True, 200, 3.5, "រាក់ចណំ ណញ", "ណោរោនាឣ"]

ករឣងណដើឣ[1:7] = [1, 2, 3, 4, 5, 6]

print(ករឣងណដឣ
ើ )

ករឣងណដើឣ[1:7] = [1, 2, 3, 4, 5, 6] េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី កាែ់ចមលងនដើមបីជំនួស

ធ្លែុមាននលខ្នរៀងចាប់ពី 1 រហូែដល់ 6 នដាយធ្លែុនៅក្នុងក្រមងអនងរ [1, 2, 3, 4, 5, 6] ។

វែថុតដលរែូវយក្នៅជំនួសធ្លែុនៅក្នុងក្រមងអនងរ អាចជាវែថុតដលជាធ្លែុថ្នក្រមងអនងរណា

មួយក្៍ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ើ = [100, 1.5, "នាឣ", True, 200, 3.5, "រាក់ចណំ ណញ", "ណោរោនាឣ"]


ករឣងណដឣ

ករឣងណដើឣ[1:7] = (1, 2, 3, 4, 5, 6)

print(ករឣងណដើឣ)

ករឣងណដើឣ[1:7] = (1, 2, 3, 4, 5, 6) េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្កាែ់ចមលងនដាយចមលងយក្

ធ្លែុទំងអស់នៅក្នុងក្រមងនងរមួយមក្ជំនួសធ្លែុ មួយចំនួននៅក្នុងក្រមងអនងរន្មោះ

ក្រមងនដើម ។
ទំព័រ 73

វចនានុម្កម

វច នុរក្ម (dictionary) េឺជាសមាសវែថុមួយតដលនៅក្នុងន ោះអាចមានវែថុជាប់ោនមួយេូជា

នរចើន។ នដើមបីបនងកើែវច នុរក្ម នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(រសឧរោិឥូស)

រសឧរិឥោ ូស = {"នាឣ":"កុសឦ", "ណោរនា


ោ ឣ":"កកឧ", "អាឤុ":35, "ណអវ":"រសរស"} េឺ ជាបញ្
ា ែរមូវ

ឲ្យបនងកើែវច នុរក្មមួយមានន្មោះថា របវែតិរប


ូ ។

ធ្លែុតដលជាប់ ោនពីរៗនៅក្នុងវច នុរក្មនៅថា ធ្លែុេូ (item) ។ ធ្លែុទំងន ោះសថិែនៅជាប់

ោននដាយារសញ្ដ : ។ នៅក្នុងធ្លែុេូ វែថុនៅខាងនឆវងរែូវនៅថា ក្ូននារ (key) និងវែថុនៅ

ខាងាតំេឺជា ែថ្មល (value) ។ ធ្លែុេូនៅក្នុងវច នុរក្មោមននលខ្នរៀងចាស់លាស់នទ េឺ វាអាច

រែូវផ្ទលស់បូរទី
ត តំងានរេប់នពលនវលា។ ម៉ាងនទៀែ ក្ូននារនៅក្នុងធ្លែុេូរែូវតែជាវែថុមិន

អាចនដាោះដូរាន តែចំនពាោះែថ្មលវ ិញអាចជាវែថុរបនភទណាក្៍ានតដរ។ ជាទូនៅ ក្ូននារមាន

ទីជាផ្ទលក្សរមាប់សមាគល់ែថ្មលនិមួយៗនៅក្នុងវច នុរក្ម នហើយេឺនដាយារក្ូននារននោះ

នហើយតដលែថ្មលអាចរែូវយក្នៅនរបើការនផេងៗនទៀែាន។

ររមាណវិ ធីបេខប ៀង

នយើងអាចយក្វច នុរក្មនផេងៗមក្នធវើរបមាណ្វ ិធីនលខ្នរៀងដូចខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(រសឧរោឥូិ ស["ណោរោនាឣ"])

print(រសឧរោិឥូស["អាឤុ "])
ទំព័រ 74

រសឧរិឥោ ូស["ណោរនា
ោ ឣ"] េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបីចមលងយក្ែថ្មលជាប់នឹង

ក្ូននារ "នោែត ម" នៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ មក្នរបើការ។

រសឧរឥិោ ូស["អាឤុ"] េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបីចមលងយក្ែថ្មលជាប់ នឹង

ក្ូននារ "អាយុ" នៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ មក្នរបើការ។

វច នុរក្មេឺ ជាវែថុអាចនដាោះដូរាន ានន័យថាែថ្មលនៅក្នុងវច នុរក្មអាចរែូវជំនួសនដាយ

វែថុនផេងៗនទៀែាន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

រសឧរោឥូិ ស["ណោរោនាឣ"] = "ឦឹឣ"

print(រសឧរោិឥូស)

រសឧរឥិោ ូស["ណោរនា
ោ ឣ"] = "ឦឹឣ" េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីជំនួសែថ្មល

ជាប់នឹងក្ូននារ "នោែត ម" នៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ នដាយក្រមងអក្េរន្មោះ

“លឹម” ។ ដូចននោះប ទ ប់ពីការនដាោះដូរននោះរួចមក្ ែថ្មលជាប់នឹងក្ូននារ “នោែត ម” នៅក្នុង

វច នុរក្មន្មោះ របវែតិរប
ូ េឺជាក្រមងអក្េរ “លឹម” ។

លក្ខណ្ៈពិនសសមួយនទៀែរបស់វច នុរក្ម េឺ នយើងអាចនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីបតនថម

ធ្លែុេូងីមចូលនៅក្នុងវច នុរក្ម។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

រសឧរោិឥូស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

រសឧរោឥូិ ស["វីឦំណៅ"] = "រាជាតចរកកឣពុជា"

print(រសឧរោឥូិ ស)
ទំព័រ 75

រសឧរិឥោ ូស["វីឦណំ ៅ"] = "រាជាតចរកកឣុ ជា"


ព ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀង
េឺ ជាបញ្

នដើមបីបតនថមធ្លែុេូងីមចូលនៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ ។ ធ្លែុេូងីមន ោះមានក្រមងអក្េរ

“ទីលំនៅ” ជាក្ូននារ និង “រាជាណាចរក្ក្មពុជា” ជាែថ្មល។

ររមាណវិ ធីតក្កវិទា

នយើងអាចយក្វច នុរក្មនផេងៗមក្នធវើរបមាណ្វ ិធីែក្កវ ិទាដូចខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

ឧចនាឞុ រកឣវណវ = { }

print(រសឧរោឥូិ ស and ឧចនាឞុ រកឣវណវ)

print(រសឧរោិឥូស or ឧចនាឞុ រកឣវណវ)

print(not រសឧរោឥូិ ស)

print(not ឧចនាឞុ រកឣវណវ)

រសឧរឥិោ ូស and ឧចនាឞុរកឣវណវ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្

សញ្ដ and ។ នដាយវច នុរក្មន្មោះ របវែតិរប


ូ ជាវច នុរក្មមានធ្លែុនៅក្នុងន ោះ ដូចននោះ

វាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាវច នុរក្ម

ន្មោះ វច នុរក្មទនទ នរពាោះវាជារបមាណ្អងគនៅខាងាត។


រសឧរឥិោ ូស or ឧចនាឞុរកឣវណវ េឺជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើរបមាណ្

សញ្ដ or ។ នដាយវច នុរក្មន្មោះ របវែតិរប


ូ ជាវច នុរក្មមានធ្លែុនៅក្នុងន ោះ ដូចននោះវា

សមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺ ជាវច នុរក្មននោះ

តែមតង។
ទំព័រ 76

not រសឧរិឥោ ូស េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទានដាយនរបើរបមាណ្សញ្ដ not ជាមួយ

នឹងវច នុរក្មន្មោះ របវែតិរប


ូ ។ នដាយវច នុរក្មននោះជាវច នុរក្មមានធ្លែុនៅក្នុងន ោះ

ដូចននោះវាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្ក

វែថុ False ។

not ឧចនាឞុរកឣវណវ េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not

ជាមួយនឹងវច នុរក្មន្មោះ វច នុរក្មទនទ ។ នដាយវច នុរក្មននោះជាវច នុរក្មោមន

ធ្លែុនៅក្នុងន ោះ ដូចននោះវាសមមូលនឹងែក្កវែថុ False តដល ំឲ្យលទធផលានមក្ពី របមាណ្

វ ិធី ននោះេឺជាែក្កវែថុ True ។

ររមាណវិ ធីបររៀបបធៀប

នយើងអាចយក្វច នុរក្មនផេងៗមក្នធវើរបមាណ្វ ិធីនរបៀបនធៀបដូចខាងនរកាមននោះ៖

រសឧរោឥូិ សណដឣ
ើ = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

រសឧរោឥូិ សចឣលង = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(រសឧរោិឥូសណដើឣ == រសឧរោិឥូសចឣលង)

print(រសឧរោឥូិ សណដើឣ != រសឧរោឥូិ សចឣលង)

រសឧរិឥោ ូសណដើឣ == រសឧរិឥោ ូសចឣង


ល េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយ

នមើលថានែើវច នុរក្មន្មោះ របវែតិរប


ូ នដើម ដូចនៅនឹងវច នុរក្មន្មោះ របវែតិរប
ូ ចមលង តដឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាវច នុរក្មទំងពីរ

ខាងនលើននោះពិែជាដូចោនតមន។
ទំព័រ 77

រសឧរិឥោ ូសណដើឣ != រសឧរិឥោ ូសចឣង


ល េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើវច នុរក្មន្មោះ របវែតិរប


ូ នដើម ខ្ុសពីវច នុរក្មន្មោះ របវែតិរប
ូ ចមលង តដឬនទ។

លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថារបការតដលថា

វច នុរក្មទំងពីរខាងនលើននោះខ្ុសោនេឺ ខ្ុស។

វច នុរក្មពីរដូចោនេឺជាវច នុរក្មតដលមានធ្លែុទំងអស់ដូចោន។ នហើយម៉ាងនទៀែ នៅ

ក្នុងការនធវើរបមាណ្វ ិធីនរបៀបនធៀបរវាងវច នុរក្មនផេងៗ នយើងមិនអាចនរបើ របមាណ្សញ្ដ

ណានរៅពី == និង != ននោះាននឡើយ។

ររមាណវិ ធីអតតសញ្ញាណ

នយើងអាចយក្វច នុរក្មនផេងៗមក្នធវើរបមាណ្វ ិធី អែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

រសឧរោឥូិ សណដឣ
ើ = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

រសឧរោិឥូសចឣលង = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(រសឧរោឥូិ សណដើឣ is រសឧរោឥូិ សចឣលង)

print(រសឧរោឥូិ សណដើឣ is not រសឧរោឥូិ សចឣលង)

រសឧរឥិោ ូសណដើឣ is រសឧរឥិ ោ ូសចឣង


ល េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្ នដើមបីពិនិែយ

នមើលថានែើវច នុរក្មន្មោះ របវែតិរប


ូ នដើម និងវច នុរក្មន្មោះ របវែតិរប
ូ ចមលង ជាវែថុតែមួយ

តមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា

វច នុរក្មទំងពីរននោះមិនតមនជាវែថុតែមួយនទ។

រសឧរឥិោ ូសណដើឣ is notរសឧរឥិោ ូសចឣង


ល េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្ នដើមបីពិនិែយ

នមើលថានែើវច នុរក្មន្មោះ របវែតិរប


ូ នដើម និងវច នុរក្មន្មោះ របវែតិរប
ូ ចមលង ពិែជា
ទំព័រ 78

មិនតមនជាវែថុតែមួយតមនតដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True

បញ្
ា ក្់ រាប់ថាវច នុរក្មទំងពីរននោះពិែជាមិនតមនជាវែថុតែមួយតមន។

ររមាណវិ ធី ក្ធាតុ

នយើងអាចយក្វច នុរក្មនផេងៗមក្នធវើរបមាណ្វ ិធីរក្ធ្លែុដូចខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "ណោរោនាឣ":"កកឧ", "អាឤុ ":35, "ណអវ":"រសរស"}

ពាកយ = "ណោរោនាឣ"

print(ពាកយ in រសឧរោិឥូស)

print(ពាកយ not in រសឧរោឥូិ ស)

ពាកយ in រសឧរិឥោ ូស េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រក្ធ្លែុនដើមបីពិនិែយនមើលថានែើនៅក្នុង

វច នុរក្មន្មោះ របវែតិរប
ូ មានក្ូននារណាមួយដូចនៅនឹងក្រមងអក្េរន្មោះ ពាក្យ តដរឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថានៅក្នុងវច នុរក្ម

ន្មោះ របវែតិរប
ូ ពិែជាមានក្ូននារដូចនៅនឹងវែថុន្មោះ ពាក្យ ន ោះតមន។

ពាកយ not in រសឧរឥិ ោ ូស េឺ ជាបញ្


ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី រក្ធ្លែុ នដើមបីពិនិែយនមើលថានែើ នៅក្នុង

វច នុរក្មន្មោះ របវែតិរប
ូ ពិែជាោមនក្ូននារណាមួយដូចនៅនឹងក្រមងអក្េរន្មោះ ពាក្យ

តដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់រាប់ថារបការតដលថា

នៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ ោមនក្ូននារណាមួយដូចនៅនឹងវែថុន្មោះ ពាក្យ ន ោះេឺ

ខ្ុស។

សាំណុាំ
ទំព័រ 79

សំណ្ុំ (set) េឺជាសមាសវែថុម៉ាងតដលនៅក្នុងន ោះអាចមានវែថុជានរចើននទៀែ។ នដើមបីបនងកើែ

សំណ្ុំ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

print(ថ្លៃកុ ងសា
ន ោ ហ៍ )

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុឝ", "រឡហសបរ"ិ៍ , "សុរក", "ណៅឥ"ិ៍ , "អាវិរយ"} េឺ ជាបញ្

ែរមូវឲ្យបនងកើែសំណ្ុំមួយមានន្មោះថា ថ្ងៃក្ុងសា
ន ត ហ៍ ។

វែថុនៅក្នុងសំណ្ុំេឺ ជាធ្លែុ របស់សំណ្ុំ។ ធ្លែុទំងន ោះោមននលខ្នរៀងចាស់លាស់នទ េឺ វាអាច

ផ្ទលស់បូរទី
ត តំងានរេប់នពលនវលា។ ម៉ាងនទៀែធ្លែុរបស់សំណ្ុំរែូវតែជាវែថុមិនអាចនដាោះដូរ

ាន។ ដូចននោះនយើងមិនអាចយក្ក្រមងអនងរនិងឬវច នុរក្មមក្នធវើជាធ្លែុរបស់សំណ្ុំាន

នឡើយ។ ផទុយនៅវ ិញ សំណ្ុំេឺ ជាវែថុអាចនដាោះដូរាន ានន័យថាធ្លែុនៅក្នុងសំណ្ុំអាចរែូវ

ជំនួសនដាយវែថុមិនអាចនដាោះដូរាននផេងៗនទៀែាន។ មួយវ ិញនទៀែធ្លែុនៅក្នុងសំណ្ុំមិន

អាចដូចោនាននឡើយ ធ្លែុតដលដូចោននឹងរែូវបរងួមមក្ឲ្យនៅតែមួយ។

ររមាណវិ ធីដក្ធាតុ

រសមាណឧឝ
ិ ដកធារ
ី ុ (differentiation) េឺជារបមាណ្វ ិធី ទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដដក្នដើមបីចមលងយក្សំណ្ុំណាមួយមក្ដក្ធ្លែុតដលដូចនៅនឹង

ធ្លែុថ្នសំណ្ុំណាមួយនទៀែនចញ ក្នុងនោលបំណ្ងបនងកើែសំណ្ុំងមីមួយនទៀែ។

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីដក្ធ្លែុដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ថ្លៃឈស់ = {"ណៅឥ ិ៍", "អាវិរយ"}


ទំព័រ 80

ថ្លៃណឝវកាឥ
ើ = ថ្លៃកុ ងសា
ន ោ ហ៍ - ថ្លៃឈស់

print(ថ្លៃណឝវកាឥ)

ថ្លណៃ ឝកាឥ
ើវ = ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ - ថ្លឈ
ៃ ស់ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីដក្ធ្លែុ នដាយចមលង

យក្សំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ មក្ដក្ធ្លែុ តដលដូចនៅនឹងធ្លែុ ថ្នសំណ្ុំន្មោះ ថ្ងៃឈប់

នដើមបីបនងកើែសំណ្ុំន្មោះ ថ្ងៃនធវើការ ងមីមួយនទៀែ។

ររមាណវិ ធីររជុំ

របមាណ្វ ិធីរបជុំ (union) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមានការនរបើរាស់

របមាណ្សញ្ដ | នដើមបីចមលងយក្ធ្លែុ នៅក្នុងសំណ្ុំពីរមក្របជុំ ោនបនងកើែានជាសំណ្ុំងមីមួយ

នទៀែ។

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីរបជុំដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ឆ្ន ំ = {2009, 2008}

ថ្លៃឆ្ន ំ = ថ្លៃកុ ងសា


ន ោ ហ៍ | ឆ្ន ំ

print(ថ្លៃឆ្ន ំ)

ៃ ន ំ = ថ្លក
ថ្លឆ្ ៃ ុ ងសា
ន ោ ហ៍ | ឆ្ន ំ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី របជុំ នដាយចមលងយក្ធ្លែុនៅ

ក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និ ងធ្លែុ នៅក្នុងសំណ្ុំន្មោះ ឆ្នំ មក្របជុំោនបនងកើែជាសំណ្ុំងមី

មួយនទៀែមានន្មោះថា ថ្ងៃឆ្នំ ។
ទំព័រ 81

នៅក្នុងរបមាណ្វ ិធី របជុំ ធ្លែុទំងអស់តដលរែូវានចមលងមក្ពីសំណ្ុំទំងពីររែូវានដាក្់

បញ្ូច លោននដើមបីបនងកើែជាសំណ្ុំងមីមួយនទៀែ តែចំនពាោះធ្លែុតដលដូចោន េឺរែូវនរជើសនរ ើសយក្តែ

មួយតែប៉ុនណាណោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ឆ្ន ំថ្លឈ
ៃ ស់ = {2009, 2008, "ណៅឥ ិ៍", "អាវិរយ"}

ថ្លៃឆ្ន ំ = ថ្លៃកុ ងសា


ន ោ ហ៍ | ឆ្ន ំថ្លឈ
ៃ ស់

print(ថ្លៃឆ្ន ំ)

ៃ ន ំ = ថ្លក
ថ្លឆ្ ៃ ុ ងសា
ន ោ ហ៍ | ឆ្នថ្ល
ំ ឈៃ ស់ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរបជុំ នដាយចមលងយក្

ធ្លែុនៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និងធ្លែុនៅក្នុងសំណ្ុំន្មោះ ឆ្នំថ្ងៃឈប់ មក្របជុំោន

បនងកើែជាសំណ្ុំមួយនទៀែមានន្មោះថា ថ្ងៃឆ្នំ ។

នៅក្នុងក្មមវ ិធីខាងនលើននោះ ធ្លែុ ទំងអស់នៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ និងសំណ្ុំន្មោះ

ឆ្នំថ្ងៃឈប់ រែូវានចមលងយក្មក្ផតំុោនបនងកើែជាសំណ្ុំមួយងមីនទៀែ។ ក្៍ប៉ុតនតចំនពាោះធ្លែុ “នៅរ”ិ៍

និង “អាទិែយ” តដលជាធ្លែុដូចោននៅក្នុងសំណ្ុំទំងពីរ េឺរែូវាននរជើសនរ ើសយក្តែមូយតែ

ប៉ុនណាណោះ។ ានន័យថា សំណ្ុំងមីន្មោះ ថ្ងៃឆ្នំ មានធ្លែុ “នៅរ”ិ៍ និងធ្លែុ “អាទិែយ” តែមួយ

ប៉ុនណាណោះ។

នដាយនហែុថានៅក្នុងសំណ្ុំមិនអាចមានធ្លែុដូចោនាន ក្តតននោះនធវើឲ្យសំណ្ុំមានលក្ខណ្ៈ

ខ្ុសពីក្រមងនផេងៗនទៀែ។ ធ្លែុនៅក្នុងក្រមងអាចជាវែថុរបនភទណាក្៍ ានតដរ នហើយធ្លែុ

ទំងន ោះអាចដូចៗោនជានរចើននទៀែផង។ ភាពខ្ុសោនរវាងធ្លែុទំងឡាយនៅក្នុងក្រមង េឺជា

នលខ្នរៀងរបស់វាតដលជាលំដាប់ថានក្់ សរមាប់សមាគល់ធ្លែុទំងន ោះនៅក្នុងក្រមង។ ផទុយមក្

វ ិញ ធ្លែុ នៅក្នុងសំណ្ុំោមននលខ្នរៀងឬលំដាប់ថានក្់ចាស់លាស់នទ នហើយទីតំងរបស់វាអាច

រែូវតរបរបួលានរេប់នពលនវលា។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ទំព័រ 82

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ", "ច័ឞ"ទ }

សាោហ៍ = ["ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ", "ច័ឞ"ទ ]

print(ថ្លៃកុ ងសា
ន ោ ហ៍ )

print(សាោហ៍ )

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុឝ", "រឡហសបរ"ិ៍ , "សុរក", "ណៅឥ"ិ៍ , "អាវិរយ", "ច័ឞ"ទ } េឺ ជា

បញ្
ា ែរមូវឲ្យបនងកើែសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ តដលមានធ្លែុជាក្រមងអក្េរ “ច័នទ” ចំនួនពីរ

នៅក្នុងន ោះ។ ក្៍ប៉ុតនតនៅនពលសំណ្ុំខាងនលើននោះរែូវានបនងកើែរួចនហើយ នយើងន ើញថាធ្លែុ

ទំងអស់នៅក្នុងន ោះរែូវានផ្ទលស់បូរទី
ត តំង នហើែធ្លែុតដលជាក្រមងអក្េរ “ច័នទ” មានតែមួយ

ប៉ុនណាណោះ។

សាោហ៍ = ["ច័ឞ"ទ , "អងាគឥ", "ឡុឝ", "រឡហសបរ"ិ៍ , "សុរក", "ណៅឥ"ិ៍ , "អាវិរយ", "ច័ឞ"ទ ] េឺ ជាបញ្

ែរមូវឲ្យបនងកើែក្រមងអនងរមួយមានន្មោះថា សាតហ៍ តដលមានធ្លែុជាក្រមងអក្េរ “ច័នទ”

ចំនួនពីរនៅក្នុងន ោះ។ ប ទ ប់ពីក្រមងអនងរខាងនលើននោះរែូវានបនងកើែរូចនហើយ នយើងន ើញ

ថាធ្លែុទំងអស់នៅក្នុងន ោះនៅតែរក្ាទីតំងនៅដតដល នហើយធ្លែុតដលជាក្រមងអក្េរ

“ច័នទ” នៅតែមានចំនួនពីរដតដល។

ររមាណវិ ធីររសព្វ

របមាណ្វ ិធីរបសពវ (intersection) េឺជារបមាណ្វ ិធីទំងឡាយណាតដលនៅក្នុងន ោះមាន

ការនរបើរាស់របមាណ្សញ្ដ & នដើមបីចមលងយក្ធ្លែុដូចោននៅក្នុងសំណ្ុំពីរមក្បនងកើែជា

សំណ្ុំងមីមួយនទៀែ។

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីរបសពវដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}
ទំព័រ 83

ឆ្ន ំថ្លឈ
ៃ ស់ = {2009, 2008, "ណៅឥ ិ៍", "អាវិរយ"}

ធារុ ដូចោន = ថ្លៃកុ ងសា


ន ោ ហ៍ & ឆ្ន ំថ្លឈ
ៃ ស់

print(ធារុ ដូចោន)

ធារុដូចោន = ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ & ឆ្នថ្ល
ំ ឈៃ ស់ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី របសពវ នដាយ

ចមលងយក្ធ្លែុ ដូចោននៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ និ ងនៅក្នុងសំណ្ុំន្មោះ ឆ្នំថ្ងៃឈប់

មក្បនងកើែជាសំណ្ុំមួយងមីនទៀែមានន្មោះថា ធ្លែុដូចោន ។

ររមាណវិ ធីររជុំធាតុខុសគ្នា

របមាណ្វ ិធីរបជុំធ្លែុខ្ុសោន (symmetric difference) េឺជារបមាណ្វ ិធីទំងឡាយណាតដល

នៅក្នុងន ោះមានការនរបើរាស់របមាណ្សញ្ដ ^ នដើមបីចមលងយក្ធ្លែុ ខ្ុសោននៅក្នុងសំណ្ុំពីរ

មក្បនងកើែជាសំណ្ុំងមីមួយនទៀែ។

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីរបជុំ ធ្លែុខ្ុសោនដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ឆ្ន ំថ្លឈ
ៃ ស់ = {2009, 2008, "ណៅឥ ិ៍", "អាវិរយ"}

ធារុ ខុសោន = ថ្លៃកុ ងសា


ន ោ ហ៍ ^ ឆ្ន ំថ្លឈ
ៃ ស់

print(ធារុ ខុសោន)

ធារុខុសោន = ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ ^ ឆ្នថ្ល
ំ ឈៃ ស់ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី របជុំធ្លែុខ្ុសោន

នដាយចមលងយក្ធ្លែុខ្ុសោននៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និ ងនៅក្នុងសំណ្ុំន្មោះ

ថ្ងៃឈប់ មក្បនងកើែជាសំណ្ុំងមីមួយនទៀែមានន្មោះថា ធ្លែុខ្ុសោន ។


ទំព័រ 84

ររមាណវិ ធីតក្កវិទា

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីែក្កវ ិទាដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

សំណុំវណវ = set()

print(ថ្លៃកុ ងសា
ន ោ ហ៍ and សំណុំវណវ)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ or សំណុំវណវ)

print(not ថ្លៃកុ ងសា


ន ោ ហ៍ )

print(not សំណុំវណវ)

ំ ុ ំ វណវ = set() េឺ ជាបញ្


សណ ា ែរមូវឲ្យបនងកើែសំណ្ុំទនទមួយមានន្មោះថា សំណ្ុំទនទ ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា នដើមបីបនងកើែសំណ្ុំទនទ នយើងរែូវសរនសរ set() េឺ នយើងមិនរែូវ

សរនសរថា {} ដូចននោះនឡើយ។ ការសរនសរ {} េឺ ជាការបនងកើែវច នុរក្មទនទ។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ and សណ
ំ ុ ំ វណវ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីែក្កវ ិទា នដាយនរបើរបមាណ្

សញ្ដ and ។ នដាយសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ ជាសំណ្ុំមានធ្លែុនៅក្នុងន ោះ ដូចននោះវា

សមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺ ជាសំណ្ុំន្មោះ

សំណ្ុំទនទ នរពាោះវាជារបមាណ្អងគនៅខាងាត។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ or សណ
ំ ុ ំ វណវ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទា នដាយនរបើរបមាណ្

សញ្ដ or ។ នដាយសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ ជាសំណ្ុំមានធ្លែុនៅក្នុងន ោះ ដូចននោះវា

សមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺ ជាសំណ្ុំននោះតែមតង


ទំព័រ 85

not ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not

ជាមួយនឹងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ។ នដាយសំណ្ុំននោះជាសំណ្ុំមានធ្លែុនៅក្នុងន ោះ

ដូចននោះវាសមមូលនឹងែក្កវែថុ True តដល ំឲ្យលទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ

False ។

ំ ុ ំ វណវ េឺជាបញ្
not សណ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី ែក្កវ ិទានដាយនរបើ របមាណ្សញ្ដ not

ជាមួយនឹងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ។ នដាយសំណ្ុំននោះជាសំណ្ុំទនទ ដូចននោះវាសមមូល

នឹងែក្កវែថុ False តដល ំឲ្យលទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True ។

ររមាណវិ ធីបររៀបបធៀប

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីនរបៀបនធៀបដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ថ្លៃសរមាក = {"ណៅឥ ិ៍", "អាវិរយ" }

print(ថ្លៃកុ ងសា
ន ោ ហ៍ == ថ្លៃសរមាក)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ != ថ្លៃសរមាក)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ > ថ្លៃសរមាក)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ < ថ្លៃសរមាក)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ >= ថ្លៃសរមាក)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ <= ថ្លៃសរមាក)

របមាណ្វ ិធី នរបៀបនធៀបរវាងសំណ្ុំនផេងៗពុំ តមនជារបមាណ្វ ិធី នរបៀបនធៀបតមរនបៀប

វច នុរក្មនឡើយ។ ផទុយនៅវ ិញ របមាណ្វ ិធី នរបៀបនធៀបរវាងសំណ្ុំនផេងៗ េឺជារបមាណ្វ ិធី

ម៉ាងដូចែនៅននោះ៖
ទំព័រ 86

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ == ថ្លស
ៃ រមាក េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើ មបីពិនិែយនមើល

ថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ មានចំនួនធ្លែុ នសមើោននិងដូច

ោនទំងអស់តដរឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថា

សំណ្ុំទំងពីរននោះោមនធ្លែុមានចំនួននសមើោននិងដូចោនទំងអស់ន ោះនទ។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ != ថ្លស
ៃ រមាក េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ មានចំនួនធ្លែុ ខ្ុសោននិងឬ

ខ្ុសោនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាសំណ្ុំ

ទំងពីរននោះពិែជាមានធ្លែុមានចំនួនខ្ុសោននិងឬមានធ្លែុខ្ុសោនតមន។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ > ថ្លស
ៃ រមាក េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជា សំណ្ុំនម (superset) ថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ តមនតដរ

ឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថាសំណ្ុំន្មោះ

ថ្ងៃក្ុងសា
ន ត ហ៍ ពិែជាសំណ្ុំនមថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ តមន។

សំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជាសំណ្ុំនមថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ មានន័យថាសំណ្ុំ

ន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ មានធ្លែុនរចើនជាងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ នហើយធ្លែុទំងអស់ថ្ន

សំណ្ុំន្មោះ ថ្ងៃសរមាក្ មាននៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ ។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ < ថ្លស
ៃ រមាក េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើលថា

នែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជា សំណ្ុំរង (subset) ថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ តមនតដរឬ

នទ។ លទធផលានមក្ពីរបមាណ្វ ិធី ននោះេឺជាែក្កវែថុ False បញ្


ា ក្់រាប់ថាសំណ្ុំន្មោះ

ថ្ងៃក្ុងសា
ន ត ហ៍ មិ នតមនជាសំណ្ុំរងថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ នទ។
ទំព័រ 87

សំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជាសំណ្ុំរងថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ មានន័យថាសំណ្ុំ

ន្មោះ ថ្ងៃសរមាក្ មានធ្លែុនរចើនជាងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍ នហើយធ្លែុទំងអស់ថ្ន

សំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ មាននៅក្នុងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ >= ថ្លស
ៃ រមាក េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជាសំណ្ុំនមថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ឬដូចនៅនឹងសំណ្ុំ

ន្មោះ ថ្ងៃសរមាក្ ន ោះតមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True

បញ្
ា ក្់ រាប់ថាសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ពិ ែជាសំណ្ុំនមថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ឬដូច

នៅនឹងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ន ោះតមន។

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ <= ថ្លស
ៃ រមាក េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នរបៀបនធៀបនដើមបីពិនិែយនមើល

ថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ជាសំណ្ុំរងថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ឬដូចនៅនឹងសំណ្ុំ

ន្មោះ ថ្ងៃសរមាក្ ន ោះតមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False

បញ្
ា ក្់ រាប់ថាសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ មិ នតមនជាសំណ្ុំរងថ្នសំណ្ុំន្មោះ ថ្ងៃសរមាក្

ឬដូចនៅនឹងសំណ្ុំន្មោះ ថ្ងៃសរមាក្ ន ោះនទ។

ររមាណវិ ធី ក្ធាតុ

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីរក្ធ្លែុដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ថ្លៃរកហឣ = "អាវិរយ"

print(ថ្លៃរកហឣ in ថ្លៃកុ ងសា


ន ោ ហ៍ )

print(ថ្លៃរកហឣ not in ថ្លៃកុ ងសា


ន ោ ហ៍ )
ទំព័រ 88

ថ្លរៃ កហឣ in ថ្លក


ៃ ុ ងសា
ន ោ ហ៍ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរក្ធ្លែុនដើមបីពនិែយនមើលថានែើ

នៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ មានធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ ថ្ងៃរក្ហម តដរ

ឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់ រាប់ថានៅក្នុងសំណ្ុំ

ន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ពិែជាមានធ្លែុ ណាមួយដូចនៅនឹងវែថុន្មោះ ថ្ងៃរក្ហម ន ោះតមន។

ថ្លរៃ កហឣ not in ថ្លក


ៃ ុ ងសា
ន ោ ហ៍ េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីរក្ធ្លែុនដើមបីពនិែយនមើលថា

នែើនៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ពិ ែជាោមនធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ

ថ្ងៃរក្ហម តដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺជាែក្កវែថុ False បញ្


ា ក្់ រាប់

ថារបការតដលថានៅក្នុងសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ោមនធ្លែុណាមួយដូចនៅនឹងវែថុន្មោះ

ថ្ងៃរក្ហម ន ោះេឺ ខ្ុស។

ររមាណវិ ធីអតតសញ្ញាណ

នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើរបមាណ្វ ិធីអែតសញ្ដណ្ដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

ថ្លៃទ ំងរា ំឡីឥ = {"ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ"}

print(ថ្លៃកុ ងសា
ន ោ ហ៍ is ថ្លៃទ ំងរា ំឡីឥ)

print(ថ្លៃកុ ងសា
ន ោ ហ៍ is not ថ្លៃទ ំងរា ំឡីឥ)

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ is ថ្លទ ំ
ៃ ងរា ំ ី ឥ េឺ ជាបញ្
ឡ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី អែតសញ្ដណ្នដើមបីពិនិែយ

នមើលថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និ ងសំណ្ុំន្មោះ ថ្ងៃទំងរាំពីរ ជាវែថុតែមួយតមនតដរ

ឬនទ។ លទធផលានមក្ពី របមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ False បញ្


ា ក្់ រាប់ថាសំណ្ុំទំងពីរន ោះ

មិនតមនជាវែថុតែមួយនទ េឺ វារោន់តែជាវែថុដូចោនតែប៉ុនណាណោះ។
ទំព័រ 89

ថ្លក
ៃ ុ ងសា
ន ោ ហ៍ is not ថ្លទ ំ
ៃ ងរា ំ ី ឥ េឺ ជាបញ្
ឡ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីអែតសញ្ដណ្នដើមបី

ពិនិែយនមើលថានែើសំណ្ុំន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ និងសំណ្ុំន្មោះ ថ្ងៃទំងរាំពីរ ពិែជាមិនតមន

ជាវែថុតែមួយតមនតដរឬនទ។ លទធផលានមក្ពីរបមាណ្វ ិធីននោះេឺ ជាែក្កវែថុ True បញ្


ា ក្់រាប់

ថាសំណ្ុំទំងពីរន ោះពិែជាមិនតមនជាវែថុតែមួយតមន។

សោស វត្ថុ ននសោស វត្ថុ

សមាសវែថុទំងឡាយអាចមានធ្លែុជាសមាសវែថុនផេងនទៀែាន។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = ("ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ")

ឧមាររ
ិ = ["សណតោ ឤ", "វវឹង", "កំឡស់"]

រសឧរោិឥូស = {"នាឣ":"កុ សឦ", "នាឣររកូ ឦ":"កកឧ", "អាឤុ ":35, "វីឦំណៅ":"កឣពុជា"}

សំណុំរួ ណឦខ = {100, 1.754, 16}

ករឣងណលឥចរឣរោះ = (ថ្លៃកុ ងសា


ន ោ ហ៍, ឧមាររ,
ិ រសឧរោឥូិ ស, សំណុំរួ ណឦខ)

ករឣងអណលឥចរឣរោះ = [ថ្លៃកុ ងសា


ន ោ ហ៍ , ឧមាររ,
ិ រសឧរោឥូិ ស, សំណុំរួ ណឦខ]

ឧចនាឞុ រកឣចរឣរោះ = {1:ថ្លៃកុ ងសា


ន ោ ហ៍ , 2:ឧមាររ,
ិ 3:រសឧរោិឥូស, 4:សំណុំរួ ណឦខ}

សំណុំចរឣរោះ = {ថ្លៃកុ ងសា


ន ោ ហ៍ }

print(ករឣងណលឥចរឣរោះ)

print(ករឣងអណលឥចរឣរោះ)

print(ឧចនាឞុ រកឣចរឣរោះ)

print(សំណុំចរឣរោះ)
ទំព័រ 90

ករឣងណលឥចរឣរោះ = (ថ្លក
ៃ ុ ងសា
ន ោ ហ៍, ឧមាររ
ិ ំ ុ ំ រួណឦខ) េឺ ជាបញ្
, រសឧរិឥោ ូស, សណ ា ែរមូវឲ្យបនងកើែ

ក្រមងនងរមួយមានន្មោះថា ក្រមងចរមរោះ តដលមានធ្លែុជាក្រមងនងរន្មោះ ថ្ងៃក្ុងសា


ន ត ហ៍

ក្រមងអនងរន្មោះ វ ិមារែ វច នុរក្មន្មោះ របវែតិរប


ូ និងសំណ្ុំន្មោះ សំណ្ុំែួនលខ្ ។

ករឣងអណលឥចរឣរោះ = [ថ្លក
ៃ ុ ងសា
ន ោ ហ៍, ឧមាររ
ិ ំ ុ ំ រួណឦខ] េឺ ជាបញ្
, រសឧរិឥោ ូស, សណ ា ែរមូវឲ្យ

បនងកើែក្រមងអនងរន្មោះ ក្រមងអនងរចរមរោះ មួយតដលមានធ្លែុជាក្រមងនងរន្មោះ

ថ្ងៃក្ុងសា
ន ត ហ៍ ក្រមងអនងរន្មោះ វ ិមារែ វច នុរក្មន្មោះ របវែតិរប
ូ និងសំណ្ុំន្មោះ

សំណ្ុំែួនលខ្ ។

ឧចនាឞុរកឣចរឣរោះ = {1:ថ្លក
ៃ ុ ងសា
ន ោ ហ៍, 2:ឧមាររ
ិ ំ ុ ំ រួណឦខ} េឺ ជាបញ្
, 3:រសឧរឥិ ោ ូស, 4:សណ ា

ែរមូវឲ្បនងកើែវច នុរក្មន្មោះ វច នុរក្មចរមរោះ មួយតដលនៅក្នុងន ោះមានក្រមងនងរ

ន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ក្រមងអនងរន្មោះ វ ិមារែ វច នុ រក្មន្មោះ របវែតិរប
ូ និងសំណ្ុំ

ន្មោះ សំណ្ុំែួនលខ្ ជាែថ្មលជាប់នឹងក្ូននារ 1, 2, 3, 4 នរៀងោន។

ំ ុ ំ ចរឣរោះ = {ថ្លក
សណ ៃ ុ ងសា
ន ោ ហ៍} េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែសំណ្ុំន្មោះ សំណ្ុំចរមរោះ មួយតដល

មានធ្លែុជាក្រមងនងរន្មោះ ថ្ងៃក្ុងសា
ន ត ហ៍ ។

នយើងេួររ ំលឹក្នឡើងវ ិញថា ធ្លែុនៅក្នុងសំណ្ុំមិនអាចជាវែថុអាចនដាោះដូ រាននឡើយ ដូចននោះ

នរៅតែក្រមងនងរនិងឬក្រមងអក្េរ នយើងមិនអាចយក្សមាសវែថុណានផេងមក្នធវើជាធ្លែុថ្ន

សំណ្ុំាននឡើយ។

ក្នុងក្រណ្ីសមាសវែថុមួយមានធ្លែុជាសមាសវវែថុនផេងៗនទៀែ នដើមបីចមលងយក្ធ្លែុឬែថ្មលថ្ន

សមាសវែថុតដលជាធ្លែុយក្មក្នរបើ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

ថ្លៃកុ ងសា
ន ោ ហ៍ = ("ច័ឞ"ទ , "អងាគឥ", "ឡុ ឝ", "រឡហសបរិ៍", "សុ រក", "ណៅឥ ិ៍", "អាវិរយ")
ទំព័រ 91

ឧមាររ
ិ = ["សណតោ ឤ", "វវឹង", "កំឡស់"]

រសឧរោឥូិ ស = {"នាឣ":"កុ សឦ", "នាឣររកូ ឦ":"កកឧ", "អាឤុ ":35, "វីឦំណៅ":"កឣពុជា"}

សំណុំរួ ណឦខ = {100, 1.754, 16}

ករឣងណលឥចរឣរោះ = (ថ្លៃកុ ងសា


ន ោ ហ៍, ឧមាររ,
ិ រសឧរោឥូិ ស, សំណុំរួ ណឦខ)

ករឣងអណលឥចរឣរោះ = [ថ្លៃកុ ងសា


ន ោ ហ៍ , ឧមាររ,
ិ រសឧរោឥូិ ស, សំណុំរួ ណឦខ]

ឧចនាឞុ រកឣចរឣរោះ = {1:ថ្លៃកុ ងសា


ន ោ ហ៍ , 2:ឧមាររ,
ិ 3:រសឧរោឥូិ ស, 4:សំណុំរួ ណឦខ}

print(ករឣងណលឥចរឣរោះ[1][-1])

print(ករឣងអណលឥចរឣរោះ[2]["នាឣររកូ ឦ"])

print(ឧចនាឞុ រកឣចរឣរោះ[3]["អាឤុ "])

print(ករឣងណលឥចរឣរោះ[1][-1]) េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបីចមលងយក្ធ្លែុ

មាននលខ្នរៀង -1 នៅក្នុងក្រមងអនងរន្មោះ វ ិមារែ តដលជាធ្លែុមាននលខ្នរៀង 1 នៅក្នុង

ក្រមងនងរន្មោះ ក្រមងនងរចរមរោះ ។

print(ករឣងអណលឥចរឣរោះ[2]["នាឣររកូឦ"]) េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី នលខ្នរៀងនដើមបី

ចមលងយក្ែថ្មលជាប់នឹងក្ូននារ “រែក្ូល” នៅក្នុងវច នុរក្មន្មោះ របវែថិរប


ូ តដលជាធ្លែុ

មាននលខ្នរៀង 2 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងអនងរចរមរោះ ។

print(ឧចនាឞុរកឣចរឣរោះ[3]["អាឤុ"]) េឺ ជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងនដើមបីចមលង

យក្ែថ្មលជាប់ នឹងក្ូននារ “អាយុ” នៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ តដលជាែថ្មលជាប់នឹង

ក្ូននារ 3 នៅក្នុងវច នុរក្មន្មោះ វច នុរក្មចរមរោះ ។


ទំព័រ 92

ររដេទននបញ្ជ

នៅក្នុងភាា Python មានបញ្


ា ជានរចើនរបនភទតដលនយើងអាចយក្មក្នរបើសរមាប់សរនសរ

ក្មមវ ិធីែរមូវឲ្យក្ំ ពយូទ័រយក្នៅអនុវែតនដើមបីនដាោះស្រាយបញ្


ា នផេងៗ។ បញ្
ា ទំងន ោះមាន៖

បញ្ជ
ា ចត្់ត ាំង

បញ្
ា ចាែ់តំង (assignment statement) េឺជាសញ្ដ = តដលជាបញ្
ា ែរមូវឲ្ភាាប់ន្មោះណា

មួយនៅនឹងវែថុណាមួយ។ នពាលេឺ ជាបញ្


ា ចាែ់តំងន្មោះណាមួយឲ្យដំណាងឲ្យវែថុណាមួយ

។ នយើងេួររ ំលឹក្នឡើងវ ិញថា នដើមបីចាែ់តំងន្មោះណាមួយឲ្យដំណាងឲ្យវែថុណាមួយ

នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

រាក់ចណំ ណញ = 1000

print(រាក់ចណំ ណញ)

រាក់ចណំ ណញ = 1000 េឺ ជាការចាែ់តំងន្មោះ រាក្់ចំនណ្ញ ឲ្យដំណាងឲ្យវែថុតដលជា

នលខ្ 1000 ។

នរៅពីការចាែ់តំងន្មោះមួយឲ្យដំណាងឲ្យវែថុមួយ នយើងអាចចាែ់តំងន្មោះជានរចើនឲ្យ

ដំណាងឲ្យវែថុនផេងៗោននដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ថ្លលឦក់, ថ្លលវិញ, រាក់ចណំ ណញ = 1000, 900, 100

print(ថ្លលឦក់)

print(ថ្លលវិញ)

print(រាក់ចណំ ណញ)
ទំព័រ 93

ល ក,់ ថ្លវ
ថ្លឦ ល ិ ញ, រាក់ចណំ ណញ = 1000, 900, 100 េឺជាការចាែ់តំងន្មោះ ថ្ងលលក្់ , ថ្ងលទិញ,

រាក្់ចំនណ្ញ ឲ្យដំណាងឲ្យវែថុនលខ្ 1000, 900, 100 នរៀងោន។

នយើងានដឹងរូចមក្នហើយថា ការសរនសរ ថ្ងលលក្់, ថ្ងលទិញ, រាក្់ចំនណ្ញ និងការសរនសរ

1000, 900, 100 េឺជាការបនងកើែក្រមងនងរ (ថ្ងលលក្់, ថ្ងលទិញ, រាក្់ចំនណ្ញ) និងក្រមងនងរ

(1000, 900, 100) ។ ដូចននោះការសរនសរ ថ្ងលលក្់, ថ្ងលទិញ, រាក្់ចំនណ្ញ = 1000, 900, 100

សមមូលនឹង (ថ្ងលលក្់ , ថ្ងលទិញ, រាក្់ចំនណ្ញ) = (1000, 900, 100) ។ សរុបមក្ការសរនសរ៖

ថ្ងលលក្់ , ថ្ងលទិញ, រាក្់ចំនណ្ញ = 1000, 900, 100 េឺជាការចាែ់តំងន្មោះនៅក្នុងក្រមង

នងរមួយឲ្យដំណាងឲ្យវែថុនៅក្នុងក្រមងនងរមួយនទៀែ។

ដូចោនតដរ នរៅពី ក្រមងនងរ នយើងអាចចាែ់តំងន្មោះនៅក្នុងក្រមងណាមួយក្៍ ានតដរឲ្យ

ដំណាងឲ្យវែថុនៅក្នុងក្រមងណាមួយនទៀែក្៍ ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

[ថ្លលឦក់, ថ្លលវិញ, រាក់ចណំ ណញ] = [1000, 900, 100]

(សណតោ ឤ, វវឹង, កំឡស់) = [30, 15, 10]

[នាឣររកូ ឦ, នាឣ, អាឤុ ] = ("កុ សឦ", "កកឧ", 35)

print(ថ្លលឦក់)

print(វវឹង)

print(នាឣររកូ ឦ)

ល ក,់ ថ្លវ
[ថ្លឦ ល ិ ញ, រាក់ចណំ ណញ] = [1000, 900, 100] េឺជាការចាែ់តំងន្មោះនៅក្នុងក្រមង

ល ក,់ ថ្លវ
អនងរ [ថ្លឦ ល ិញ, រាក់ចណំ ណញ] ឲ្យដំណាងឲ្យវែថុនៅក្នុងក្រមងអនងរ [1000, 900,

100] នរៀងោន។
ទំព័រ 94

(សណត ំ ស់) = [30, 15, 10] េឺជាការចាែ់តំងន្មោះនៅក្នុងក្រមងនងរ


ោ ឤ, វវឹង, កឡ

(សណត ំ ស់) ឲ្យដំណាងឲ្យវែថុនៅក្នុងក្រមងអនងរ [30, 15, 10] នរៀងោន។


ោ ឤ, វវឹង, កឡ

[នាឣររកូឦ, នាឣ, អាឤុ] = ("កុសឦ", "កកឧ", 35) េឺជាការចាែ់តំងន្មោះនៅក្នុងក្រមង

អនងរ [នាឣររកូឦ, នាឣ, អាឤុ] ឲ្យដំណាងឲ្យវែថុនៅក្នុងក្រមងនងរ ("កុសឦ", "កកឧ", 35) នរៀង

ោន។

នលើសពី ននោះនទៀែ នយើងអាចនរបើ បញ្


ា ចាែ់តំងសរមាប់បូរន្
ត ម ោះរបស់វែថុពីរនៅវ ិញនៅមក្

នដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

សណតោ ឤ = 173.5

រសកឧង = 200

សណតោ ឤ, រសកឧង = រសកឧង, សណតោ ឤ

print(សណតោ ឤ)

print(រសកឧង)

សណតោ ឤ, រសកឧង = រសកឧង, សណតោ ឤ េឺ ជាការនរបើបញ្


ា ចាែ់តំងនដើមបីបូរន្
ត ម ោះរបស់វែថុ

ត យ និងវែថុន្មោះ របតវង នៅវ ិញនៅមក្។


ន្មោះ បនណា

នរៅពីការចាែ់តំងន្មោះមួយឲ្យដំណាងឲ្យវែថុមួយ នយើងអាចចាែ់តំងន្មោះជានរចើនឲ្យ

ដំណាងឲ្យវែថុតែមួយនដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

កថ្រឣ = រាក់ឥកាឞ = រាក់ចណំ ណញ = 1000

print(កថ្រឣ)

print(រាក់ឥកាឞ)

print(រាក់ចណំ ណញ)
ទំព័រ 95

កថ្រឣ = រាក់ឥកាឞ = រាក់ចណំ ណញ = 1000 េឺជាការចាែ់តំងន្មោះ ក្ថ្រម រាក្់រក្ាន

និង រាក្់ចំនណ្ញ ឲ្យដំណាងឲ្យវែថុតែមួយដូចោនតដលជានលខ្ 1000 ។

ក្ថ្រម

រាក្់រក្ាន 1000

រាក្់ចំនណ្ញ

សវ័យររមាណវិ ធី

នៅក្នុងភាា Python នយើងអាចនធវើរបមាណ្វ ិធីបូក្ម៉ាងដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលឦក់ = ថ្លលឦក់ + 1

print(ថ្លលឦក់)

ល ក់ = ថ្លឦ
ថ្លឦ ល ក់ + 1 េឺ ជាបញ្
ា ែរមូវឲ្យចមលងយក្វែថុន្មោះ ថ្ងលលក្់ មក្បូក្នឹង 1 បនងកើែជា

វែថុងមីមួយនទៀែ រួចចាែ់តំងន្មោះ ថ្ងលលក្់ ដតដលឲ្យដំណាងឲ្យវែថុងមីន ោះវ ិញ។ ជាលទធផល

វែថុចាស់តដលជានលខ្ 1000 រែូវាែ់ ន្មោះនិងរែូវលុបនចញពីក្ុងសែិ


ន របស់ក្ំពយូទ័ រនដាយ

យនតការនាសសមាអែ។

ថ្ងលលក្់ 1000

1001
ទំព័រ 96

ទនងវើដូចខាងនលើននោះនៅថា សវ័យរបមាណ្វ ិធី (augmented assignment) តដលអាចរែូវ

សរនសរតមរនបៀបម៉ាងនទៀែដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលឦក់ += 1

print(ថ្លលឦក់)

ល ក់ += 1 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីតដលធំ
ា ែរមូវឲ្យនធវើស័យ

ជាងមុន 1 ។

សរុបមក្នយើងន វ របមាណ្វ ិធី ដូចខាងនលើននោះមិនតមនជាការយក្វែថុចាស់


ើញថា ការនធវើស័យ

មក្តក្តរបនទ វាេឺ ជាការយក្វែថុចាស់មក្ដូរងមី។ នហើយវែថុចាស់រែូវលុបនចាលនបើ សិនជាោមន

ន្មោះណាមួយនៅជាប់នឹងវានទន ោះ។ នយើងរែូវនធវើការក្ែ់សំោល់ថា ការយក្វែថុមក្តក្តរប

និងការយក្វែថុមក្ដូរងមី េឺ ជានរឿងពីរខ្ុសោន។ ការយក្វែថុមក្តក្តរបានន័យថា េឺជាការយក្

វែថុដតដលមក្នដាោះដូរធ្លែុរបស់វា ចំតណ្ក្ឯការយក្វែថុមក្ដូរងមី េឺជាការយក្វែថុទំងមូលមក្

បតូរជាមួយនឹងវែថុងមីនផេងនទៀែ។ ម៉ាងនទៀែ ការដូរងមីេឺរែូវនធវើនឡើងនដាយយក្ន្មោះរបស់វែថុ

វ របមាណ្វ ិធីក្នលងមក្ េឺជាការយក្វែថុមក្ដូរងមី


ចាស់នៅភាាប់ នឹងវែថុងមី។ ដូចននោះការនធវើស័យ

មិនតមនជាការយក្វែថុដតដលមក្តក្តរបនឡើយ។

វ របមាណ្វ ិធី នដាយនរបើរបមាណ្សញ្ដបូក្ (+) នយើងអាចនធវើស័យ


នរៅពីការនធវើស័យ វ របមាណ្វ ិធី

នដាយនរបើរបមាណ្សញ្ដនផេងៗនទៀែដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000
ទំព័រ 97

ថ្លលឦក់ += 2

ថ្លលឦក់ -= 2

ថ្លលឦក់ *= 2

ថ្លលឦក់ /= 2

ថ្លលឦក់ //= 2

ថ្លលឦក់ %= 2

ថ្លលឦក់ **= 2

ល ក់ += 2 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីធំជាង
ា ែរមូវឲ្យនធវើស័យ

មុន 2 ។

ល ក់ -= 2 េឺជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីែូចជាង
ា ែរមូវឲ្យនធវើស័យ

មុន 2 ។

ល ក់ *= 2 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីធំជាងមុន
ា ែរមូវឲ្យនធវើស័យ

2 ដង។

ល ក់ /= 2 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីែូចជាង
ា ែរមូវឲ្យនធវើស័យ

មុន 2 ដង។

ល ក់ //= 2 េឺជាបញ្
ថ្លឦ វ របមាណ្វ ិធី នដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីតដលជា
ា ែរមូវឲ្យនធវើស័យ

លទធផលានមក្ពី ការនធវើរបមាណ្វ ិធីតចក្បនថយរវាងវែថុន្មោះ ថ្ងលលក្់ ចាស់និងនលខ្ 2 ។

ល ក់ %= 2 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធីនដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីតដលជា
ា ែរមូវឲ្យនធវើស័យ

លទធផលានមក្ពី ការនធវើរបមាណ្វ ិធីតចក្យក្សំណ្ល់រវាងវែថុន្មោះ ថ្ងលលក្់ ចាស់និងនលខ្

2។
ទំព័រ 98

ល ក់ **= 2 េឺ ជាបញ្
ថ្លឦ វ របមាណ្វ ិធីនដើមបីបនងកើែវែថុន្មោះ ថ្ងលលក្់ ងមីតដលជា
ា ែរមូវឲ្យនធវើស័យ

លទធផលានមក្ពី ការនធវើរបមាណ្វ ិធីស័យ


វ េុនរវាងវែថុន្មោះ ថ្ងលលក្់ ចាស់និងនលខ្ 2 ។

វ របមាណ្វ ិធី ដូចខាងនរកាមននោះ៖


ដូចោនតដរ នយើងអាចយក្ក្រមងអក្េរនផេងៗមក្នធវើស័យ

ឃ្លលណដើឣ = "រក់ៗ"

ឃ្លលណដឣ ់
ើ += "ណឡញសំឡង\t"

print(ឃ្លលណដឣ
ើ )

ឃ្លលណដើឣ *= 3

print(ឃ្លលណដើឣ)

ំ ង់\t" េឺ ជាបញ្
ឃ្លលណដើឣ += "ណឡញសឡ វ របមាណ្វ ិធី នដើមបីបនងកើែក្រមងអក្េរ
ា ែរមូវឲ្យនធវើស័យ

ន្មោះ ឃ្លលនដើម ងមីមួយតដលជាឃ្លលតវងជាងមុន។

ឃ្លលណដើឣ *= 3 េឺ ជាបញ្ វ របមាណ្វ ិធី នដើមបីបនងកើែក្រមងអក្េរន្មោះ ឃ្លលនដើម


ា ែរមូវឲ្យនធវើស័យ

ងមីមួយតដលជាឃ្លលតវងជាងមុន 3 ដង។

វ របមាណ្វ ិធី ដូចខាងនរកាមននោះ៖


ដូចោនតដរ នយើងអាចយក្ក្រមងនងរនផេងៗមក្នធវើស័យ

ករឣងចរឣរោះ = (100, 1.5, "រាក់ចណំ ណញ")

ករឣងចរឣរោះ += (50, 4, True)

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ *= 3

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ += (50, 4, True) េឺ ជាបញ្ វ របមាណ្វ ិធី នដើមបីបនងកើែក្រមងនងរ


ា ែរមូវឲ្យនធវើស័យ

ន្មោះ ក្រមងចរមរោះ ងមីមានធ្លែុនរចើនជាងមុន។


ទំព័រ 99

ករឣងចរឣរោះ *= 3 េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើែក្រមងនងរន្មោះ


ា ែរមូវឲ្យនធវើស័យ

ក្រមងចរមរោះ ងមីមានធ្លែុនលើសមុន 3 ដង។

វ របមាណ្វ ិធី ដូចខាងនរកាមននោះ៖


ដូចោនតដរ នយើងអាចយក្ក្រមងអនងរនផេងៗមក្នធវើស័យ

ករឣងចរឣរោះ = [100, 1.5, "រាក់ចណំ ណញ"]

ករឣងចរឣរោះ += [50, 4, True]

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ *= 3

print(ករឣងចរឣរោះ)

វ របមាណ្វ ិធី តមរនបៀបដូចខាងនលើននោះ េឺ ជាក្រណ្ីពិនសស។


ការយក្ក្រមងអនងរមក្នធវើស័យ

នពាលេឺ មិនតមនជាការយក្ក្រមងអនងរចាស់មក្ដូរងមីន ោះនទ ផទុយនៅវ ិញ េឺ ជាការយក្ក្រមង

អនងរចាស់ដតដលមក្តក្តរប ពីនរពាោះក្រមងអនងរេឺ ជាវែថុអាចនដាោះដូរាន។

ករឣងចរឣរោះ += [50, 4, True] េឺ ជាបញ្ វ របមាណ្វ ិធី នដើមបីបនងកើនក្រមងអនងរ


ា ែរមូវឲ្នធវើស័យ

ន្មោះ ក្រមងចរមរោះ ដតដលឲ្យមានធ្លែុនលើសមុន។

ករឣងចរឣរោះ *= 3 េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើនក្រមងអនងរន្មោះ


ា ែរមូវឲ្យនធវើស័យ

ក្រមងចរមរោះ ដតដលឲ្យមានធ្លែុនលើសមុន 3 ដង។

វ របមាណ្វ ិធីក្ុងនោលបំ
ក្៍ប៉ុតនតនបើនយើងចង់យក្ក្រមងអនងរមក្នធវើស័យ ន ណ្ងយក្ក្រមងអនងរ

ចាស់មក្ដូរងមី មិនតមនយក្មក្តក្តរប នយើងរែូវនធវើតមរនបៀបដូចខាងនរកាមននោះ៖

ករឣងចរឣរោះ = [100, 1.5, "រាក់ចណំ ណញ"]

ករឣងចរឣរោះ = ករឣងចរឣរោះ + [50, 4, True]

print(ករឣងចរឣរោះ)
ទំព័រ 100

ករឣងចរឣរោះ = ករឣងចរឣរោះ * 3

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ = ករឣងចរឣរោះ + [50, 4, True] េឺជាបញ្ វ របមាណ្វ ិធីនដើ មបីបនងកើែ


ា ែរមូវឲ្យនធវើស័យ

ក្រមងអនងរន្មោះ ក្រមងចរមរោះ ងមីមានធ្លែុ នលើសមុន។

ករឣងចរឣរោះ = ករឣងចរឣរោះ * 3 េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើែក្រមង


ា ែរមូវឲ្យនធវើស័យ

អនងរន្មោះ ក្រមងចរមរោះ ងមីមានធ្លែុ នលើសមុន 3 ដង។

វ របមាណ្វ ិធីដូចខាងនរកាមននោះ៖
ដូចោនតដរ នយើងអាចយក្សំណ្ុំនផេងៗមក្នធវើស័យ

សំណុំចរឣរោះ = {100, 1.5, "រាក់ចណំ ណញ"}

សំណុំចរឣរោះ -= {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ |= {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ &= {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ ^= {50, 4, True}

print(សំណុំចរឣរោះ)

វ របមាណ្វ ិធីតមរនបៀបដូចខាងនលើននោះ េឺ ជា
ចំនពាោះសំណ្ុំក្៍ ដូចជាក្រមងអនងរតដរ ការនធវើស័យ

ការយក្សំណ្ុំចាស់មក្តក្តរប នពាលេឺ មិនតមនជាការយក្សំណ្ុំចាស់មក្ដូរងមីនឡើយ។

ំ ុ ំ ចរឣរោះ -= {50, 4, True} េឺ ជាបញ្


សណ វ របមាណ្វ ិធី នដើមបីដក្យក្ធ្លែុ ខ្លោះ
ា ែរមូវឲ្យនធវើស័យ

តដលដូចនៅនឹងធ្លែុថ្នសំណ្ុំ {50, 4, True} នចញពីសំណ្ុំន្មោះ សំណ្ុំចរមរោះ ។


ទំព័រ 101

ំ ុ ំ ចរឣរោះ |= {50, 4, True} េឺ ជាបញ្


សណ វ របមាណ្វ ិធី នដើមបីបតនថមធ្លែុខ្លោះតដល
ា ែរមូវឲ្យនធវើស័យ

ដូចនៅនឹងធ្លែុថ្នសំណ្ុំ {50, 4, True} ចូលនៅក្នុងសំណ្ុំន្មោះ សំណ្ុំចរមរោះ ។

ំ ុ ំ ចរឣរោះ &= {50, 4, True} េឺ ជាបញ្


សណ វ របមាណ្វ ិធី នដើមបីដក្យក្ធ្លែុ ខ្លោះ
ា ែរមូវឲ្យនធវើស័យ

នចញពីសំណ្ុំន្មោះ សំណ្ុំចរមរោះ នដាយរក្ាទុក្តែធ្លែុទំងឡាយណាតដលដូចនៅនឹងធ្លែុ

ថ្នសំណ្ុំ {50, 4, True} ។

ំ ុ ំ ចរឣរោះ ^= {50, 4, True} េឺ ជាបញ្


សណ វ របមាណ្វ ិធី នដើមបីបតនថមធ្លែុខ្លោះតដល
ា ែរមូវឲ្យនធវើស័យ

មានតែនៅក្នុងសំណ្ុំ {50, 4, True} ចូលនៅក្នុងសំណ្ុំន្មោះ សំណ្ុំចរមរោះ ។

វ របមាណ្វ ិធី ក្ុងនោលបំ


ក្៍ប៉ុតនត នបើនយើងចង់យក្សំណ្ុំមក្នធវើស័យ ន ណ្ងយក្សំណ្ុំចាស់មក្ដូរ

ងមី នយើងរែូវនធវើតមរនបៀបដូចខាងនរកាមននោះ៖

សំណុំចរឣរោះ = {100, 1.5, "រាក់ចណំ ណញ"}

សំណុំចរឣរោះ = សំណុំចរឣរោះ - {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ = សំណុំចរឣរោះ | {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ = សំណុំចរឣរោះ & {50, 4, True}

print(សំណុំចរឣរោះ)

សំណុំចរឣរោះ = សំណុំចរឣរោះ ^ {50, 4, True}

print(សំណុំចរឣរោះ)

ំ ុ ំ ចរឣរោះ = សណ
សណ ំ ុ ំ ចរឣរោះ - {50, 4, True} េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើែ
ា ែរមូវឲ្យនធវើស័យ

សំណ្ុំន្មោះ សំណ្ុំចរមរោះ ងមីោមនធ្លែុដូចនៅនឹងសំណ្ុំ {50, 4, True} ។


ទំព័រ 102

ំ ុ ំ ចរឣរោះ = សណ
សណ ំ ុ ំ ចរឣរោះ | {50, 4, True} េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើែ
ា ែរមូវឲ្យនធវើស័យ

សំណ្ុោះន្មោះ សំណ្ុំចរមរោះ ងមីមានធ្លែុមួយចំនួនដូចនៅនឹងសំណ្ុំ {50, 4, True} ។

ំ ុ ំ ចរឣរោះ = សណ
សណ ំ ុ ំ ចរឣរោះ & {50, 4, True} េឺ ជាបញ្ វ របមាណ្វ ិធី នដើមបី
ា ែរមូវឲ្យនធវើស័យ

បនងកើែសំណ្ុំន្មោះ សំណ្ុំចរមរោះ ងមីមានធ្លែុដូចនៅនឹងសំណ្ុំ {50, 4, True} ។

ំ ុ ំ ចរឣរោះ = សណ
សណ ំ ុ ំ ចរឣរោះ ^ {50, 4, True} េឺ ជាបញ្ វ របមាណ្វ ិធីនដើមបីបនងកើែ
ា ែរមូវឲ្យនធវើស័យ

សំណ្ុំន្មោះ សំណ្ុំចរមរោះ ងមីមានធ្លែុជាការរបជុំធ្លែុខ្ុសោនថ្នសំណ្ុំន្មោះ សំណ្ុំចរមរោះ និង

សំណ្ុំ {50, 4, True} ។

កឈនោម ម្បោណ វិធី

ក្ននាមរបមាណ្វ ិធី ក្៍រែូវចាែ់ទុក្ថាជាបញ្


ា មួយតដរ េឺជាបញ្
ា ែរមូវឲ្យមានការនធវើរបមាណ្

វ ិធី នផេងៗ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សណតោ ឤ = 150

វវឹង = 23

កំឡស់ = 15

មាឌ = សណតោ ឤ * វវឹង * កំឡស់

print(មាឌ)

សណត ំ ស់ េឺជាក្ននាមរបមាណ្វ ិធី តដលជាបញ្


ោ ឤ * វវឹង * កឡ ា ែរមូវឲ្យនធវើរបមាណ្វ ិធី េុន

រវាងវែថុចំនួនបីេឺ បនណា
ត យ ទទឹង និង ក្ំពស់ ។
ទំព័រ 103

បញ្ជ
ា if

if េឺជាបញ្ ា មួយចំនួននទៀែ ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធីមួយផតល់


ា ែរមូវឲ្យអនុវែតបញ្

លទធផលជាែក្កវែថុ True ឬសមមូលនឹង True ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

if ថ្លលឦក់ > ថ្លលវិញ :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ល ក់ > ថ្លវ
if ថ្លឦ ល ិ ញ : េឺជាការនរបើបញ្
ា if ែរមូវឲ្យអនុវែតបញ្
ា ពីរនទៀែនៅខាងនរកាមន ោះក្នុង

ល ក់ > ថ្លវ
ក្រណ្ីក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិ ញ ផតល់លទធផលជាែក្កវែថុ True ។ នបើ ពុំន ោះនាែ

នទ បញ្
ា ទំងពីរន ោះនឹងរែូវរ ំលងនចាល។ នដាយ ថ្ងលលក្់ ជានលខ្ 1000 និង ថ្ងលទិញ ជានលខ្

ល ក់ > ថ្លវ
900 ដូចននោះក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិញ ផតល់លទធផលជាែក្កវែថុ True តដល ំឲ្យ

បញ្
ា ទំងពីរនៅខាងនរកាមន ោះរែូវានយក្នៅអនុវែត។

សញ្ដចុចពីរ (:) នៅខាងចុងក្ននាមរបមាណ្វ ិធី េឺជាសញ្ដក្ំណ្ែ់ ពីចំនុចចាប់ នផតើមថ្នបញ្


ី ក្ននាមរបមាណ្វ ិធី ផតល់លទធផលជាែក្កវែថុ


ទំងឡាយណាតដលរែូវយក្នៅអនុវែតក្ុងក្រណ្

True ។ បញ្
ា ទំងន ោះរែូវតែសរនសរចូលប ទ ែ់ នដើមបីបញ្
ា ក្់ រាប់ថាវាជាបញ្
ា នៅក្នុងបញ្

if ។ ការសរនសរចូលប ទ ែ់អាចរែូវដក្ឃ្លលចំនូនប៉ុ ម នក្៍ានតដរ តែនេនិយមចូលចិែស


ត រនសរ

ចូលប ទ ែ់នដាយដក្ឃ្លលចំនួនបួន។ បញ្


ា តដលរែូវសរនសរចូលប ទ ែ់ទំងន ោះេឺ ជា

រក្រមបញ្
ា (block) សថិែនៅក្នុងបញ្
ា if ។ ដូចននោះរក្រមបញ្
ា សថិែនៅក្នុងបញ្
ា if រែូវយក្នៅ

អនុវែតតែក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធីជាប់ នឹងបញ្


ា if ន ោះផតល់លទធផលជាែក្កវែថុ True ឬ
ទំព័រ 104

សមមូលនឹង True តែប៉ុនណាណោះ នបើពុំន ោះនាែនទ រក្រមបញ្


ា ន ោះនឹងរែូវរ ំលងនចាល។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 900

ថ្លលវិញ = 900

if ថ្លលឦក់ > ថ្លលវិញ :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ល ក់ > ថ្លវ
if ថ្លឦ ល ិ ញ : េឺជាការនរបើបញ្
ា if ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះក្នុងក្រណ្ី

ល ក់ > ថ្លវ
ក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិ ញ ផតល់លទធផលជាែក្កវែថុ True នបើ ពុំន ោះនាែនទ រក្រម

បញ្
ា ន ោះនឹងរែូវរ ំលងនចាល។ នដាយ ថ្ងលលក្់ ជានលខ្ 900 និង ថ្ងលទិញ ជានលខ្ 900

ល ក់ > ថ្លវ
ដូចននោះក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិ ញ ផតល់លទធផលជាែក្កវែថុ False តដល ំឲ្យរក្រម

បញ្
ា នៅក្នុងបញ្
ា if រែូវានរ ំលងនចាល។

បញ្ជ
ា if/else

if/else េឺជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា if និងែរមូវឲ្យរ ំលងនចាលរក្រមបញ្

ា else ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី មួយផតល់លទធផលជាែក្កវែថុ True ឬសមមូល


នៅក្នុងបញ្

នឹង True ។ តែនបើក្ននាមរបមាណ្វ ិធីន ោះផតល់លទធផលជាែក្កវែថុ False ឬសមមូលនឹង False

រក្រមបញ្
ា នៅក្នុងបញ្
ា if នឹងរែូវរ ំលងនចាល នហើយរក្រមបញ្
ា នៅក្នុងបញ្
ា else នឹងរែូវយក្

នៅអនុវែត។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000
ទំព័រ 105

ថ្លលវិញ = 900

if ថ្លលឦក់ > ថ្លលវិញ :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)
else :
print("ថ្លលឦក់ឣឞណរច
ិ ឞជាងថ្លល
ើ វិញណវ")

print("ឥកសុ ីឣឞចំ
ិ ណណញ")

ល ក់ > ថ្លវ
if ថ្លឦ ល ិ ញ : េឺជាការនរបើបញ្
ា if ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះនិងរ ំលង

នចាលរក្រមបញ្
ា នៅក្នុងនៅក្នុងបញ្ ល ក់ > ថ្លវ
ា else ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិញ

ផតល់លទធផលជាែក្កវែថុ True ។

else : េឺ ជាការនរបើបញ្
ា else ែរមូវឲ្យរ ំលងនចាលរក្រមបញ្
ា នៅក្នុងបញ្
ា if និងអនុវែតរក្រម

បញ្
ា នៅក្នុងបញ្ ល ក់ > ថ្លវ
ា else ននោះក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី ថ្លឦ ល ិញ ផតល់លទធផលជា

ែក្កវែថុ False ។

នដាយវែថុន្មោះ ថ្ងលលក្់ ជានលខ្ 1000 និងវែថុន្មោះ ថ្ងលទិញ ជានលខ្ 900 ដូចននោះក្ននាម

ល ក់ > ថ្លវ
របមាណ្វ ិធី ថ្លឦ ល ិញ ផតល់លទធផលជាែក្កវែថុ True តដល ំឲ្យរក្រមបញ្
ា នៅក្នុងបញ្

if រែូវានយក្នៅអនុវែត និងរក្រមបញ្
ា នៅក្នុងបញ្
ា else រែូវានរ ំលងនចាល។

បញ្ជ
ា if/elif/else

if/elif/else េឺជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា if ឬបញ្
ា elif ក្នុងក្រណ្ីក្ននាម

របមាណ្វ ិធី ជាប់នឹងបញ្


ា if ឬ elif ន ោះផតល់លទធផលជាែក្កវែថុ True ឬសមមូលនឹង True ។
ទំព័រ 106

តែនបើោមនក្ននាមរបមាណ្វ ិធី ណាមួយផតល់លទធផលជាែក្កវែថុ True ឬសមមូលនឹង True នទ

រក្រមបញ្ ា else នឹងរែូវយក្នៅអនុវែត។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ា នៅក្នុងបញ្

a = 15

b = 15
if a < b :
print("a រូ ចជាង b")

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា if ររូឧាឞឤកណៅអឞុ ឧរោ។")
elif a == b :
print("a ណសមើឞឹង b")

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា elif វីឣួ ឤររូឧាឞឤកណៅអឞុ ឧរោ។")

elif a < b < 100 :

print("a < b < 100")

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា elif វីឡីឥររូឧាឞឤកណៅអឞុ ឧរោ។")
else :
print("ោមឞកណឞាឣរសមាណឧឝ
ិ តឣួ
ី ឤហោឦ់ឦវធហឦជារកកឧរថុ True ណវ។")

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា else ររូឧាឞឤកណៅអឞុ ឧរោ។")

if a < b : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងរ ំលងនចាលរក្រមបញ្
ា នៅក្នុង

ា នផេងៗនទៀែ ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី a < b ផតល់លទធផលជាែក្កវែថុ True ។


បញ្

if a == b : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងរ ំលងនចាលរក្រមបញ្
ា នៅក្នុង

ា នផេងៗនទៀែ ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី a == b ផតល់លទធផលជាែក្កវែថុ True ។


បញ្

if a < b < 100 : េឺ ជាបញ្


ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងរ ំលងនចាលរក្រមបញ្
ា នៅ

ា នផេងៗនទៀែ ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី a < b < 100 ផតល់លទធផលជាែក្កវែថុ True


ក្នុងបញ្


ទំព័រ 107

else : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងរ ំលងនចាលរក្រមបញ្
ា នៅក្នុងបញ្

នផេងៗនទៀែ ក្នុងក្រណ្ីោមនក្ននាមរបមាណ្វ ិធី ណាមួយផតល់លទធផលជាែក្កវែថុ True ។

នដាយ a ជានលខ្ 15 និង b ក្៍ ជានលខ្ 15 តដរ ដូចននោះក្ននាមរបមាណ្វ ិធី a == b ផតល់

លទធផលជាែក្កវែថុ True តដល ំឲ្យរក្រមបញ្


ា នៅក្នុងបញ្
ា elif ទីពីររែូវានយក្នៅអនុវែត

និងរក្រមបញ្
ា នៅក្នុងបញ្
ា នផេងៗនទៀែរែូវរ ំលងនចាលទំងអស់។

នយើងរែូវនធវើការក្ែ់សំោល់ថា នយើងអាចនរបើបញ្
ា elif មានចំនួនប៉ុ ម នក្៍ានតដរនៅក្នុង

បញ្
ា if/elif/else អាស្រស័យនៅតមនសចក្តីរែូវការថ្នការនដាោះស្រាយបញ្
ា ។

ក្បនោម្ររមាណវិ ធីមានជបរម្ើស

ក្ននាមរបមាណ្វ ិធី មានជនរមើសេឺជាក្ននាមរបមាណ្វ ិធីតដលមានទរមង់ស្រសនដៀងនឹងបញ្


if/else តដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

ឦវធហឦ = "ចំណណញ" if (ថ្លលឦក់ - ថ្លលវិញ > 0) else "ខារ"

print(ឦវធហឦ)

ធ ឦ = "ចណំ ណញ" if (ថ្លឦ


ឦវហ ល ក់ - ថ្លវ
ល ិញ > 0) else "ខារ" េឺ ជាក្ននាមរបមាណ្វ ិធីមាន

ជនរមើសតដលផតល់លទធផលជាក្រមងអក្េរ “ចំនណ្ញ” ក្នុងក្រណ្ីក្ននាមរបមាណ្វ ិធី

ល ក់ - ថ្លវ
(ថ្លឦ ល ិញ > 0) ផតល់លទធផលជាែក្កវែថុ True នបើពុំន ោះនាែនទ ក្ននាមរបមណ្វ ិធី

មានជនរមើ សន ោះនឹងផតល់លទធផលជាក្រមងអក្េរ “ខាែ” ។


ទំព័រ 108

នដាយវែថុន្មោះ ថ្ងលលក្់ ជានលខ្ 1000 និងវែថុន្មោះ ថ្ងលទិញ ជានលខ្ 900 ដូចននោះក្ននាម

របមាណ្វ ិធី (ថ្ងលលក្់ - ថ្ងលទិញ > 0) ផតល់លទធផលជាែក្កវែថុ True តដល ំឲ្យលទធផលានមក្

ពីក្ននាមរបមាណ្វ ិធីមានជនរមើសខាងនលើននោះេឺជាក្រមងអក្េរ “ចំនណ្ញ” ។

នរៅពីក្រមងអក្េរ វែថុតដលជាលទធផលានមក្ពីក្ននាមរបមាណ្វ ិធី មានជនរមើសអាចជាវែថុ

របនភទណាក្៍ ានតដរ។

បញ្ជ
ា while

while េឺជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះារចុោះារនឡើងោមនឈប់ ដរាបណា

ក្ននាមរបមាណ្វ ិធី មួយនៅតែផតល់លទធផលជាែក្កវែថុ True ឬសមមូលនឹង True ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

a=0

while a < 10 :

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា while ររូឧាឞឤកណៅអឞុ ឧរោជាណឦើកវី", a + 1)

print("ឧរថុណ្មោះ a គឺជាណឦខ", a)

a += 1
print()

while a < 10 : េឺជាបញ្


ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះារចុោះារនឡើងោមនឈប់

ដរាបណាក្ននាមរបមាណ្វ ិធី a < 10 នៅតែផតល់លទធផលជាែក្កវែថុ True ។

នៅនពលតដលក្មមវ ិធីខាងនលើចាប់នផតើមដំនណ្ើរការ វែថុន្មោះ a េឺជានលខ្ 0 ។ ដូចននោះក្ននាម

របមណ្វ ិធី a < 10 ផតល់លទធផលជាែក្កវែថុ True តដលជារបការនធវើឲ្យរក្រមបញ្


ា នៅក្នុងបញ្

while រែូវយក្នៅអនុវែតជានលើក្ទីមួយ។ ក្តតននោះនធវើឲ្យក្រមងអក្េរពីររែូវានសរនសរនៅ


ទំព័រ 109

នលើបងអួចបឋម និងវែថុន្មោះ a កាលយនៅជាវែថុងមីធំជាងមុន 1 ។ នហើយនរកាយពីរក្រមបញ្


ា នៅ

ក្នុងបញ្ ួ នហើយ ក្ននាមរបមាណ្វ ិធី a < 10


ា while រែូវានយក្នៅអនុវែតានចប់សពវរេប់រច

រែូវយក្មក្នធវើការេណ្ ជាងមីមតងនទៀែ នហើយនបើក្ននាមរបមាណ្វ ិធីន ោះនៅតែផតល់

លទធផលជាែក្កវែថុ True រក្រមបញ្


ា នៅក្នុងបញ្
ា while ន ោះនឹងរែូវយក្នៅអនុវែតជាងមីមតង

នទៀែ។ ទនងវើរនបៀបននោះរែូវរបរពឹែនត ៅជាដតដលៗរហូែដល់ក្ននាមរបមាណ្វ ិធី a < 10 តលង

ផតល់លទធផលជាែក្កវែថុ True េឺនៅនពលតដលវែថុន្មោះ a កាលយនៅជានលខ្ 10 ។ ដូចននោះនៅ

នពលតដលរក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវានយក្នៅអនុវែតចំនួន 10 ដង វែថុន្មោះ a

កាលយជានលខ្ 10 ពីនរពាោះរាល់នលើក្តដលបញ្
ា a += 1 រែូវានយក្នៅអនុ វែត វែថុន្មោះ a

កាលយនៅជានលខ្ធំ ជាងមុន 1 រហូែ។ នហើយនៅនពលតដលវែថុន្មោះ a កាលយនៅជានលខ្ 10

ក្ននាមរបមាណ្វ ិធី a < 10 ផតល់លទធផលជាែក្កវែថុ False តដលជារបការនធវើឲ្យការអនុវែតន៍

រក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវបញ្ចប់។

សរុបមក្ នដើមបីឲ្យការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា while អាចរែូវបញ្ចប់ាន លុោះរតណា

តែក្ននាមរបមាណ្វ ិធីជាប់នឹងបញ្
ា while ន ោះតលងផតល់លទធផលជាែក្កវែថុ True ឬ

សមមូលនឹង True នៅនពលណាមួយ នបើ ពុំន ោះនាែនទ ការអនុវែតន៍រក្រមបញ្


ា នៅក្នុងបញ្

while នឹងរបរពឹែនត ៅជាប់រហូែោមនឈប់។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

a=0

while a < 10 :

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា while ររូឧាឞឤកណៅអឞុ ឧរោជាណឦើកវី", a + 1)

print("ឧរថុណ្មោះ a គឺជាណឦខ", a)
print()
ទំព័រ 110

នបើនយើងដំនណ្ើរការក្មមវ ិធីខាងនលើននោះ វានឹងដំនណ្ើរការជាប់រហូែោមនឈប់។ ដំនណ្ើរការោមន

ឈប់ននោះ ភាាអង់នេលសនៅថា infinite loop តដលនយើងអាចបក្តរបជាភាាតខ្មរថា វដតក្មម

ជានិរនតន៍ ។

មូលនហែុតដល ំឲ្យក្មមវ ិធីខាងនលើននោះមានដំនណ្ើរការជាវដតក្មមជានិរនតន៍ េឺថារេប់នពល

តដលរក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវយក្នៅអនុវែត វែថុន្មោះ a នៅរក្ាែថ្មលដតដល

ដូចននោះក្ននាមរបមាណ្វ ិធី a < 10 នៅតែផតល់លទធផលជាែក្កវែថុ True ជានិច។


ច របការននោះនធវើ

ឲ្យរក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវយក្នៅអនុវែតជានរៀងរហូែ នរពាោះការអនុវែតន៍រក្រមបញ្

ន ោះអាចរែូវឈប់ ានលុោះរតណាតែក្ននាមរបមាណ្វ ិធី a < 10 ផតល់លទធផលជាែក្កវែថុ

False តែប៉ុនណាណោះ។

បញ្ជ
ា for

for េឺជាបញ្
ា ែរមូវឲ្យពិនិែយនមើលធ្លែុ ទំងអស់នៅក្នុងសមាសវែថុណាមួយបនណ្ើ ត រនិងែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា for ន ោះបនណ្ើ ត រ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = [100, 1.5, "កកឧ កុ សឦ", True]

ណឦខណឥៀង = 0

for ឧរថុ in ករឣងចរឣរោះ :

print("ធារុ ណៅកនុងករឣងអណលឥណ្មោះ ករឣងចរឣរោះ មាឞណឦខណឥៀង", ណឦខណឥៀង, "គ",


ឺ ឧរថុ)

ណឦខណឥៀង += 1

for ឧរុ ថ in ករឣងចរឣរោះ : េឺ ជាបញ្


ា ែរមូវឲ្យពិនិែយនមើលរេប់ធ្លែុ ទំងអស់នៅក្នុងក្រមងអនងរ

ន្មោះ ក្រមងចរមរោះ បនណ្ើ ត រនិងែរមូវឲ្យអនុវែតរក្រមបញ្


ា នៅក្នុងបញ្
ា for ន ោះបនណ្ើ ត រ។
ទំព័រ 111

ការពិនិែយនមើលធ្លែុ នៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ េឺរែូវនធវើនឡើងនដាយភាាប់ន្មោះ

វែថុ នៅនឹងរេប់ធ្លែុនៅក្នុងក្រមងអនងរន ោះមតងមួយៗពី នឆវងនៅាតំ។ នហើយរេប់ការភាាប់

ន្មោះ វែថុ នៅនឹងធ្លែុណាមួយ រក្រមបញ្


ា នៅក្នុងបញ្
ា for រែូវយក្នៅអនុវែតមតងតដរ។

នដាយក្រមងអនងរន្មោះ ក្រមងចរមរោះ មានធ្លែុចំនួន 4 ដូចននោះការអនុវែតន៍រក្រមបញ្


ា នៅក្នុង

ក្បញ្
ា for ក្៍ រែូវនធវើនឡើងចំនួន 4 ដងតដរ។

ក្នុងក្រណ្ីសមាសវែថុជាវច នុរក្ម ការនរបើបញ្


ា for នដើមបីពិនិែយនមើលធ្លែុថ្នសមាសវែថុន ោះ

េឺជាការនរបើបញ្
ា for នដើមបីពិនិែយនមើលក្ូននារនៅក្នុងវច នុរក្មន ោះ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

រសឧរោឥូិ ស = {"ណ្មោះ":"កុ សឦ", "ររកូ ឦ":"កកឧ", "អាឤុ ":35, "វីឦំណៅ":"កឣពុជា"}

for ឧរថុ in រសឧរោឥូិ ស :

print("រថ្ឣលជាស់ឞឹងកូ ឞណោឥ", ឧរថុ, "គឺ", រសឧរោឥូិ ស[ឧរថុ])

for ឧរុ ថ in រសឧរឥិ ោ ូស : េឺ ជាការនរបើបញ្


ា for ែរមូវឲ្យពិនិែយនមើលក្ូននារនៅក្នុងវច នុរក្ម

ន្មោះ របវែតិរប
ូ និងែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា for ន ោះរពមនពលជាមួយោន។

បញ្ជ
ា break

break េឺជាបញ្
ា ែរមូវឲ្យបញ្ចប់ជាប ទ ន់នូវការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា while ឬ for ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

រសឧរោឥូិ ស = {"ណ្មោះ":"កុ សឦ", "ររកូ ឦ":"កកឧ", "អាឤុ ":35, "វីឦំណៅ":"កឣពុជា"}


b=0
for ឧរថុ in រសឧរោឥូិ ស :
b += 1
if b == 3 :
ទំព័រ 112

break
print("រថ្ឣលជាស់ឞឹងកូ ឞណោឥ", ឧរថុ, "គឺ", រសឧរោឥូិ ស)
while True :
b += 1
print("b គជាណឦខ",
ឺ b)
if b == 10 :
break

break េឺ ជាបញ្
ា ែរមូវឲ្យបញ្ចប់ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា for និងបញ្ឈប់ការពិនិែយ

នមើលក្ូននារនៅក្នុងវច នុរក្មន្មោះ របវែតិរប


ូ ជាប ទ ន់ក្ុងក្រណ្
ន ី b ជានលខ្ 3 ។ ាន

ន័យថានៅនពលតដល b ជានលខ្ 3 ការពិនិែយនមើលក្ូននារនៅក្នុងវច នុរក្មន្មោះ

របវែតិរប
ូ និងការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា for រែូវបញ្ឈប់ជាប ទ ន់ នហើយបញ្
ា ប ទ ប់ពី

រក្រមបញ្
ា ន ោះនឹងរែូវយក្នៅអនុវែតជាប ទ ន់តដរ។

break េឺ ជាបញ្
ា ែរមូវឲ្យបញ្ចប់ជាប ទ ន់ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា while ក្នុងក្រណ្ី b

ជានលខ្ 10 ។

បញ្ជ
ា continue

ា ែរមូវឲ្យអនុវែតារនឡើងវ ិញជាប ទ ន់នូវរក្រមបញ្


continue េឺជាបញ្ ា នៅក្នុងបញ្
ា while ឬ

ា for ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


បញ្

ករឣងចរឣរោះ = [100, 1.5, "នាឣររកូ ឦ", True, 200, "ណោរោនាឣ"]


b=0
for ឧរថុ in ករឣងចរឣរោះ :
b += 1
if b == 4 :
continue
print("ធារុ មាឞណឦខណឥៀង", b -1, "ណៅកនុងករឣងអណលឥណ្មោះ ករឣងចរឣរោះ គ",
ឺ ឧរថុ)
while b < 10 :
b += 1
ទំព័រ 113

if b == 7 :
continue
print("b គជាណឦខ",
ឺ b)

ា ែរមូវឲ្យអនុវែតារនឡើងវ ិញជាប ទ ន់នូវរក្រមបញ្


continue េឺជាបញ្ ា នៅក្នុងបញ្
ា for ក្នុង

ក្រណ្ី b ជានលខ្ 4 ។ ដូចននោះក្នុងក្រណ្ី b ជានលខ្ 4 បញ្


ា ប ទ ប់ពីបញ្
ា continue នៅក្នុង

រក្រមបញ្
ា ជាមួយោននឹងរែូវទុក្នចាល នរពាោះរក្រមបញ្
ា នៅក្នុងបញ្
ា for រែូវយក្នៅអនុវែត

ារជាងមីនឡើងវ ិញជាប ទ ន់ចាប់ពីនដើមដំបូងមក្។

ា ែរមូវឲ្យអនុវែតារនឡើងវ ិញជាប ទ ន់នូវរក្រមបញ្


continue េឺ ជាបញ្ ា នៅក្នុងបញ្
ា while ក្នុង

ក្រណ្ី b ជានលខ្ 7 ។ ដូចននោះក្នុងក្រណ្ី b ជានលខ្ 7 បញ្


ា ប ទ ប់ពីបញ្
ា continue នៅក្នុង

រក្រមបញ្
ា នៅក្នុងបញ្
ា while នឹងរែូវទុក្នចាលនរពាោះរក្រមបញ្
ា ន ោះរែូវយក្នៅអនុវែតារ

នដើមនឡើងវ ិញជាប ទ ន់។

បញ្ជ
ា pass

ា ែរមូវឲ្យរ ំលងនចាលនដាយមិននធវើអីវទំងអស់។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


pass េឺជាបញ្

print("កឣមឧឝ
ិ ររូ
ី ឧចាស់ណហោឣ
ើ ណៅកកឞលងណឞោះ")
if True :
pass
print("កឣមឧឝ
ិ ររូ
ី ឧចស់ររឣណឞោះ")

pass េឺ ជាបញ្
ា ែរមូវឲ្យរ ំលងនចាលនដាយមិននធវើអីវទំងអស់។

នៅក្នុងបញ្
ា មួយចំនួនដូចជាបញ្
ា if ជានដើម នបើនយើងមិនចង់នធវើអីនវ ាោះន ោះ នយើងមិនអាច

ទុក្ឲ្យនៅទនទាននឡើយ នយើងរែូវនរបើ បញ្


ា pass ននោះែរមូវឲ្យរ ំលងនចាលនដាយមិននធវើអីវ

ទំងអស់។ នបើ នយើងមិនសរនសរអវីនាោះន ោះ ក្ំហុសនឹងនក្ើែមាននឡើង។


ទំព័រ 114

បញ្ជ
ា while/else

while/else េឺជាបញ្
ា ែរមូវរឲ្អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា while ារចុោះារនឡើងោមនឈប់

ដរាបណាក្ននាមរបមាណ្វ ិធី មួយនៅតែផតល់លទធផលជាែក្កវែថុ True ឬសមមូលនឹង True ។

នហើយនបើការអនុវែតន៍រក្រមបញ្
ា ន ោះរែូវានបញ្ចប់នៅនដាយោមនានជួបរបទោះនឹងបញ្

break រក្រមបញ្ ា else នឹងរែូវយក្នៅអនុវែត។ ផទុយនៅវ ិញ នបើ ការអនុវែតន៍រក្រម


ា នៅក្នុងបញ្

បញ្
ា នៅក្នុងបញ្
ា while ានជួបរបទោះនឹងបញ្
ា break រក្រមបញ្
ា នៅក្នុងបញ្
ា else នឹងរែូវ

រ ំលងនចាល។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

a=0

while a < 10 :

print("a ជាណឦខ", a)

a += 1

if a == 11 :
break
else :
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា while ោមឞាឞជួ សរសវោះឞឹងសញ្ហ
ា break ណវ។")

while a < 10 : េឺជាការនរបើបញ្


ា while ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះរហូែទល់តែ

ក្ននាមរបមាណ្វ ិធី a < 10 ផតល់លទធផលជាែក្កវែថុ False ឬជួបរបទោះនឹងបញ្


ា break ។

else : េឺ ជាការនរបើបញ្
ា else ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រម

បញ្
ា នៅក្នុងបញ្
ា while រែូវានបញ្ចប់នៅនដាយសរមួល នដាយមិនានជួបរបទោះនឹងបញ្

break ។
ទំព័រ 115

នដាយការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវានបញ្ចប់នៅតមសរមួល នដាយោមន

ានជួបរបទោះនឹងបញ្
ា break ដូចននោះរក្រមបញ្
ា នៅក្នុងបញ្
ា else ក្៍រែូវានយក្នៅអនុវែត

តដរ។

នលើសពី ននោះនទៀែ រក្រមបញ្


ា នៅក្នុងបញ្
ា else នឹងរែូវយក្នៅអនុវែតតដរនបើសិនជារក្រមបញ្

ា while រែូវានរ ំលងនចាលមក្ពីក្ននាមរបមាណ្វ ិធីនៅជាប់ នឹងបញ្


នៅក្នុងបញ្ ា while

ន ោះផតល់លទធផលជាែក្កវែថុ False ឬសមមូលនឹង False តំងពី ដំបូងថ្ដមក្នមលោះ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

a=0

while a > 10 :

print("a ជាណឦខ", a)

a += 1

if a == 11 :
break
else :
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា while ោមឞាឞជួ សរសវោះឞឹងសញ្ហ
ា break ណវ។")

while a > 10 : េឺជាការនរបើ បញ្


ា while ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះរហូែទល់តែ

ក្ននាមរបមាណ្វ ិធី a > 10 ផតល់លទធផលជាែក្កវែថុ False ឬជួបរបទោះនឹងបញ្


ា break ។

else : េឺ ជាការនរបើបញ្
ា else ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រម

បញ្
ា នៅក្នុងបញ្
ា while រែូវានបញ្ចប់នៅនដាយសរមួលនដាយមិនានជួបរបទោះនឹងបញ្

break ឬក្នុងក្រណ្ីរក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវរ ំលងនចាលនដាយារក្ននាមរបមាណ្

វ ិធី a > 10 ផតល់លទធផលជាែក្កវែថុ False តំងពីដំបូងថ្ដមក្នមលោះ។


ទំព័រ 116

នដាយវែថុន្មោះ a ជានលខ្ 0 ដូចននោះក្ននាមរបមាណ្វ ិធី a > 10 ផតល់លទធផលជាែក្កវែថុ False

តដល ំឲ្យរក្រមបញ្
ា នៅក្នុងបញ្
ា while រែូវរ ំលងនចាល និងរក្រមបញ្
ា នៅក្នុងបញ្
ា else រែូវ

យក្នៅអនុវែត។

បញ្ជ
ា for/else

for/else េឺជាបញ្
ា ែរមូវឲ្យពិនិែយនមើលធ្លែុនៅក្នុងសមាសវែថុណាមួយបនណ្ើ ត រនិងែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា for ន ោះបនណ្ើ ត រ។ នហើយនបើការអនុវែតន៍រក្រមបញ្
ា ន ោះោមនាន

ជួបរបទោះនឹងបញ្
ា break នទ រក្រមបញ្
ា នៅក្នុងបញ្
ា else ក្៍ នឹងរែូវយក្នៅអនុវែតតដរ។ ផទុយ

នៅវ ិញ នបើ ការអនុ វែតន៍រក្រមបញ្


ា នៅក្នុងបញ្
ា for ានជួបរបទោះនឹងបញ្
ា break រក្រមបញ្
ា នៅ

ា else នឹងរែូវរ ំលងនចាល។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ក្នុងបញ្

ករឣងចរឣរោះ = [100, 1.5, "នាឣររកូ ឦ", True]

b=0

for ឧរថុ in ករឣងចរឣរោះ :

print("ធារុ ថ្ឞករឣងអណលឥណ្មោះ ករឣងចរឣរោះ មាឞណឦខណឥៀង", b, "គ",


ឺ ឧរថុ)
b += 1

if ឧរថុ == 11 :
break
else :
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា for ោមឞាឞជួ សរសវោះឞឹងសញ្ហ
ា break ណវ។")

for ឧរុ ថ in ករឣងចរឣរោះ : េឺ ជាការនរបើបញ្


ា for ែរមូវឲ្យពនិែយនមើលធ្លែុថ្នក្រមងអនងរន្មោះ

ក្រមងចរមរោះ បនណ្ើ ត រនិងែរមូវឲ្យអនុវែតរក្រមបញ្


ា នៅក្នុងបញ្
ា for ន ោះបនណ្ើ ត រ។
ទំព័រ 117

else : េឺ ជាការនរបើបញ្
ា else ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រម

បញ្
ា នៅក្នុងបញ្
ា for ោមនានជួបរបទោះនឹងបញ្
ា break នទ។

នដាយការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា for ោមនានជួបរបទោះនឹងបញ្
ា break ដូចននោះរក្រម

បញ្
ា នៅក្នុងបញ្
ា else រែូវានយក្នៅអនុវែត។

វដ្តកមម កែុងវដ្តកមម

while និង for េឺជាបញ្


ា តដលែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះារចុោះារនឡើង វ ិលចុោះ

វ ិលនឡើងជានរចើននលើក្នរចើនារ េឺ នរបៀបាននឹងក្ងចរក្មួយតដលវ ិលោមនឈប់ ។

សក្មមភាពវ ិលជាប់ននោះនៅថា វដតក្មម (loop) ។

នរៅពីការបនងកើែវដតក្មមតែមួយដាច់តែឯង នយើងអាចបនងកើែវដតក្មមមួយនៅក្នុងវដតក្មមមួយនទៀែ

នដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

ករឣងចំឞួឞគរ់ = [10, 20, 30, 40, 50]

ករឣងចំឞួឞឡិរ = [1.5, 2.33, 3.17, 4.32]

ណឦខណឥៀង = 0

for x in ករឣងចំឞួឞគរ់ :

print("ធារុ ថ្ឞករឣងអណលឥណ្មោះ ករឣងចំឞួឞគរ់ មាឞណឦខណឥៀង", ណឦខណឥៀង, "គឺ", x)

ណឦខ = 0

for y in ករឣងចំឞួឞឡិរ :

print("\t ធារុ ថ្ឞករឣងអណលឥណ្មោះ ករឣងចំឞួឞឡិរ មាឞណឦខណឥៀង", ណឦខ, "គ",


ឺ y)

ណឦខ += 1

ណឦខណឥៀង += 1
ទំព័រ 118

ំ ួ ឞគរ់ : េឺ ជាការនរបើបញ្
for x in ករឣងចឞ ា for នដើមបីបនងកើែវដតក្មមមួយ។

ំ ួ ឞឡិរ : េឺ ជាការនរបើបញ្
for y in ករឣងចឞ ា for មួយនទៀែនដើមបីបនងកើែវដតក្មមមួយនទៀែនៅខាង

ក្នុងវដតក្មមខាងនដើម។

ក្នុងក្រណ្ីវដតក្មមមួយនៅក្នុងវដតក្មមមួយនទៀែ រក្រមបញ្
ា តដលជាវដតក្មមនៅខាងក្នុងរែូវយក្នៅ

អនុវែតរហូែដល់លក្ខខ្័ណ្ឌរែូវបំនពញ រាល់នលើក្តដលរក្រមបញ្
ា តដលជាវដតក្មមនៅខាងនរៅ

រែូវយក្នៅអនុវែតមតង។ ជាក្់តសតង នៅក្នុងក្មមវ ិធីខាងនលើននោះ រាល់នលើក្តដលធ្លែុថ្នក្រមង

អនងរន្មោះ ក្រមងចំនួនេែ់ រែូវានយក្មក្ពិនិែយ និងរក្រមបញ្


ា នៅក្នុងបញ្
ា for តដលជា

វដតក្មមនៅខាងនរៅរែូវយក្នៅអនុវែតមតង រក្រមបញ្
ា នៅក្នុងបញ្
ា for តដលជាវដតក្មមនៅខាង

ក្នុងរែូវយក្នៅអនុវែតជានរចើននលើក្នរចើនាររហូែដល់ធ្លែុថ្នក្រមងអនងរន្មោះ

ក្រមងចំនួនពិែ រែូវពិនិែយអស់។

1*4
ទំព័រ 119

ក្បន

ការបឈងកើត្ កបួន

ក្បួន (function) េឺជាវែថុតដលជាក្តនលងមួយនៅក្នុងសែិរបស់ក្ំពយូទ័រនរបើសរមាប់ក្ែ់រតទុក្នូវ

បញ្
ា មួយចំនួនតដលទក្់ទងោនក្នុងការនដាោះស្រាយក្ូនបញ្
ា ណាមួយ។ នដើមបីបនងកើែក្បួន

នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

def ឥករាក់ចណំ ណញ() : េឺ ជាការនរបើបញ្


ា def ែរមូវឲ្យបនងកើែវែថុមួយតដលជាក្បូនមានន្មោះ

ថា រក្រាក្់ចំនណ្ញ នដើមបីក្ែ់រតទុក្រក្រមបញ្
ា នៅក្នុងបញ្
ា def ន ោះនៅក្តនលងណាមួយនៅ

ក្នុងសែិ របស់ក្ំពយូទ័ រ។

ប ទ ែ់តដលមានបញ្
ា def នៅក្នុងន ោះនៅថា ក្ាលក្បួន (function header) ចំតណ្ក្ឯរក្រម

បញ្
ា នៅក្នុងបញ្
ា def ន ោះរែូវនៅថា ែួ ក្បួន (function body) ។ ន្មោះរបស់ក្បួនក្៍ ដូចជា

ន្មោះថ្នវែថុនផេងៗនទៀែតដរ េឺរែូវបនងកើែនឡើងនដាយនោរពនៅតមវ ិធ្លនថ្នការបនងកើែន្មោះ

នៅក្នុងភាា Python ។
ទំព័រ 120

នៅក្នុងក្មមវ ិធីខាងនលើននោះ នៅនពលតដលបញ្


ា def រែូវានយក្នៅអនុ វែត វែថុមួយមានន្មោះ

ថា រក្រាក្់ចំនណ្ញ រែូវានបនងកើែនឡើងសរមាប់ក្ែ់រតទុក្រក្រមបញ្
ា តដលជាែូ ក្បួនន ោះ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា រក្រមបញ្
ា តដលជាែួ ក្បួនមិនានរែូវយក្នៅអនុវែតនទ េឺ វា

រោន់តែរែូវានក្ែ់រតទុក្មួយអននលើតែប៉ុនណាណោះ។ នហែុដូចននោះនហើយានជានយើងមិនន ើញ

មានអវីនក្ើែនឡើងនទនៅនពលតដលក្បូនន្មោះ រក្រាក្់ចំនណ្ញ រែូវានបនងកើែនឡើង។ នដាយ

រក្រមបញ្
ា នៅក្នុងក្បូនមិនទន់រែូវយក្នៅអនុវែតនៅនពលក្បួនរែូវានបនងកើែ ដូចននោះនៅ

នពលបនងកើែក្បួន បញ្
ា ទំងន ោះមានលក្ខណ្ៈជាេនរមាងការ។

ថ្ងលលក្់ = 1000

ថ្ងលទិញ = 900
រក្រាក្់ចំនណ្ញ
រាក្់ចំនណ្ញ = ថ្ងលលក្់ - ថ្ងលទិញ

print(រាក្់ចំនណ្ញ)

នដាយក្បួនក្៍ ជាវែថុមួយដូចជាវែថុដថ្ទនទៀែតដរ ដូចននោះនយើងអាចយក្ន្មោះរបស់ក្បួននៅភាាប់

នឹងវែថុនផេងៗនទៀែានតមចិែត។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ = 1.33
ទំព័រ 121

print(ឥករាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ = 1.33 េឺ ជាបញ្


ា ែរមូវឲ្យយក្ន្មោះ រក្រាក្់ចំនណ្ញ តដលជាន្មោះ

របស់ក្បួនមួយរួចនៅនហើយន ោះ នៅភាាប់នឹងវែថុតដលជានលខ្ 1.33 វ ិញមតង។ ជាផលវ ិាក្

ក្បួនន ោះកាលយជាវែថុោមនន្មោះតដលរែូវានលុបនចញវ ិញពីក្ុងសែិ


ន របស់ក្ំពយូទ័ រនដាយ

យនតការនាសសំអាែ។ ដូចននោះបញ្
ា ទំងឡាយតដលរែូវានក្ែ់រតទុក្នៅក្នុងក្បួនន ោះក្៍

រែូវានលុបនចាលអស់តដរ។

នដាយក្បួនក្៍ ជាវែថុមួយតដរ ដូចននោះនយើងអាចភាាប់ ន្មោះជានរចើននៅនឹងវែថុតដលជាក្បួនន ោះ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

វូ ទរ់រាក់ឥកាឞ = ឥករាក់កថ្រឣ = ឥករាក់ចណំ ណញ

print(វូ ទរ់រាក់ឥកាឞ)

print(ឥករាក់កថ្រឣ)

print(ឥករាក់ចណំ ណញ)

វូទរ់រាក់ឥកាឞ = ឥករាក់កថ្រឣ = ឥករាក់ចណំ ណញ េឺជាបញ្


ា ែរមូវឲ្យភាាប់ន្មោះ

ទូទែ់រាក្់រក្ាន និង រក្រាក្់ក្ថ្រម នៅនឹងក្បួនតដលមានន្មោះនដើមថា រក្រាក្់ចំនណ្ញ

។ ជាលទធផល ក្បួនន្មោះ រក្រាក្់ក្ថ្រម មានន្មោះរហូែដល់នៅបី។


ទំព័រ 122

ទូទែ់រាក្់រក្ាន ថ្ងលលក្់ = 1000

ថ្ងលទិញ = 900
រក្រាក្់ចំនណ្ញ
រាក្់ចំនណ្ញ = ថ្ងលលក្់ - ថ្ងលទិញ

រក្រាក្់ក្ថ្រម print(រាក្់ចំនណ្ញ)

ការយក កបួ នមកឈម្បើ

នយើងានដឹងរូចមក្នហើយថា ការបនងកើែក្បួនេឺ ជាការក្ែ់រតទុក្នូវបញ្


ា មួយចំនួននៅក្តនលង

ណាមួយនៅក្នុងសែិរបស់ក្ំពយូទ័រ នហើយបញ្
ា ទំងន ោះមិនទន់រែូវានយក្នៅអនុវែតនឡើយ

ា នៅក្នុងក្បូនរែូវយក្នៅអនុវែត នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ


។ នដើមបីឲ្យរក្រមបញ្

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើតដលជាបញ្


ា ែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងក្បួនន ោះតំងពីនដើមរហូែដល់ចប់។

ដូចននោះនយើងន ើញថា នដើមបីឲ្យរក្រមបញ្


ា តដលជាែួក្បួនរែូវយក្នៅអនុវែត នយើងចាំាច់រែូវតែ

យក្ក្បួនន ោះមក្នរបើ តមរនបៀបដូចខាងនលើននោះ។ ម៉ាងនទៀែ ការយក្ក្បួនមក្នរបើ (calling a


ទំព័រ 123

function) ក្៍ដូចជាការយក្បញ្
ា ធមមតនផេងៗនទៀែមក្នរបើតដរ នពាលេឺជាការែរមូវឲ្យអនុវែត

រក្រមបញ្
ា នៅក្នុងក្បួនន ោះពីនលើចុោះនរកាមនិងពី នឆវងនៅាតត
ំ ំងពី នដើមដល់ចប់។ ដូចននោះ

ការយក្ក្បួមមក្នរបើ ក្៍ជាបញ្
ា មួយដូចជាបញ្
ា ដថ្ទនទៀែតដរ នពាលេឺជាបញ្
ា តដលែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា តដលជាែួ ក្បួនន ោះ។

សរុបមក្នយើងន ើញថា ការបនងកើែក្បួនេឺជាការក្ែ់រតទុក្រក្រមបញ្


ា តដលជាែួក្បួននៅក្តនលង

ណាមួយនៅក្នុងសែិរបស់ក្ំពយូទ័រ។ នហើយនដើមបីឲ្យរក្រមបញ្
ា តដលជាែួក្បួនន ោះរែូវយក្នៅ

អនុវែត នយើងរែូវយក្ក្បួនន ោះមក្នរបើ។

ការយក្ក្បួនមក្នរបើ អាចរែូវនធវើនឡើងចំនួនប៉ុ ម នដងក្៍ ានតដរ នហើយរេប់ការយក្ក្បួន

ដតដលមក្នរបើ រក្រមបញ្
ា តដលជាែួ ក្បួនន ោះរែូវយក្នៅអនុវែតារជាងមីនឡើងវ ិញជាដតដលៗ

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ()

នៅក្នុងក្មមវ ិធីខាងនលើននោះនយើងន ើញថា ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ រែូវានយក្នៅនរបើ

ចំនួនបីដងបនតប ទ ប់ោន។ នដាយរេប់ការយក្ក្បួននៅនរបើបណា


ត លឲ្យរក្រមបញ្
ា នៅក្នុងន ោះ

រែូវយក្នៅអនុវែតជាដតដលៗ ដូចននោះនយើងានលទធផលដតដលៗចំនួនបីដូចៗោន។
ទំព័រ 124

ក្នុងក្រណ្ីក្បួនមួយមានន្មោះជានរចើ ន ក្បួនន ោះអាចរែូវយក្នៅនរបើ តមរយៈន្មោះណា

មួយក្៍ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

វូ ទរ់រាក់ឥកាឞ = ឥករាក់កថ្រឣ = ឥករាក់ចណំ ណញ

ឥករាក់ចណំ ណញ()

វូ ទរ់រាក់ឥកាឞ()

ឥករាក់កថ្រឣ()

ឥករាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើតមរយៈន្មោះនដើម

របស់វា។

វូទរ់រាក់ឥកាឞ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើតមរយៈន្មោះ

ទូទែ់រាក្់រក្ាន ។

ឥករាក់កថ្រឣ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើតមរយៈន្មោះ

រក្រាក្់ក្ថ្រម ។

នដាយការយក្ក្បួនមក្នរបើ ក្៍ជាបញ្
ា មួយដូចជាបញ្
ា ដថ្ទនទៀែតដរ ដូចននោះនយើងអាចយក្

ក្បួនមួយឬនរចើនមក្នរបើជាបញ្
ា នៅក្នុងក្បួនមួយនទៀែាននដាយោមនបញ្
ា អវីនឡើយ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖
ទំព័រ 125

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

def សងាាញរាក់ចណំ ណញ() :

print("រាក់ចណំ ណញទ ំងអស់មាឞដូ ចខាងណរកាឣណឞោះ៖")

ឥករាក់ចណំ ណញ()

សងាាញរាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើជាបញ្


ា នៅក្នុងក្បួន

ន្មោះ បងាាញរាក្់ចំនណ្ញ ។

សងាាញរាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ មក្នរបើ តដល

ជារបការនធវើឲ្យបញ្
ា ទំងអស់នៅក្នុងន ោះរែូវយក្នៅអនុវែត។ របការននោះក្៍ នធវើឲ្យក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ ក្៍រែូវយក្មក្នរបើតដរ នរពាោះវារែូវានយក្មក្នរបើជាបញ្


ា មួយនៅក្នុងន ោះ

របការដ៍ សំខាន់មួយនទៀែេឺថា បញ្


ា ទំងឡាយនៅក្នុងក្បួនរែូវយក្នៅអនុវែតតែនៅនពលណា

តដលក្បួនរែូវយក្នៅនរបើ តែប៉ុនណាណោះ។ ដូចននោះនយើងអាចយក្វែថុនផេងៗតដលមិនទន់រែូវាន

បនងកើែមក្នរបើ ជាបញ្
ា នៅក្នុងក្បួនាន មុននពលក្បួនន ោះរែូវយក្នៅនរបើ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

def សងាាញរាក់ចណំ ណញ() :


ទំព័រ 126

print("រាក់ចណំ ណញទ ំងអស់មាឞដូ ចខាងណរកាឣណឞោះ៖")

ឥករាក់ចណំ ណញ()

def ឥករាក់ចណំ ណញ() :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

សងាាញរាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនមិនទន់រែូវានបនងកើែន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ

ជាបញ្
ា នៅក្នុងក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ ។

ដូចននោះនៅនពលតដលក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ រែូវបនងកើែ បញ្


ា តដលជាការយក្ក្បួន

ន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ រែូវានក្ែ់រតទុក្នៅក្នុងក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ

ន ោះ។ នយើងសនងកែន ើញថាក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មិនទន់រែូវានបនងកើែនៅនឡើយ

នទ តែវារែូវានយក្នៅនរបើនៅក្នុងក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ ។ របការននោះអាចនធវើនៅ

ានពីនរពាោះបញ្
ា តដលជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើរោន់តែរែូវាន

ក្ែ់រតទុក្តែប៉ុនណាណោះ េឺ មិនទន់រែូវយក្នៅអនុវែតនឡើយ។ ានន័យថា វាសថិែនៅជាេនរមាង

មួយនៅនឡើយ។

រាក់ចណំ ណញ = ថ្លឦ
ល ក់ - ថ្លវ
ល ិ ញ េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្

វែថុន្មោះ ថ្ងលលក្់ និ ង ថ្ងលទិញ មក្នធវើរបមាណ្វ ិធីដក្រវាងោននដើមបីបនងកើែវែថុមួយងមីនទៀែមាន

ន្មោះថា រាក្់ចំនណ្ញ ។
ទំព័រ 127

នយើងន ើញថាវែថុន្មោះ ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ ជាវែថុតដលមិនទន់រែូវានបនងកើែនៅ

នឡើយ នៅនពលតដលវែថុទំងន ោះរែូវានយក្មក្នរបើនៅក្នុងក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។

របការននោះអាចនធវើនៅាន ពីនរពាោះការយក្វែថុន្មោះ ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ មក្នរបើ នៅ

ក្នុងក្ននាមរបមាណ្វ ិធី េឺរោន់តែរែូវានក្ែ់រតទុក្និងមានលក្ខណ្ៈជាេនរមាងតែប៉ុនណាណោះ

មិនតមនជាបញ្
ា ែរមូវឲ្យយក្នៅអនុវែតភាលមន ោះនទ។ នយើងេួររ ំលឹក្នឡើងវ ិញថា រេប់បញ្

ទំងអស់នៅក្នុងក្បួនមិនទន់រែូវានយក្នៅអនុវែតនៅនឡើយនទ នៅនពលក្បួនរែូវានបនងកើែ

េឺវារោន់តែរែូវានក្ែ់រតទុក្មួយអននលើតែប៉ុនណាណោះ។

សងាាញរាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ មក្នរបើ តដលជាបញ្


ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ។ នៅនពលតដលបញ្
ា ទំងន ោះរែូវានយក្នៅអនុវែត

វែថុនផេងៗតដលរែូវានយក្មក្នរបើនៅក្នុងក្បួនន្មោះ បងាាញរាក្់ចំនណ្ញ រែូវតែរែូវាន

បនងកើែរួចនហើយ នបើពុំន ោះនាែនទក្ំហុសនឹងនក្ើែមាននឡើង។

សរុបមក្ នៅនពលបនងកើែក្បួន នយើងអាចយក្វែថុនផេងៗតដលមិនទន់រែូវានបនងកើែមក្នរបើ

នៅក្នុងក្បួនាន តែនៅនពលតដលក្បួនន ោះរែូវយក្នៅនរបើ ចាំាច់វែថុទំងន ោះរែូវតែរែូវ

ានបនងកើែ នបើពុំន ោះនាែនទក្ំហុសនឹងនក្ើែមាននឡើង។

ាំ ឹ ង និង ដ្ាំ ណាង


ដ្ណ

នយើងអាចបនងកើែក្បួនន្មោះ រក្រាក្់ចំនណ្ញ តដលនយើងានន ើញក្នលងមក្តមរនបៀបម៉ាង

នទៀែដូចខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ


ទំព័រ 128

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(1000, 900)

def ឥករាក់ចណំ ណញ(ថ្លឦ


ល ក់, ថ្លវ
ល ិញ) : េឺជាបញ្
ា ែរមូវឲ្យបនងកើែក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ មួយតដលមានន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ ជាន្មោះនៅក្នុងរងវង់រក្ចក្នៅ

ក្ាលក្បួន។ ន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ េឺជាន្មោះតដលមិនទន់រែូវានភាាប់នៅនឹងវែថុណា

ទំងអស់ តដលជារបការមិនអាចនធវើនៅាននឡើយនៅខាងនរៅក្បួន។ ន្មោះទំងន ោះរែូវ

នៅថា ដំណាង (parameter) ។ ដំណាងតដលជាន្មោះនៅក្ាលក្បួនក្៍ រែូវចាែ់ទុក្ថាសថិែ

នៅក្នុងក្បួនតដរ។ នលើសពី ននោះនទៀែ ដំណាងទំងន ោះរែូវយក្មក្នរបើ នៅក្នុងក្បួននធវើហាក្់ដូច

ជាវារែូវានភាាប់នៅនឹងវែថុណាមួយរួចនៅនហើយ។ របការននោះអាចរែូវនធវើនៅាននដាយារ

បញ្
ា នៅក្នុងក្បួនមិនទន់ រែូវយក្នៅអនុវែត េឺវារោន់តែជាេនរមាងការមួយតែប៉ុនណាណោះ។

ក្៍ប៉ុតនត នៅនពលតដលក្បួនរែូវយក្នៅនរបើ តដលជាបញ្


ា ែរមូវឲ្យយក្រក្រមបញ្
ា នៅក្នុងក្បួន

នៅអនុវែត ដំណាងទំងន ោះចាំាច់រែូវតែរែូវានភាាប់នៅនឹងវែថុណាមួយ នបើពុំន ោះនាែនទ

ក្ំហុសនឹងនក្ើែមាននឡើង។

ឥករាក់ចណំ ណញ(1000, 900) េឺជាយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ នដាយែរមូវឲ្យ

ដំណាង ថ្ងលលក្់ ភាាប់នៅនឹងនលខ្ 1000 និងដំណាង ថ្ងលទិញ ភាាប់នៅនឹងនលខ្ 900 ។

ដូចននោះនៅនពលតដលរក្រមបញ្
ា នៅក្នុងក្បួនន្មោះ រក្រាក្់ចំនណ្ញ រែូវយក្នៅអនុវែត រេប់

ការយក្ដំណាង ថ្ងលលក្់ និង ថ្ងលទិញ នៅនរបើ េឺ ជាការយក្នលខ្ 1000 និងនលខ្ 900 នៅនរបើ

នរៀងោន។ វែថុតដលនយើងផតល់ឲ្យក្បួននៅនពលយក្ក្បួនមក្នរបើ រែូវនៅថា ដំណ្ឹង (argument)

តដលអាចជាវែថុរបនភទណាក្៍ ានតដរ។
ទំព័រ 129

1000 900

def រក្រាក្់ចំនណ្ញ(ថ្ងលលក្់, ថ្ងលទិញ) :

រក្រាក្់ចំនណ្ញ(1000, 900) = រាក្់ចំនណ្ញ = ថ្ងលលក្់ - ថ្ងលទិញ



print(“រាក្់ចំនណ្ញទំងអស់េឺ៖”, រាក្់ចំនណ្ញ)

បញ្ជ
ា return

return េឺជាបញ្
ា នរបើនៅក្នុងក្បួនសរមាប់បញ្ចប់ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងក្បួននិងបញ្ូា នវែថុ

ណាមួយនៅក្តនលងតដលក្បួនរែូវានយក្នៅនរបើ ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

return រាក់ចណំ ណញ

ឧរថុកបួឞសញ្ាូ ឞឣក = ឥករាក់ចណំ ណញ(1000, 900)

print(ឧរថុកបួឞសញ្ាូ ឞឣក)

return រាក់ចណំ ណញ េឺជាការនរបើបញ្


ា return នដើមបីបញ្ចប់ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងក្បួន

ន្មោះ រក្រាក្់ចំនណ្ញ និងបញ្ូា នវែថុន្មោះ រាក្់ចំនណ្ញ នៅកាន់ ក្តនលងតដលក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ រែូវានយក្នៅនរបើ ។
ទំព័រ 130

ថ ួ ឞសញ្ូ ា ឞឣក = ឥករាក់ចណំ ណញ(1000, 900) េឺ ជាការយក្ក្បួនន្មោះ


ឧរុ កប

រក្រាក្់ចំនណ្ញ មក្នរបើនដាយផតល់ដំណ្ឹងជានលខ្ 1000 និងនលខ្ 900 ឲ្យនៅដំណាង

ថ្ងលលក្់ និង ថ្ងលទិញ នរៀងោន។ ជាលទធផល ក្បួនន្មោះ រក្រាក្់ ចំនណ្ញ បញ្ូា នវែថុមួយតដល

ជានលខ្ 100 នៅកាន់ ក្តនលងតដលក្បួនននោះរែូវានយក្នៅនរបើ ។ វែថុតដលក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ បញ្ូា នមក្ននោះរែូវានភាាប់នៅនឹងន្មោះ វែថុក្បួនបញ្ូា នមក្ ។

រេប់ក្បួនទំងអស់តដលោមនបញ្
ា return នៅក្នុងន ោះ បញ្ូា ននមា ៈវែថុ None នៅកាន់ក្តនលង

តដលក្បួនរែូវានយក្នៅនរបើ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

ឧរថុកបួឞសញ្ាូ ឞឣក = ឥករាក់ចណំ ណញ(1000, 900)

print(ឧរថុកបួឞសញ្ាូ ឞឣក)

វែថុក្បួនបញ្ូា នមក្ = រក្រាក្់ចំនណ្ញ(1000, 900) េឺជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ

មក្នរបើ និងភាាប់ ន្មោះ វែថុក្បួនបញ្ូា នមក្ នៅនឹងវែថុតដលក្បួនន ោះបញ្ូា នមក្។ នដាយនៅក្នុង

ក្បួនន ោះោមនការនរបើបញ្
ា return នដើមបីបញ្ូា នវែថុណាមួយន ោះ ដូចននោះក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ បញ្ូា ននមា ៈវែថុ None នៅកាន់ ក្តនលងតដលក្បួនន ោះរែូវានយក្នៅនរបើ ។

ជាទូនៅ នយើងមិនសូវរវ ីរវល់នឹងនមា ៈវែថុតដលក្បួននផេងៗបញ្ូា នមក្ន ោះនទ។

ាំ ឹ ង តមឈលខឈរៀង
ដ្ណ

ដំណ្ឹងតមនលខ្នរៀង (positional argument) េឺជាដំណ្ឹងទំងឡាយណាតដលនយើងផតល់ឲ្យ

នៅក្បួននដាយរែូវែនរមៀបនៅតមនលខ្នរៀងថ្នដំណាងនៅក្នុងក្បួន។ ដូចននោះការផតល់ដំណ្ឹង
ទំព័រ 131

ឲ្យនៅក្បួនទំងឡាយក្នលងមក្ េឺ ជាការផតល់ដំណ្ឹងតមនលខ្នរៀង។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(1000, 900)

ឥករាក់ចណំ ណញ(1000, 900) េឺជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ នដាយផតល់

ដំណ្ឹងតមនលខ្នរៀងឲ្យវា។ ានន័យថា ដំណ្ឹងជានលខ្ 1000 េឺសរមាប់ដំណាង ថ្ងលលក្់

និងដំណ្ឹងជានលខ្ 900 េឺសរមាប់ដំណាង ថ្ងលទិញ ។

ាំ ឹ ង តមដ្ណា
ដ្ណ ាំ ង

ដំណ្ឹងតមដំណាង (keyword argument) េឺ ជាដំណ្ឹងទំងឡាយណាតដលរែូវានភាាប់នៅ

នឹងដំណាងនផេងៗមុនរួចជានស្រសចនៅនពលយក្ក្បួនមក្នរបើ។ ពិ និែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(ថ្លលវិញ=900, ថ្លលឦក់=1000)


ទំព័រ 132

ឥករាក់ចណំ ណញ(ថ្លវ
ល ិ ញ=900, ថ្លឦ ់ 1000) េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ
ល ក=

មក្នរបើ នដាយផតល់ដំណ្ឹងតមដំណាងឲ្យវា។ ានន័យថា ដំណ្ឹងតដលជានលខ្ 900 េឺ

សរមាប់ដំណាង ថ្ងលទិញ និងដំណ្ឹងតដលជានលខ្ 1000 េឺសរមាប់ដំណាង ថ្ងលលក្់ ។

នៅក្នុងក្មមវ ិធីខាងនលើននោះ នយើងសនងកែន ើញថា ការផតល់ដំណ្ឹងតមដំណាងឲ្យនៅក្បួនមិន

ចាំាច់រែូវនោរពនៅតមនលខ្នរៀងថ្នដំណាងនឡើយ នរពាោះដំណាងនិមួយៗរែូវានភាាប់រច

ជានស្រសចនៅនឹងដំណ្ឹងទំងន ោះ។

ាំ ឹ ង ោនម្ាប់
ដ្ណ

ដំណ្ឹងមានស្រាប់ (default argument) េឺជាដំណ្ឹងទំងឡាយណាតដលមានមុនរួចជានស្រសច

នៅនពលក្បួនរែូវានបនងកើែ។ នហើយនៅនពលតដលក្បួនរែូវយក្នៅនរបើ នបើក្បួនមិនាន

ទទួលដំណ្ឹងឬទទួលដំណ្ឹងមិនរេប់ រោន់ ក្បួននឹងយក្ដំណ្ឹងមានស្រាប់ ទំងន ោះមក្នរបើ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ()

ឥករាក់ចណំ ណញ(1000)

ឥករាក់ចណំ ណញ(ថ្លលវិញ=900)

ឥករាក់ចណំ ណញ(1000, 900)


ទំព័រ 133

def ឥករាក់ចណំ ណញ(ថ្លឦ


ល ក់=0, ថ្លវ
ល ិ ញ=0) : េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ មួយតដលមានដំណ្ឹងមួយចំនួនរួចជានស្រសចសរមាប់ដំណាងផេងៗនៅក្នុង

ន ោះ។ នពាលេឺដំណ្ឹងសរមាប់ដំណាង ថ្ងលលក្់ េឺជានលខ្ 0 និងដំណ្ឹងសរមាប់ដំណាង

ថ្ងលទិញ ក្៍ជានលខ្ 0 តដរ។ ដំណ្ឹងទំងអស់ន ោះរែូវនៅថាដំណ្ឹងមានស្រាប់ ។

ឥករាក់ចណំ ណញ() េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើនដាយមិនផតល់ដំណ្ឹង

អវីទំងអស់ឲ្យវា។ ក្នុងក្រណ្ីននោះ ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ យក្ដំណ្ឹងមានស្រាប់ ជាប់នឹង

ដំណាងនផេងៗមក្នរបើ។

ឥករាក់ចណំ ណញ(1000) េឺជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ នដាយផតល់

ដំណ្ឹងតែមួយសរមាប់ដំណាងនៅខាងនដើមនេតដលជាដំណាង ថ្ងលលក្់ ។ ក្នុងក្រណ្ីននោះ ក្បួន

ន្មោះ រក្រាក្់ចំនណ្ញ យក្ដំណ្ឹងមានស្រាប់ តដលជានលខ្ 0 មក្នរបើ សរមាប់ដំណាង

ថ្ងលទិញ ។

ឥករាក់ចណំ ណញ(ថ្លវ
ល ិ ញ=900) េឺជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើនដាយ

ផតល់ដំណ្ឹងតមដំណាងតែមួយសរមាប់ដំណាង ថ្ងលទិញ ។ ក្នុងក្រណ្ីននោះ ក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ យក្ដំណ្ឹងមានស្រាប់ តដលជានលខ្ 0 មក្នរបើសរមាប់ដំណាង ថ្ងលលក្់ ។

ឥករាក់ចណំ ណញ(1000, 900) េឺជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ មក្នរបើ នដាយផតល់

ដំណ្ឹងមានចំនួនរេប់រោន់ឲ្យនៅក្បួនន ោះ។ ក្នុងក្រណ្ីននោះ ដំណ្ឹងមានស្រាប់ មិនរែូវាន

យក្មក្នរបើនទ េឺ រែូវទុក្នចាល។

នយើងានដឹងរូចមក្នហើយថា បញ្
ា នផេងៗនៅក្នុងក្បួនមិនរែូវានយក្នៅអនុវែតនទនៅនពល

ក្បួនរែូវានបនងកើែ។ បញ្
ា ទំងន ោះរែូវយក្នៅអនុវែតតែនៅនពលណាតដលក្បួនរែូវយក្នៅ
ទំព័រ 134

នរបើតែប៉ុនណាណោះ។ ក្៍ប៉ុតនតចំនពាោះក្បួនតដលមានដំណ្ឹងមានស្រាប់ បញ្


ា ចាែ់តំងភាាប់ ដំណាង

នៅនឹងដំណ្ឹងទំងឡាយរែូវយក្នៅអនុវែតនៅនពលក្បួនរែូវានបនងកើែ។ ដូចននោះនៅក្នុង

ា តដលមានទរមង់ជា def ឥករាក់ចណំ ណញ(ថ្លឦ


ក្មមវ ិធីខាងនលើ បញ្ ល ក់=0, ថ្លវ
ល ិញ=0) : េឺ ជា

បញ្
ា ែរមូវឲ្យបនងកើែក្បួនន្មោះ រក្រាក្់ចំនណ្ញ និងែរមូវឲ្យយក្បញ្
ា ចាែ់តំង ថ្ងលលក្់=0

និង ថ្ងលទិញ=0 នៅអនុវែតរពមនពលជាមួយោន។

ម៉ាងនទៀែនយើងរែូវនធវើការក្ែ់សំោល់ផងតដរថា ដំណ្ឹងរតមដំណាងនិងដំណ្ឹងមានស្រាប់


មានទរមង់ដូចោនេឺ ដត ំ ឹ ង តែវាជានរឿងពីរខ្ុសោនស្រសឡោះ។ ដំណ្ឹងតម
ង = ដណ

ដំណាងរែូវផតល់ឲ្យនៅក្បួននៅនពលយក្ក្បួនមក្នរបើ ចំតណ្ក្ឯដំណ្ឹងមានស្រាប់ រែូវាន

បនងកើែនឡើងនៅនពលក្បួនរែូវានបនងកើែ។ នលើសពីននោះនទៀែ នយើងអាចផតល់ដំណ្ឹងតម

ា អវីនឡើយ។ ពិនិែយក្មមវ ិធីខាងនរកាម


ដំណាងឲ្យនៅក្បួនមានដំណ្ឹងមានស្រាប់ នដាយោមនបញ្

ននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(ថ្លលឦក់=1000, ថ្លលវិញ=900)

def ឥករាក់ចណំ ណញ(ថ្លឦ


ល ក់=0, ថ្លវ
ល ិ ញ=0) : េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែក្បួនមួយមានន្មោះ

ថា រក្រាក្់ចំនណ្ញ តដលមានដំណ្ឹងមានស្រាប់ រច
ូ ជានស្រសចសរមាប់ដំណាងទំងពីរនៅក្នុង

ន ោះ។

ឥករាក់ចណំ ណញ(ថ្លឦ
ល ក់=1000, ថ្លវ
ល ិ ញ=900) េឺ ជាការយក្ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ

តដលជាក្បួនមានដំណ្ឹងមានស្រាប់មក្នរបើ នដាយផតល់ដំណ្ឹងតមដំណាងឲ្យនៅក្បួនន ោះ។


ទំព័រ 135

ាំ ឹ ង
ការបាំផ្បក ដ្ណ

ការបំតបក្ដំណ្ឹង (unpacking argument) េឺជាការចមលងយក្សមាសវែថុនផេងៗមក្បំតបក្ជា

ដំណ្ឹងផតល់ឲ្យនៅក្បួនណាមួយ។ ទនងវើននោះរែូវនធវើនឡើងនៅនពលយក្ក្បួនមក្នរបើ។

នយើងអាចចមលងយក្ក្រមងនផេងៗមក្បំតបក្ជាដំណ្ឹងផតល់ឲ្យនៅក្បួនណាមួយនដាយសរនសរ

ក្មមវ ិធីដូចខាងនរកាមននោះ៖

ករឣងរាក់ = [1000, 900]

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គឺ៖", រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(*ករឣងរាក់)

ឥករាក់ចណំ ណញ(*ករឣងរាក់) េឺជាការចមលងយក្ក្រមងអនងរន្មោះ ក្រមងរាក្់ មក្បំតបក្

ជាដំណ្ឹងតមនលខ្នរៀងចំនួនពីរផតល់ឲ្យនៅក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។

ដូចននោះនយើងន ើញថា នដើមបីចមលងយក្ក្រមងណាមួយមក្បំតបក្ជាដំណ្ឹងផតល់ឲ្យនៅក្បួន

ណាមួយ នយើងរែូវនរបើ សញ្ដផ្ទកយ (*) នៅខាងមុខ្ក្រមងន ោះ។

នរៅពីសមាសវែថុតដលជាក្រមង នយើងក្៍ អាចចមលងយក្វច នុរក្មណាមួយមក្បំតបក្ជា

ដំណ្ឹងតមដំណាងសរមាប់ផតល់ឲ្យនៅក្បួនណាមួយានតដរ។ ពិនិែយក្មមវ ិធី ខាងនរកាមននោះ៖

សងវិចរាក់ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900}

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ


ទំព័រ 136

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(**សងវិចរាក់)

ឥករាក់ចណំ ណញ(**សងិច
វ រាក់) េឺ ជាការចមលងយក្វច នុរក្មន្មោះ បងវិចរាក្់ មក្បំតបក្

ជាដំណ្ឹងតមដំណាងចំនួនពីរផតល់ឲ្យនៅក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។

ដូចននោះនយើងន ើញថា នដើមបីចមលងយក្វច នុរក្មណាមួយមក្បំតបក្ជាដំណ្ឹងតមដំណាង

សរមាប់ផតល់ឲ្យនៅក្បួនណាមួយ នយើងរែូវនរបើ សញ្ដផ្ទកយពីរ (**) នៅខាងមុខ្វច នុរក្ម

ន ោះ។ ម៉ាងនទៀែ ក្ូននារនៅក្នុងវច នុរក្មរែូវតែដូចោននបោះបិទនៅនឹងដំណាងនៅក្នុង

ក្បួន។

ការម្បមូល ផតុាំដ្ណ
ាំ ឹ ង

ការរបមូលផតុំដំណ្ឹង (collecting arguments) េឺជាការរបមូលផតំុដំណ្ឹងមានចំនួនមិនក្ំណ្ែ់

មក្បនងកើែជាសមាសវែថុណាមួយទុក្នៅក្នុងក្បួនណាមួយ។

នយើងអាចរបមូលផតំុដំណ្ឹងតមនលខ្នរៀងមានចំនួនមិនក្ំណ្ែ់ មក្បនងកើែជាក្រមងនងរមួយទុក្

នៅក្នុងក្បួនណាមួយនដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def រសឣូ ឦហោុ(ំ *ករឣងរាក់) :

print(ករឣងរាក់)

រសឣូ ឦហោុ(ំ 1000, 900)

def រសឣូឦហុ (ោំ *ករឣងរាក)់ : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្បួនន្មោះ របមូ លផតំុ មួ យតដលមាន

សមែថភាពអាចរបមូលយក្ដំណ្ឹងតមនលខ្នរៀងមានចំនួនមិនក្ំណ្ែ់ មក្បនងកើែជាក្រមងនងរ
ទំព័រ 137

មួយមានន្មោះថា ក្រមងរាក្់ ។ នហើយេឺ នដាយារសញ្ដផ្ទកយមួយ (*) នៅមុខ្ដំណាង

ក្រមងរាក្់ ននោះនហើយតដលនធវើឲ្យក្បួនននោះមានសមែថភាពអាចរបមួលយក្ដំណ្ឹងតមនលខ្

នរៀងមានចំនួនមិនក្ំណ្ែ់ មក្បនងកើែជាក្រមងនងរន្មោះ ក្រមងរាក្់ ននោះ។

រសឣូឦហុ (ោំ 1000, 900) េឺជាការយក្ក្បួនន្មោះ របមូ លផតំុ មក្នរបើ នដាយផតល់ដំណ្ឹងតម

នលខ្នរៀងចំនួនពីរឲ្យនៅក្បួនន ោះ។ ដំណ្ឹងទំងន ោះរែូវានរបមូលផតំុបនងកើែជាក្រមងនងរ

មានន្មោះថា ក្រមងរាក្់ ទុក្នៅក្នុងក្បួនន ោះ។

ដូចោនតដរ នយើងអាចរបមូលផតំុដំណ្ឹងតមដំណាងមានចំនួនមិនក្ំណ្ែ់ យក្មក្បនងកើែជា

វច នុរក្មមួយទុក្នៅក្នុងក្បួនណាមួយនដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def រសឣូ ឦហោុ(ំ **សងវិចរាក់) :

print(សងវិចរាក់)

រសឣូ ឦហោុ(ំ ថ្លលឦក់=1000, ថ្លលវិញ=900)

def រសឣូឦហុ (ោំ **សងិច


វ រាក់) : េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែក្បួនន្មោះ របមូ លផតំុ មួ យតដលមាន

សមែថភាពអាចរបមូលផតំុយក្ដំណ្ឹងតមដំណាងមានចំនួនមិនក្ំណ្ែ់មក្បនងកើែជា

វច នុរក្មមួយមានន្មោះថា បងវិចរាក្់ ។ េឺនដាយារសញ្ដផ្ទកយពីរ (**) នៅខាងមុខ្

ដំណាង បងវិចរាក្់ ននោះនហើយតដលនធវើឲ្យក្បួនន្មោះ របមូ លផតំុ មានសមែថភាពអាចរបមូលផតំុ

ដំណ្ឹងតមដំណាងមានចំនួនមិនក្ំណ្ែ់ មក្បនងកើែជាវច នុរក្មទុក្នៅក្នុងន ោះ។

រសឣូឦហុ (ោំ ថ្លឦ


ល ក់=1000, ថ្លវ
ល ិញ=900) េឺ ជាការយក្ក្បួនន្មោះ របមូ លផតំុ មក្នរបើ នដាយផតល់

ដំណ្ឹងតមដំណាងចំនួនពីរឲ្យនៅក្បួនន ោះ។ ដំណ្ឹងទំងន ោះរែូវានរបមូលផតំុបនងកើែជា

វច នុរក្មមួយមានន្មោះថា បងវិចរាក្់ ទុក្នៅក្នុងក្បួនន ោះ។


ទំព័រ 138

នយើងន ើញថា ការបំតបក្ដំណ្ឹងនិ ងការរបមូលផតំុដំណ្ឹង េឺសុទធតែរែូវនរបើសញ្ដផ្ទកយមួយឬ

ពីរនៅខាងមុខ្ដំណ្ឹងឬដំណាងណាមួយដូចោន។ តែរបការតដលខ្ុសោនេឺ នៅរែង់ថា ចំនពាោះ

ការបំតបក្ដំណ្ឹង នយើងរែូវនរបើសញ្ដផ្ទកយនៅខាងមុខ្ដំណ្ឹងនៅនពលយក្ក្បួនមក្នរបើ តែ

ចំនពាោះការរបមូលផតំុដំណ្ឹងវ ិញ នយើងរែូវនរបើ សញ្ដផ្ទកយនៅខាងមុខ្ដំណាងនៅនពលបនងកើែ

ក្បួន។

ាំ
លាំដាប់ ថ្នែក់ ននដ្ណា ាំ ឹ ង
ង និង ដ្ណ

នយើងអាចបនងកើែក្បួនមួយតដលនៅក្នុងន ោះមានដំណាងធមមត ដំណាងមានផ្ទកយមួយ និង

ដំណាងមានផ្ទកយពីរ នដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def រសឣូ ឦ(រាក់ចណំ ណញ, *ករឣងរាក់, **សងវិចរាក់) :

print(រាក់ចណំ ណញ)

print(ករឣងរាក់)

print(សងវិចរាក់)

រសឣូ ឦ(100, 1000, 900, ថ្លលឦក់=1000, ថ្លលវិញ=900)

def រសឣូឦ(រាក់ចណំ ណញ, *ករឣងរាក,់ **សងិច


វ រាក់) : េឺជាបញ្
ា ែរមូវឲ្យបនងកើែក្បួន

ន្មោះ របមូល មួយតដលនៅក្នុងន ោះមានដំណាងធមមត ដំណាងមានផ្ទកយមួយ និងដំណាង

មានផ្ទកយពីរ។ របការននោះនធវើឲ្យក្បួនន្មោះ របមូល ននោះមានសមែថភាពអាចរបមូលយក្

ដំណ្ឹងធមមតតដលជាដំណ្ឹងតមនលខ្នរៀង និងដំណ្ឹងតមដំណាងមក្បនងកើែជាវែថុនទល

ក្រមងនងរ និងវច នុរក្មទុក្នៅក្នុងក្បួនន ោះ។


ទំព័រ 139

អាស្រស័យនៅតមចាប់នៅក្នុងភាា Python នៅនពលបនងកើែក្បួន ដំណាងធមមតរែូវនៅមុខ្

ដំណាងមានផ្ទកយមួយតដលរែូវនៅមុខ្ដំណាងមានផ្ទកយពីរ។

ល ក់=1000, ថ្លវ
រសឣូឦ(100, 1000, 900, ថ្លឦ ល ិ ញ=900) េឺជាការយក្ក្បួនន្មោះ របមូល មក្

នរបើនដាយផតល់ដំណ្ឹងតមនលខ្នរៀងនិងដំណ្ឹងតមដំណាងឲ្យនៅក្បួនន ោះ។ ដំណ្ឹងតម

នលខ្នរៀងេឺសរមាប់ដំណាងធមមត តែនបើដំណ្ឹងន ោះមានចំនួននលើសពី ដំណាងធមមត ដំណ្ឹង

នៅសល់ទំងប៉ុ ម ន េឺសរមាប់ដំណាងមានផ្ទកយមួយ។ ចំនពាោះដំណ្ឹងតមដំណ្ឹងវ ិញ េឺ

សរមាប់ដំណាងមានផ្ទកយពីរ។ ប ទ ប់ពីានទទួលដំណ្ឹងរួចមក្ ក្បួនន្មោះ របមូល ក្៍

របមូលយក្ដំណ្ឹងទំងន ោះមក្បនងកើែជាវែថុនទលន្មោះ រាក្់ចំនណ្ញ ក្រមងនងរន្មោះ

ក្រមងរាក្់ និងវច នុរក្មន្មោះ បងវិចរាក្់ ទុក្នៅក្នុងក្បួនន ោះ។

អាស្រស័យនៅតមចាប់នៅក្នុងភាា Python នៅក្នុងការផតល់ដំណ្ឹងឲ្យនៅក្បួន ដំណ្ឹងធមមត

តដលជាដំណ្ឹងតមនលខ្នរៀង រែូវនៅខាងមុខ្ដំណ្ឹងតមដំណាង។

នយើងអាចយក្ក្បួនមួយមក្នរបើ នដាយផតល់ឲ្យវានូវដំណ្ឹងធមមតនិងដំណ្ឹងានមក្ពី ការចមលង

យក្សមាសវែថុនផេងៗមក្បំតបក្។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងរាក់ = [2000, 1500]

សងវិចរាក់ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900}


def ោច់រាក់(រាក់សឥុស, រាក់ណៅសឦ់ , រាក់ចត ឤ, ថ្លលឦក់=0, ថ្លលវិញ=0) :

print(រាក់សឥុស)

print(រាក់ណៅសឦ់ )


print(រាក់ចត ឤ)

print(ថ្លលឦក់)

print(ថ្លលវិញ)
ទំព័រ 140

ោច់រាក់(10000, *ករឣងរាក់, **សងវិចរាក់)

ោច់រាក(់ 10000, *ករឣងរាក់, **សងិច


វ រាក់) េឺ ជាការយក្ក្បួនន្មោះ ាច់រាក្់ មក្នរបើ

នដាយផតល់ដំណ្ឹងធមមតតដលជានលខ្ 10000 ដំណ្ឹងមានផ្ទកយមួយន្មោះ *ក្រមងរាក្់ និង

ដំណ្ឹងមានផ្ទកយពីរ **បងវិចរាក្់ ឲ្យនៅក្បួនន ោះ។

អាស្រស័យនៅតមនៅតមចាប់នៅក្នុងភាា Python ដំណ្ឹងធមមតរែូវនៅមុខ្ដំណ្ឹងមាន

ផ្ទកយមួយតដលរែូវនៅមុខ្ដំណ្ឹងមានផ្ទកយពីរ។

ផ្ដ្នកាំណត្់

តដនក្ំណ្ែ់ (scope) េឺជាទីក្តនលងនផេងៗនៅក្នុងសែិរបស់ក្ំពយូទ័រតដលមានរពរំតដន

ចាស់លាស់។

ដដនក្ំណត់សក្េ

ទីក្តនលងនៅខាងនរៅក្បួននិងនៅក្នុងឯក្ារតដលជាក្មមវ ិធីនៅថា តដនក្ំណ្ែ់ សក្ល

(global scope) ។ នដើមបីបនងកើែវែថុនផេងៗនៅក្នុងតដនក្ំណ្ែ់ សក្ល នយើងរែូវសរនសរក្មមវ ិធី

ដូចខាងនរកាមននោះ៖

ករឣងរាក់ = [2000, 1500]

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ(*ករឣងរាក់)
ទំព័រ 141

ករឣងរាក់ = [2000, 1500] េឺជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអនងរន្មោះ ក្រមងរាក្់ មួយ

សថិែនៅក្នុងតដនក្ំណ្ែ់ សក្ល។

ដដនក្ំណត់បោយដែក្

តដនក្ំណ្ែ់នដាយតឡក្ (local scope) េឺជាទី ក្តនលងនៅក្នុងក្បួន។ នដើមបីបនងកើែវែថុនផេងៗនៅ

ក្នុងតដនក្ំណ្ែ់នដាយតឡក្ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់=0, ថ្លលវិញ=0) :

ករឣងរាក់ = [2000, 1500]

ថ្លលឦក់ = ករឣងរាក់[0]

ថ្លលវិញ = ករឣងរាក់[1]

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print("រាក់ចណំ ណញទ ំងអស់គ៖",


ឺ រាក់ចណំ ណញ)

ឥករាក់ចណំ ណញ()

ករឣងរាក់ = [2000, 1500] េឺជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអនងរន្មោះ ក្រមងរាក្់ មួយ

សថិែនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្នៅក្នុងក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។

រេប់វែថុនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្រែូវបនងកើែនឡើងនៅនពលតដលក្បួនរែូវយក្នៅនរបើ និង

រែូវលុបនចាលវ ិញនៅនពលតដលក្បួនរែូវាននរបើ រច
ួ នហើយ។ ជាក្់តសតងនៅក្នុងក្មមវ ិធីខាងនលើ

ក្រមងអនងរន្មោះ ក្រមងរាក្់ រែូវានបនងកើែនឡើងនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្នៅនពល

តដលក្បួនន្មោះ រក្រាក្់ចំនណ្ញ រែូវានយក្នៅនរបើ នហើយរែូវលុបនចាលវ ិញនៅនពល

តដលក្បួនន ោះរែូវាននរបើរច
ួ នហើយ។
ទំព័រ 142

ដដនក្ំណត់ចា ក្
ឹ ក្ាុងនិងដដនក្ំណត់ចា ក្
ឹ បរៅ
នៅនពលតដលក្បួនមួយរែូវានបនងកើែនឡើងនៅក្នុងក្បួនមួយនទៀែ ទីក្តនលងរបស់ក្បួននៅខាង

ក្នុងេឺជា តដនក្ំណ្ែ់ចារ ឹក្ក្នុង (nested scope) និងទីក្តនលងរបស់ក្បួននៅខាងនរៅេឺ ជា

តដនក្ំណ្ែ់ចារ ឹងក្នរៅ (enclosing scope) ។ នដើមបីបនងកើែវែថុនផេងៗនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្

ក្នុង និងនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

def កបួឞចាឥកណរៅ()
ឹ :

ករឣងរាក់ = [2000, 1500]

print("ឧរថុកដឦររូឧាឞសណងកើរណឡើងណៅកនុងកដឞកំណរ់ចាឥកណរៅគ
ឹ ៖",
ឺ ករឣងរាក់)

def កបួឞចាឥកកន
ឹ ុ ង() :

សងវិចរាក់ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900}

print("ឧរថុកដឦររូឧាឞសណងកើរណឡើងណៅកនុងកដឞកំណរ់ចាឥកកន
ឹ ុ ងគឺ៖", សងវិចរាក់)

កបួឞចាឥកកន
ឹ ុ ង()

កបួឞចាឥកណរៅ()

ករឣងរាក់ = [2000, 1500] េឺជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអនងរមួយមានន្មោះថា

ក្រមងរាក្់ សថិែនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្នរៅថ្នក្បួនន្មោះ ក្បួនចារ ឹក្នរៅ ។

វ រាក់ = {"ថ្លឦ
សងិច ល ក់":1000, "ថ្លវ
ល ិញ":900} េឺជាបញ្
ា ែរមូវឲ្យបនងកើែវច នុរក្មន្មោះ

បងវិចរាក្់ មួយសថិែនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងថ្នក្បួនន្មោះ ក្បួនចារ ឹក្ក្នុង ។

វែថុនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងនិងវែថុនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅ ក្៍ដូចជាវែថុនៅក្នុង

តដនក្ំណ្ែ់នដាយតឡក្តដរ េឺ វារែូវានបនងកើែនឡើងនៅនពលតដលក្បួនរែូវានយក្នៅនរបើ

និងរែូវលុបនចាលវ ិញនៅនពលតដលក្បួនរែូវាននរបើរច
ួ នហើយ។ ក្៍ប៉ុតនតនបើ សិនណាជាវែថុ
ទំព័រ 143

ទំងន ោះរែូវានបញ្ូា ននៅកាន់ តដនក្ំណ្ែ់នៅខាងនរៅក្បួន វែថុទំងន ោះនឹងមិនរែូវាន

លុបនចាលនឡើយនៅនពលតដលក្បួនរែូវាននរបើ រច
ូ នហើយន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ() :

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

return រាក់ចណំ ណញ

រាក់កថ្រឣ = ឥករាក់ចណំ ណញ()

print(រាក់កថ្រឣ)

រាក់កថ្រឣ = ឥករាក់ចណំ ណញ() េឺ ជាបញ្


ា ែរមូវឲ្យភាាប់ន្មោះ រាក្់ក្ថ្រម នៅនឹងវែថុតដល

ក្បួនន្មោះ រក្រាក្់ ចំនណ្ញ បញ្ូា នមក្។ វែថុន្មោះ រាក្់ក្ថ្រម ននោះេឺ ជាវែថុន្មោះ

រាក្់ចំនណ្ញ តដលរែូវានបនងកើែនឡើងនៅក្នុងក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។ ដូចននោះវែថុ

ន្មោះ រាក្់ចំនណ្ញ មិនរែូវានលុបនចាលនឡើយនទោះបី ជាវារែូវានបនងកើែនៅក្នុងក្បួនក្៍

នដាយ នរពាោះវារែូវានបញ្ូា ននចញផុែពី ក្ុងក្ប


ន ួ នរួចនៅនហើយ។

ដដនក្ំណត់ទូបៅ

តដនក្ំណ្ែ់ទូនៅ (build-in scope) េឺជាទីក្តនលងមួយនៅក្នុងសែិរបស់ក្ំពយូទ័រតដលវែថុមួយ

ចំនួនរែូវានបនងកើែនឡើងរូចជានស្រសចទុក្នៅក្នុងន ោះ។ វែថុទំងន ោះរែូវនៅថា វែថុមានស្រាប់

(build-in object) តដលអាចរែូវយក្នៅនរបើ នៅក្នុងតដនក្ំណ្ែ់ណាក្៍ានតដរ។


ទំព័រ 144

តដនក្ំណ្ែ់ទូនៅ

តដនក្ំណ្ែ់សក្ល

តដនក្ំណ្ែ់នដាយតឡក្ឬចារ ឹក្នរៅ

តដនក្ំណ្ែ់ចារ ឹក្ក្នុង
ទំព័រ 145

កា ដសវង ក្វតថុ

នៅក្នុងភាា Python នៅនពលតដលនយើងយក្វែថុណាមួយមក្នរបើ ការតសវងរក្វែថុន ោះរែូវនធវើ

នឡើងតមេំនូសបំរពួញដូចខាងនរកាមននោះ៖

តដនក្ំណ្ែ់ទូនៅ

តដនក្ំណ្ែ់សក្ល

តដនក្ំណ្ែ់ចារ ឹក្នរៅឬ

តដនក្ំណ្ែ់នដាយតឡក្

តដនក្ំណ្ែ់ចារ ឹក្ក្នុង

េឺានន័យថាការតសវងរក្វែថុរែូវនធវើនឡើងនដាយចាប់នផតើមនៅក្នុងតដនក្ំណ្ែ់តដលវែថុរែូវាន

យក្នៅនរបើ រួចានបនតនៅតដនក្ំណ្ែ់នផេងៗនទៀែតមសញ្ដរពួញដូចនៅក្នុងរូបខាងនលើ

ននោះរហូែដល់អស់តដនក្ំណ្ែ់។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ទំព័រ 146

ឃ្លលសកឦ = "កដឞកំណរ់សកឦ"

def កបួឞណរៅ() :

ឃ្លលចាឥកណរៅ
ឹ = "កដឞកំណរ់ណ ឤកឡកឬចាឥកណរៅ"

def កបួឞកនុង() :

ឃ្លលចាឥកកន
ឹ ុ ង = "កដឞកំណរ់ចាឥកកន
ឹ ុ ង"

print("ឃ្លលសកឦររូឧាឞឥកណឃើញណៅកនុង ", ឃ្លលសកឦ)

print("ឃ្លលចាឥកណរៅររូ
ឹ ឧាឞឥកណឃើញណៅកនុង ", ឃ្លលចាឥកណរៅ)

print("ឃ្លលចាឥកកន
ឹ ុ ងររូឧាឞឥកណឃើញណៅកនុង ", ឃ្លលចាឥកកន
ឹ ុ ង)

កបួឞកនុង()

កបួឞណរៅ()

print("ឃ្លលសកឦររូឧាឞឥកណឃើញណៅកុ ង
ន ", ឃ្លលសកឦ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះវែថុ

ន្មោះ ឃ្លលសក្ល រែូវានយក្មក្នរបើនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្ក្នុង។ ដូចននោះការតសវងរក្វែថុ

ន្មោះ ឃ្លលសក្ល ននោះរែូវចាប់នផតើមនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងន ោះមុននេ រួចាននឡើងនៅ

តដនក្ំណ្ែ់ ចារ ឹក្នរៅ រួចាននឡើងនៅតដនក្ំណ្ែ់សក្ល និងចុងនរកាយបងអស់រែូវនឡើងនៅ

តដនក្ំណ្ែ់ទួនៅ។ វែថុន្មោះ ឃ្លលសក្ល រែូវានរក្ន ើញនៅក្នុងតដនក្ំណ្ែ់ សក្ល នរពាោះវា

រែូវានបនងកើែនៅទី ន ោះ។

print("ឃ្លលចាឥកណរៅររូ
ឹ ឧាឞឥកណឃើញណៅកុ ង
ន ", ឃ្លលចាឥកណរៅ)
ឹ េឺជាបញ្
ា តដលនៅក្នុងន ោះវែថុ

ន្មោះ ឃ្លលចារ ឹក្នរៅ រែូវានយក្មក្នរបើនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្ក្នុង។ ដូចននោះការតសវងរក្

វែថុន្មោះ ឃ្លលចារ ឹក្នរៅ ននោះរែូវចាប់នផតើមនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងន ោះមុននេ រួចាន

នឡើងនៅតដនក្ំណ្ែ់ចារ ឹក្នរៅ រួចាននឡើងនៅតដនក្ំណ្ែ់សក្ល និងចុងនរកាយបងអស់រែូវ


ទំព័រ 147

នឡើងនៅតដនក្ំណ្ែ់ទួនៅ។ វែថុន្មោះ ឃ្លលចារ ឹក្នរៅ រែូវានរក្ន ើញនៅក្នុងតដនក្ំណ្ែ់

ចារ ឹក្នរៅ នរពាោះវារែូវានបនងកើែនៅទីន ោះ។

print("ឃ្លលចាឥកក
ឹ ុ ងររូ
ន ឧាឞឥកណឃើញណៅកុ ង
ន ", ឃ្លលចាឥកក
ឹ ុ ង)
ន េឺ ជាបញ្
ា តដលនៅក្នុងន ោះវែថុ

ន្មោះ ឃ្លលចារ ឹក្ក្នុង រែូវានយក្មក្នរបើនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្ក្នុង។ ដូចននោះការតសវងរក្វែថុ

ន្មោះ ឃ្លលចារ ឹក្ក្នុង ននោះរែូវចាប់នផតើមនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងន ោះមុននេ រួចាននឡើង

នៅតដនក្ំណ្ែ់ចារ ឹក្នរៅ រួចាននឡើងនៅតដនក្ំណ្ែ់សក្ល និងចុងនរកាយបងអស់រែូវនឡើង

នៅតដនក្ំណ្ែ់ទួនៅ។ វែថុន្មោះ ឃ្លលចារ ឹក្ក្នុង រែូវានរក្ន ើញនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្ក្នុង

នរពាោះវារែូវានបនងកើែនៅទីន ោះ។

នដាយការតសវងរក្វែថុនផេងៗរែូវរបរពឹែនត ៅដូចនៅក្នុងេំនូសបំរពួញខាងនលើ ដូចននោះនយើងមិន

អាចយក្វែថុនៅក្នុងតដនក្ំណ្ែ់នៅខាងនរកាមមក្នរបើនៅក្នុងតដនក្ំណ្ែ់នៅខាងនលើាន

នឡើយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លលសកឦ = "កដឞកំណរ់សកឦ"

def កបួឞណរៅ() :

ឃ្លលចាឥកណរៅ
ឹ = "កដឞកំណរ់ណ ឤកឡកឬចាឥណរៅ"

print(ឃ្លលចាឥកកន
ឹ ុ ង)

def កបួឞកនុង() :

ឃ្លលចាឥកកន
ឹ ុ ង = "កដឞកំណរ់ចាឥកកន
ឹ ុ ង"

កបួឞកនុង()

កបួឞណរៅ()

print(ឃ្លលចាឥកណរៅ)

ទំព័រ 148

print(ឃ្លលចាឥកក
ឹ ុ ង)
ន េឺ ជាបញ្
ា ែរមូវឲ្យយក្វែថុន្មោះ ឃ្លលចារ ឹក្ក្នុង នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្

ក្នុង មក្នរបើនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅ។ របការននោះមិនអាចនធវើនៅាននឡើយ ក្ំហុសមួយ

ាននក្ើែមាននឡើង។

print(ឃ្លលចាឥកណរៅ)
ឹ េឺជាបញ្
ា ែរមូវឲ្យយក្វែថុន្មោះ ឃ្លលចារ ឹក្នរៅ នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្

នរៅមក្នរបើនៅក្នុងតដនក្ំណ្ែ់សក្ល។ របការននោះមិនអាចនធវើនៅាននឡើយ ក្ំហុសមួយាន

នក្ើែមាននឡើង។

វែថុនៅក្នុងតដនក្ំណ្ែ់នផេងៗោនេឺជាវែថុខ្ុសោន នទោះបីជាវែថុទំងន ោះមានន្មោះដូចោនក្៍

នដាយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

object = 1000

print("ណៅកនុងកដឞកំណរ់សកឦ ឧរថុណ្មោះ object គជា៖",


ឺ object)

def កបួឞណរៅ() :
object = True
print("ណៅកនុងកដឞកំណរ់ចាឥកណរៅ
ឹ ឧរថុណ្មោះ object គជា៖",
ឺ object)

def កបួឞកនុង() :

object = "ករឣងអកសឥ"

print("ណៅកនុងកដឞកំណរ់ចាឥកកន
ឹ ុ ង ឧរថុណ្មោះ object គឺជា៖", object)

កបួឞកនុង()

កបួឞណរៅ()

object = 1000 េឺជាបញ្


ា ែរមូវឲ្យបនងកើែវែថុន្មោះ object មួយនៅក្នុងតដនក្ំណ្ែ់ សក្ល។

object = True េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែវែថុន្មោះ object មួយនទៀែនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្

នរៅ។
ទំព័រ 149

object = “ករឣងអកសឥ” េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែវែថុន្មោះ object មួយនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្

ក្នុង។

នៅក្នុងក្មមវ ិធីខាងនលើ នយើងសនងកែន ើញថា មានវែថុមានន្មោះថា object ដូចោនចំនួនបី រែូវ

ានបនងកើែនឡើងនៅក្នុងតដនក្ំណ្ែ់បីខ្ុសៗោន។ វែថុទំងន ោះេឺជាវែថុខ្ុសៗោន នរពាោះវារែូវ

ានបនងកើែនឡើងនៅក្នុងតដនក្ំណ្ែ់ ខ្ុសៗោន។ ានន័យថា វែថុតដលសថិែនៅក្នុងតដនក្ំណ្ែ់

ខ្ុសៗោន េឺ ជាវែថុខ្ុសៗោន នទោះបីជាវែថុទំងន ោះមានន្មោះដូចោនក្៍នដាយ។

print("ណៅកុ ងកដឞក
ន ណំ រ់សកឦ ឧរុ ណ្
ថ ម ោះ object គជា៖"
ឺ , object) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះ

មានការែរមូវឲ្យយក្វែថុន្មោះ object មក្នរបើនៅក្នុងតដនក្ំណ្ែ់សក្ល។ អាស្រស័យនៅតម

វ ិធ្លនថ្នការតសវងរក្វែថុនៅក្នុងភាា Python វែថុន្មោះ object នៅក្នុងតដនក្ំណ្ែ់សក្លរែូវ

ានយក្មក្នរបើ។

print("ណៅកុ ងកដឞក
ន ណំ រ់ចាឥកណរៅ
ឹ ឧរុ ណ្
ថ ម ោះ object គឺជា៖", object) េឺ ជាបញ្
ា តដលនៅក្នុង

ន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ object មក្នរបើ នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅ។ អាស្រស័យ

នៅតមវ ិធ្លនថ្នការតសវងរក្វែថុនៅក្នុងភាា Python វែថុន្មោះ object នៅក្នុងតដនក្ំណ្ែ់

ចារ ឹក្នរៅរែូវានយក្មក្នរបើ។

print("ណៅកុ ងកដឞក
ន ណំ រ់ចាឥកក
ឹ ុង
ន ឧរុ ណ្
ថ ម ោះ object គឺជា៖", object) េឺជាបញ្
ា តដលនៅក្នុង

ន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ object មក្នរបើ នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុង។ អាស្រស័យនៅ

តមវ ិធ្លនថ្នការតសវងរក្វែថុនៅក្នុងភាា Python វែថុន្មោះ object នៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្

ក្នុងរែូវានយក្មក្នរបើ។

នយើងអាចយក្វែថុនៅក្នុងតដនក្ំណ្ែ់សក្លមក្នរបើ នៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្និងឬនៅ

ក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងានតមន តែនយើងមិនអាចយក្ន្មោះរបស់វែថុទំងន ោះនៅភាាប់នឹង


ទំព័រ 150

វែថុណានផេងនទៀែាននឡើយ។ ការប៉ុនប៉ងយក្ន្មោះរបស់វែថុទំងន ោះនៅភាាប់នឹងវែថុនផេង

នទៀែ េឺជាការបនងកើែវែថុមានន្មោះដូចោននៅក្នុងតដនក្ំណ្ែ់ ទំងន ោះ។ ក្៍ប៉ុតនត នបើនយើងពិែជា

ចង់យក្ន្មោះរបស់វែថុនៅក្នុងតដនក្ំណ្ែ់សក្លនៅភាាប់នឹងវែថុនផេងនទៀែនៅក្នុង

តដនក្ំណ្ែ់នដាយតឡក្និងឬតដនក្ំណ្ែ់ចារ ឹក្ក្នុង នយើងរែូវនរបើ បញ្


ា global នៅខាងមុខ្

ន្មោះទំងន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

object = 1000

object1 = [210, False, "រាក់ចណំ ណញ"]

def កបួឞណរៅ() :
global object
object = True
def កបួឞកនុង() :

global object1

object1 = "ករឣងអកសឥ"

កបួឞកនុង()

កបួឞណរៅ()

print("ឧរថុណ្មោះ object លមគ


ី ឺ៖", object)

print("ឧរថុណ្មោះ object1 លមីគ៖",


ឺ object1)

global object េឺ ជាការនរបើបញ្


ា global នដើមបីអាចយក្ន្មោះ object របស់វែថុនៅក្នុង

តដនក្ំណ្ែ់សក្លនៅភាាប់នឹងវែថុនផេងនទៀែាននៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្ឬចារ ឹក្នរៅ។

global object1 េឺជាការនរបើបញ្


ា global នដើមបីអាចយក្ន្មោះ object1 របស់វែថុនៅក្នុង

តដនក្ំណ្ែ់សក្លនៅភាាប់នឹងវែថុនផេងនទៀែាននៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុង។
ទំព័រ 151

ចំនពាោះវែថុអាចនដាោះដូរានតដលសថិែនៅក្នុងតដនក្ំណ្ែ់សក្ល នយើងអាចយក្វាមក្នដាោះដូរ

ធ្លែុនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្និងឬចារ ឹក្នរៅានជាធមមតនដាយមិនចាំាច់នរបើ បញ្


global ។ ពីនរពាោះការនដាោះដូរធ្លែុនៅក្នុងសមាសវែថុមិនតមនជាការយក្ន្មោះរបស់សមាសវែថុ

ន ោះនៅភាាប់នឹងវែថុនផេងនទៀែនឡើយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

object = [210, False, "រាក់ចណំ ណញ"]

def កបួឞណរៅ() :

object[0] = True

def កបួឞកនុង() :

object[1] = "ករឣងអកសឥ"

កបួឞកនុង()

កបួឞណរៅ()

print("ឧរថុណ្មោះ object លមគ


ី ឺ៖", object)

object[0] = True េឺ ជាបញ្


ា ែរមូវឲ្យយក្ក្រមងអនងរន្មោះ object នៅក្នុងតដនក្ំណ្ែ់សក្ល

មក្នដាោះដូរធ្លែុមាននលខ្នរៀង 0 នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅ។

object[1] = "ករឣងអកសឥ" េឺជាបញ្


ា ែរមូវឲ្យយក្ក្រមងអនងរន្មោះ object នៅក្នុង

តដនក្ំណ្ែ់សក្លមក្នដាោះដូរធ្លែុ មាននលខ្នរៀង 1 នៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុង។

ដូចោនតដរ នយើងអាចយក្វែថុនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្នរៅមក្នរបើនៅក្នុងតដនក្ំណ្ែ់ ចារ ឹក្ក្នុង

ានតមន តែនយើងមិនអាចយក្ន្មោះរបស់វែថុទំងន ោះនៅភាាប់នឹងវែថុនផេងនទៀែាននឡើយ។

ការប៉ុនប៉ងយក្ន្មោះរបស់វែថុទំងន ោះនៅភាាប់ នឹងវែថុនផេង េឺជាការបនងកើែវែថុមានន្មោះ

ដូចោននៅក្នុងតដនក្ំណ្ែ់ ចុងនរកាយននោះ។ ក្៍ប៉ុតនត នបើនយើងពិែជាចង់ន្មោះរបស់វែថុនៅក្នុង


ទំព័រ 152

តដនក្ំណ្ែ់ ចារ ឹក្នរៅនៅភាាប់នឹងវែថុនៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុងតមន នយើងរែូវនរបើបញ្


nonlocal នដាយនធវើដូចខាងនរកាមននោះ៖

def កបួឞណរៅ() :

object = 1000

def កបួឞកនុង() :
nonlocal object
object = "ករឣងអកសឥ"

កបួឞកនុង()

print("ឧរថុណ្មោះ object លមីគ៖",


ឺ object)

កបួឞណរៅ()

nonlocal object េឺ ជាការនរបើបញ្


ា nonlocal នដើមបីអាចយក្ន្មោះ object របស់វែថុនៅក្នុងតដន

ក្ំណ្ែ់ ចារ ឹក្នរៅនៅភាាប់ នឹងវែថុនផេងនទៀែាននៅក្នុងតដនក្ំណ្ែ់ចារ ឹក្ក្នុង។

ចំនពាោះវែថុតដលសថិែនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្តដលជាក្បួនខ្ុសៗោន េឺ ជាវែថុខ្ុសៗោន

នទោះបីជាវែថុទំងន ោះមានន្មោះដូចោនក្៍នដាយ។ ពីនរពាោះក្បួននិមួយៗេឺ ជាតដនក្ំណ្ែ់ នដាយ

តឡក្ខ្ុសៗោន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ឥករាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

return រាក់ចណំ ណញ

def សឥុសវឹករាក់(ថ្លលឦក់, ថ្លលវិញ) :

វឹករាក់ = ថ្លលឦក់ + ថ្លលវិញ + ឥករាក់ចណំ ណញ(ថ្លលឦក់=ថ្លលឦក់, ថ្លលវិញ=ថ្លលវិញ)

print(វឹករាក់)
ទំព័រ 153

សឥុសវឹករាក់(1000, 900)

ឥករាក់ចណំ ណញ(ថ្លឦ
ល ក់=ថ្លឦ
ល ក់, ថ្លវ
ល ិញ=ថ្លវ
ល ិ ញ) េឺជាការយក្ក្បួនន្មោះ

រក្រាក្់ចំនណ្ញ មក្នរបើជាបញ្
ា នៅក្នុងក្បួនន្មោះ សរុបទឹក្រាក្់ ។ ដំណាង ថ្ងលលក្់ និង

ថ្ងលទិញ របស់ក្បួនន្មោះ សរុបទឹក្រាក្់ រែូវានផតល់ជាដំណ្ឹងនរៀងោនឲ្យនៅដំណាង ថ្ងលលក្់

និង ថ្ងលទិញ នៅក្នុងក្បួនន្មោះ រក្រាក្់ចំនណ្ញ ។

ដូចននោះនយើងន ើញថា ក្បួនន្មោះ រក្រាក្់ចំនណ្ញ និងក្បួនន្មោះ សរុបទឹក្រាក្់ សុទតធ ែ

មានដំណាងជាន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ ដូចោន តែន្មោះទំងន ោះជាន្មោះរបស់វែថុខ្ុសៗ

ោន នរពាោះវាសថិែនៅក្នុងតដនក្ំណ្ែ់នដាយតឡក្ពីរនផេងោន។

សរុបមក្ ន្មោះរបស់វែថុនៅក្នុងភាា Python ក្៍ ដូចជាន្មោះរបស់មនុសេនយើងតដរ។ នពាល

េឺមនុសេន្មោះ វុធ នៅក្នុងរេួារ ក្ ខ្ុសពីមនុសេន្មោះ វុធ នៅក្នុងរេួារ ខ្ នទោះបី ជា

មនុសេទំងពីរ ក្់ន ោះមានន្មោះដូចោនក្៍ នដាយ។

កបួនោនម្ាប់

ក្បួនមានស្រាប់ (built-in function) េឺជាក្បួនទំងឡាយតដលរែូវានបនងកើែនឡើងរូចជានស្រសច

ទុក្នៅក្នុងតដនក្ំណ្ែ់ ទូនៅ។ នយើងអាចយក្ក្បួនមានស្រាប់ នៅនរបើ នៅក្នុងតដនក្ំណ្ែ់ណាក្៍

ានតដរ។ ក្បួនមានស្រាប់ សំខាន់ៗមានដូចែនៅននោះ៖

abs(…)

abs(នលខ្)-> នលខ្

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់រក្ែថ្មលដាច់ ខាែថ្នចំនួនណាមួយ។

a = -136
ទំព័រ 154

print("រថ្ឣល ច់ខារឥសស់ a គឺ៖", abs(a))

divmod(…)

divmod(នលខ្, នលខ្) -> (ផលតចក្, សំណ្ល់)

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់េណ្ រក្ផលតចក្និងសំណ្ល់រវាងចំនួនពីរ។

a = 10.5

b = 3.14
print(divmod(a, b))

input(…)

input([prompt])-> ក្រមងអក្េរ

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់ចមលងយក្ក្រមងអក្េរទំងឡាយណាតដលរែូវានសរនសរ

នៅនលើបងអួចបឋម។

ឃ្លល = input("ចូ ឥសឥណសឥអវីឣួ ឤណៅវីណឞោះ ")

print(ឃ្លល)

len(…)

len(សមាសវែថុ)-> ចំនួនេែ់

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់រាប់ធ្លែុឬក្ូននារនៅក្នុងសមាសវែថុណាមួយ។

ករឣងចរឣរោះ = [100, 1.5, "រាក់ចណំ ណញ", True]

សំណុំចរឣរោះ = {"ណ្មោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(len(ករឣងចរឣរោះ))

print(len(សំណុំចរឣរោះ))
ទំព័រ 155

max(…)

max(សមាសវែថុ)-> ធ្លែុ ឬក្ួននារធំជាងនេ

max(a, b, c)-> វែថុធំជាងនេ

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់រក្ធ្លែុឬក្ូននារឬវែថុតដលធំជាងនេបំផុែ។

ករឣងចរឣរោះ = [100, 1.5, 3.14, 1000]

សំណុំចរឣរោះ = {"ណ្មោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(max(ករឣងចរឣរោះ))

print(max(សំណុំចរឣរោះ))

print(max(1, 0.5, 15))

min(…)

min(សមាសវែថុ)-> ធ្លែុឬក្ូននារែូចជាងនេ

min(a, b, c)-> វែថុែូចជាងនេ

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់រក្ធ្លែុឬក្ូននារតដលែូចជាងនេបំផុែ។

ករឣងចរឣរោះ = [100, 1.5, 3.14, 1000]

សំណុំចរឣរោះ = {"ណ្មោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}

print(min(ករឣងចរឣរោះ))

print(min(សំណុំចរឣរោះ))

print(min(1, 0.5, 15))

pow(…)
ទំព័រ 156

pow(នលខ្, នលខ្)-> នលខ្

េឺជាក្បួនមានស្រាប់ តដលសមមូលនៅនឹងរបមាណ្វ ិធីស័យ


វ េុននដាយនរបើ របមាណ្សញ្ដ ** ។

print(pow(3, 3))

print(…)

print(វែថុ, …, វែថុ)

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់សរនសរវែថុនផេងៗនៅនលើបងអួចបឋម។

print(100, "រាក់ចណំ ណញ", True)

round(…)

round(ចំនួនពិែ)-> ចំនួនេែ់

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់តក្ចំនួនពិែឲ្យនៅជាចំនួនេែ់ ។

ថ្លលឦក់ = 1000.33

print(round(ថ្លលឦក់))

sorted(…)

sorted(សមាសវែថុ)-> សមាសវែថុ

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់ចមលងយក្ក្រមងឬក្ូននារនៅក្នុងវច នុរក្មណាមួយមក្

បនងកើែជាក្រមងអនងរងមីមួយនទៀែមានធ្លែុតដលរែូវានែនរមៀបតមលំដាបថានក្់ពីែូចនៅធំ ។

ករឣងរថ្ឣល = [100, 0.5, 1.34, 200]

សំណុំចរឣរោះ = {"c":100, "b":"Python", "a":True}


ទំព័រ 157

print(sorted(ករឣងរថ្ឣល))

print(sorted(សំណុំចរឣរោះ))

sum(…)

sum(សមាសវែថុ)-> ផលបូក្ថ្នធ្លែុទំងអស់

េឺជាក្បួនមានស្រាប់ នរបើសរមាប់ចមលងយក្ធ្លែុឬក្ូននារទំងអស់នៅក្នុងសមាសវែថុណាមួយ

មក្បូក្បញ្ូា លោនបនងកើែជានលខ្ងមីមួយនទៀែ។

ករឣងរថ្ឣល = (100, 0.5, 1.34, 200)

សំណុំចរឣរោះ = {1:100, 2:"Python", 3:True}

print(sum(ករឣងរថ្ឣល))

print(sum(សំណុំចរឣរោះ))
ទំព័រ 158

ថ្នាក្់

ការបឈងកើត្ ថ្នែក់

ថានក្់ (class) េឺជាវែថុតដលជាក្តនលងមួយសរមាប់បនងកើែវែថុនផេងៗនទៀែទុក្សរមាប់យក្នៅនរបើ

នៅនពលនរកាយនទៀែ។ នដើមបីបនងកើែថានក្់ នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

class រកឡាថ្ហ(ទ ) : េឺ ជាការនរបើបញ្


ា class ែរមូវឲ្យបនងកើែវែថុតដលជាថានក្់ មានន្មោះថា

រក្ឡាថ្ផទ ។

នរកាយពីថានក្់ ន្មោះ រក្ឡាថ្ផទ រែូវានបនងកើែនឡើងនៅក្នុងសែិរបស់ក្ំពយូទ័ ររួចមក្ រក្រមបញ្


នៅក្នុងថានក្់ន ោះរែូវានយក្នៅអនុវែតភាលមមួយរ ំនពច តដលជារបការនធវើឲ្យចំនួនពិែន្មោះ ពី

និងក្បួនន្មោះ រក្ឡាថ្ផទចែុនកាណ្តក្ង ក្៍រែូវានបនងកើែទុក្នៅក្នុងថានក្់ ន ោះតដរ។

ដូចននោះថានក្់ខ្ុសពីក្បួននៅរែង់ថា រក្រមបញ្
ា នៅក្នុងថានក្់ រែូវយក្នៅអនុវែតភាលមមួយរ ំនពច

ា នៅក្នុងក្បួនវ ិញ មិនទន់រែូវយក្
ប ទ ប់ពីថានក្់រែូវានបនងកើែរូចនហើយ។ ចំតណ្ក្ឯរក្រមបញ្

នៅអនុវែតភាលមនទនៅនពលតដលក្បួនរែូវានបនងកើនឡើងន ោះ។ រក្រមបញ្


ា នៅក្នុងក្បួនរែូវយក្

នៅអនុវែតតែនៅនពលណាតដលក្បួនរែូវយក្នៅនរបើតែប៉ុនណាណោះ។
ទំព័រ 159

រក្រមបញ្
ា នៅក្នុងថានក្់អាចជាបញ្
ា របនភទណាក្៍ានតដរ វាអាចជាបញ្
ា ែរមូវឲ្យបនងកើែវែថុ

នផេងៗនទៀែ ឬជាបញ្
ា ែរមូវឲ្យអនុវែតបញ្
ា មួយចំនួននទៀែ។ ក្៍ប៉ុតនត ភាេនរចើននេនិយមនរបើ

របនភទថ្នបញ្
ា តដលែរមូវឲ្យបនងកើែវែថុតដលជាទិននន័យនិងឬក្បួនមួយចំនួនទុក្នៅក្នុងថានក្់

សរមាប់យក្នៅនរបើ នៅនពលនរកាយៗនទៀែ។

រេប់វែថុទំងឡាយតដលរែូវានបនងកើែទុក្នៅក្នុងថានក្់ រែូវចាែ់ទុក្ថាជា សមបែតិថានក្់ (class

attribute) តដលអាចជាក្បួននិងវែថុតដលជាទិននន័យនផេងៗ។ ក្បួននៅក្នុងថានក្់រែូវនៅថា វ ិធី

(method) ចំតណ្ក្ឯវែថុតដលជាទិននន័យនៅក្នុងថានក្់រែូវនៅថា ទិននន័យេំរូ (data attribute) ។

ដូចននោះនៅក្នុងថាមក្់ន្មោះ រក្ឡាថ្ផទ វែថុន្មោះ ពី េឺ ជាទិននន័យេំរូ និងក្បួនន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង េឺជាវ ិធី។ ម៉ានទៀែនយើងរែូវនធវើការក្ែ់សំោល់ផងតដរថា វ ិធីតដលជា

ក្បួននៅក្នុងថានក្់ រែូវតែមានដំណាងនលើសមួយ នទោះបីជានយើងមិនរែូវការយក្វានៅនរបើការ

ក្៍នដាយ។ នយើងនឹងដឹងពីែួ ទីថ្នដំណាងទីមួយននោះនៅនពលបនតិចនទៀែននោះ។

ពី = 3.14

def រក្ឡាថ្ផទចែុនកាណ្តក្ង(សិសេ, បនណា


ត យ, ទទឹង) :
រក្ឡាថ្ផទ
ថ្ផទរក្ឡា = បនណា
ត យ * ទទឹង

print(“រក្ឡាថ្ផទចែុនកាណ្តក្ងេឺ ៖”, ថ្ផទរក្ឡា)

នដើមបីឲ្យដឹងថានែើនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ មានអវីខ្លោះន ោះ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :


ទំព័រ 160

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

help(រកឡាថ្ហទ)

help(រកឡាថ្ហ)ទ េឺ ជាបញ្
ា ែរមូវឲ្យក្ថានក្់ ន្មោះ រក្ឡាថ្ផទ មក្ពិនិែយនមើលថានែើ មានអវីខ្លោះនៅ

ក្នុងន ោះ។ ជាលទធផល នយើងន ើញថានៅក្នុងថានក្់ ន្មោះ រក្ឡាថ្ផទ មានទិននន័យេំរនូ ្មោះ ពី

មួយនិងវ ិធីន្មោះ រក្ឡាថ្ផទចែុនកាណ្តក្ង មួយ។

នដាយថានក្់ក្៍ជាវែថុមួយដូចជាវែថុដថ្ទនទៀែតដរ ដូចននោះនយើងអាចន្មោះរបស់ថានក្់នៅភាាប់នឹង

ា អវីនឡើយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


វែថុដថ្ទនទៀែាននដាយោមនបញ្

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

រកឡាថ្ហទ = 1000

print(រកឡាថ្ហទ)

រក្ឡាថ្ផទ = 1000 េឺជាបញ្


ា ែរមូវឲ្យយក្ន្មោះរបស់ថានក្់តដលមានន្មោះថា រក្ឡាថ្ផទ នៅ

ភាាប់នឹងចំនួនេែ់នលខ្ 1000 ។ ក្តតននោះនធវើឲ្យថានក្់ន ោះកាលយជាវែថុោមនន្មោះនិងរែូវាន

លុបនចញពីក្ុងសែិ
ន របស់ក្ំពយូទ័រនដាយយនតការនាសសមាអែ។
ទំព័រ 161

នដាយថានក្់ក្៍ជាវែថុមួយដូចជាវែថុដថ្ទនទៀែតដរ ដូចននោះនយើងអាចយក្ន្មោះជានរចើននៅភាាប់

នឹងថានក្់ ណាមួយដូចជាការយក្ន្មោះជានរចើននៅភាាប់នឹងវែថុដថ្ទនទៀែតដរ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

surface = area = រកឡាថ្ហទ


print(surface)
print(area)
print(រកឡាថ្ហទ)

surface = area = រកឡាថ្ហ ទ េឺ ជាបញ្


ា ែរមូវឲ្យភាាប់ ន្មោះ surface និង area នៅនឹងវែថុតដលជា

ថានក្់មានន្មោះថា រក្ឡាថ្ផទ ។

ការយក ថ្នែក់ មកឈម្បើ

ការយក្ថានក្់មក្នរបើ (calling a class) េឺជាទនងវើមួយស្រសនដៀងនឹងការយក្ក្បួនមក្នរបើតដរ េឺ

រែូវនធវើនឡើងដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង


ទំព័រ 162

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

ឦវធហឦ = រកឡាថ្ហទ()

print(ឦវធហឦ)

ឦវហ
ធ ឦ = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដាយភាាប់ន្មោះ លទធផល

នៅនឹងវែថុតដលរែូវានបនងកើែនឡើងនដាយារការយក្ថានក្់ន ោះមក្នរបើ ។

ដូចននោះនយើងន ើញថា ការយក្ថានក្់មក្នរបើ ពុំ តមនជាការយក្សមបែតិទំងឡាយតដលមាននៅ

ក្នុងថានក្់ មក្នរបើនឡើយ ផទុយនៅវ ិញ វាេឺ ជាការបនងកើែវែថុម៉ាងនៅក្នុងសែិរបស់ក្ំពយូទ័រ។

print(ឦវហ
ធ ឦ) េឺជាបញ្
ា ែរមូវឲ្យសរនសរវែថុន្មោះ លទធផល តដលជាវែថុានមក្ពី ការយក្

ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ។

ដូចននោះការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើបណា


ត លឲ្យវែថុម៉ាងរែូវបនងកើែនឡើង។ វែថុន ោះ

រែូវនៅថា សិសេ (instance) ។ ជាទូនៅ រេប់ ការយក្ថានក្់ណាមួយមក្នរបើ បណា


ត លឲ្យសិសេ

មានក្់រែូវានបនងកើែនឡើង។ នយើងអាចនិយាយានម៉ាងនទៀែថា ការយក្ថានក្់មក្នរបើ េឺជា

ការបនងកើែសិសេថ្នថានក្់ន ោះ (instantiation) ។

នរៅពីការបនងកើែសិសេមានក្់នចញពីថានក្់ណាមួយ នយើងបនងកើែសិសេជានរចើនរាប់មិនអស់នចញ

ពីថានក្់ន ោះនដាយយក្ថានក្់ន ោះមក្នរបើ ជានរចើននលើក្នរចើនារ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)
ទំព័រ 163

សិសសក = រកឡាថ្ហទ()

សិសសខ = រកឡាថ្ហទ()

សិសសគ = រកឡាថ្ហទ()

print(សិសសក)

print(សិសសខ)

print(សិសសគ)

សិសសក = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេក្ មានក្់។

សិសសខ = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេខ្ មានក្់នទៀែ។

សិសសគ = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេេ មានក្់នទៀែ។

ការយក សមបត្តិ ថ្នែក់ មកឈម្បើ

នយើងានដឹងរួចមក្នហើយថា ការយក្ថានក្់មក្នរបើមិនតមនជាការយក្សមបែតិនៅក្នុងថានក្់មក្

នរបើន ោះនទ វាេឺជាការបនងកើែសិសេថ្នថានក្់ន ោះ។ នដើមបីយក្សមបែតិនៅក្នុងថានក្់ មក្នរបើ នយើង

រែូវនធវើដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :


ទំព័រ 164

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

សិសសក = រកឡាថ្ហទ()

print(រកឡាថ្ហទ.ឡី)

print(សិសសក.ឡី)

រកឡាថ្ហទ.រកឡាថ្ហទចរុ ណកាណកកង(សិសសក, 25, 5)

សិសសក.រកឡាថ្ហទចរុ ណកាណកកង(25, 5)

print(រកឡាថ្ហ.ទ ឡី) េឺជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ទិននន័យេំរនូ ្មោះ ពី មក្

នរបើតមរយៈថានក្់ ន្មោះ រក្ឡាថ្ផទ តដលជាថានក្់របស់ទិននន័យេំរនូ ោះ។

print(សិសសក.ឡី) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ទិននន័យេំរនូ ្មោះ ពី មក្

នរបើតមរយៈសិសេន្មោះ សិសេក្ តដលជាសិសេថ្នថានក្់ របស់ទិននន័យេំរនូ ោះ។

រកឡាថ្ហ.ទ រកឡាថ្ហច
ទ រុណកាណកកង(សិសសក, 25, 5) េឺជាបញ្
ា ែរមូវឲ្យយក្វ ិធី ន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្នរបើតមរយៈថានក្់ន្មោះ រក្ឡាថ្ផទ តដលជាថានក្់របស់វ ិធីន ោះ។

ដំណ្ឹងតដលរែូវផតល់ឲ្យនៅវ ិធីន ោះេឺជាសិសេន្មោះ សិសេក្ នលខ្ 25 និងនលខ្ 5 ។

សិសសក.រកឡាថ្ហច
ទ រុណកាណកកង(25, 5) េឺជាបញ្
ា ែរមូវឲ្យយក្វ ិធីន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្នរបើតមរយៈសិសេន្មោះ សិសេក្ តដលជាសិសេថ្នថានក្់ របស់

វ ិធី ន ោះ។

ដូចននោះនយើងន ើញថា នដើមបីអាចយក្វ ិធីនៅក្នុងថានក្់ណាមួយមក្នរបើាន នយើងចាំាច់រែូវតែ

បនងកើែសិសេថ្នថានក្់ ន ោះជាមុ នសិន រូចសឹមយក្សមបែតិទំងន ោះមក្នរបើតមរយៈថានក្់ឬ

តមរយៈសិសេរបស់ថានក្់ ន ោះ។ ានន័យថានយើងមិនអាចយក្សមបែតិនៅក្នុងថានក្់មក្នរបើ


ទំព័រ 165

នដាយផ្ទទល់ាននឡើយ។ មួយវ ិញនទៀែ ចំនពាោះការយក្វ ិធីមក្នរបើតមរយៈថានក្់របស់វា នយើង

ចាំាច់រែូវផតល់ដំណ្ឹងជាសិសេណាមានក្់សរមាប់ដំណាងទីមួយ។ តែចំនពាោះការយក្វ ិធី មក្

នរបើតមរយៈសិសេថ្នថានក្់របស់វ ិធី ន ោះវ ិញ នយើងមិនចាំាច់ផតល់ដំណ្ឹងជាសិសេណាមានក្់

សរមាប់ដំណាងទី មួយនឡើយ។

ការបផ្នថម វត្ថុ ចូល ឈៅកែុងថ្នែក់

នរៅពីការយក្សមបែតិនៅក្នុងថានក្់មក្នរបើ នយើងអាចបតនថមវែថុនផេងៗនទៀែចូលនៅក្នុងថានក្់

តងមពីនលើសមបែតិមាននៅក្នុងថានក្់។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

់ ិសស, កា ំ) :
def ថ្ហទឥងវង(ស

S = កា ំ * កា ំ * 3.14

់ ឺ៖", S)
print("រកឡាថ្ហទឥងវងគ

ករឣងឧមាររ
ិ = [25, 5]

class រកឡាថ្ហទ() :

ឡី = 3.14

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

រកឡាថ្ហទ.រកឡាថ្ហទឥងវង់ = ថ្ហទឥងវង់

រកឡាថ្ហទ.ឧមាររ
ិ = ករឣងឧមាររ

help(រកឡាថ្ហទ)
ទំព័រ 166

វ ់ = ថ្ហឥទ ងង
រកឡាថ្ហ.ទ រកឡាថ្ហឥទ ងង វ ់ េឺ ជាបញ្
ា ែរមូវឲ្យបតនថមក្បួនន្មោះ ថ្ផទរងវង់ មួយនទៀែ

ចូលនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ ។ ក្បួនន្មោះ ថ្ផទរងវង់ កាលយនៅជាវ ិធី ន្មោះ រក្ឡាថ្ផទរងវង់

នៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ ។

រកឡាថ្ហ.ទ ឧមាររ
ិ = ករឣងឧមាររ
ិ ា ែរមូវឲ្យបតនថមក្រមងអនងរន្មោះ ក្រមងវ ិមារែ
េឺ ជាបញ្

មួយនទៀែចូលនៅក្នុងថានក្់ ន្មោះ រក្ឡាថ្ផទ ។ ក្រមងអនងរន្មោះ ក្រមងវ ិមារែ កាលយនៅជា

ទិននន័យេំរនូ ្មោះ វ ិមារែ នៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ ។

ាថបនិក

ាថបនិក្ (constructor) េឺជាវ ិធីតដលមានន្មោះថា __init__ (សញ្ដ _ ជាប់ោនពីរនៅពីមុខ្និង

នៅពីនរកាយន្មោះ init) ។ នៅក្នុងភាា Python នបើ សិនជានយើងបនងកើែវ ិធី មួយមានន្មោះថា

__init__ នៅក្នុងថានក្់ណាមួយ វ ិធីន ោះនឹងរែូវយក្នៅនរបើ ជាសវ័យរបវែតិនៅនពលតដលនយើង

យក្ថានក្់ន ោះនៅនរបើ នដើមបីបនងកើែសិសេ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកររូឧាឞឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

សិសសក = រកឡាថ្ហទ()
ទំព័រ 167

def __init__(សិសស) : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែាថបនិក្មួយតដលជាវ ិធី មានន្មោះថា __init__

សិសសក = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេក្ មានក្់។ របការននោះនធវើឲ្យាថបនិក្តដលជាវ ិធីមានន្មោះថា __init__ នៅក្នុងថានក្់ន ោះ

រែូវយក្មក្នរបើជាសវ័យរបវែតិ។

ដូចននោះនយើងន ើញថា ការយក្ថានក្់មក្នរបើ េឺជាបញ្


ា ែរមូវឲ្យនធវើការងារពីរេឺ៖ បនងកើែសិសេ

និងយក្ាថបនិក្មក្នរបើ នបើ សិនជាមាន។ នហើយនយើងនឹងានដឹងពី ារៈសំខាន់របស់

ាថបនិក្នៅនពលបនតិចនទៀែននោះ។

វិធី

វ ិធី ក្៍ជាក្បួនដូចជាក្បួនដថ្ទនទៀែនៅខាងនរៅថានក្់ តដរ តែវ ិធីខ្ុសពីក្បួនទំងន ោះនៅរែង់ថា

ដំណាងនៅក្នុងវ ិធី រែូវតែមានចំនួននលើសចំនួនដំណ្ឹងមួយជានិច។


ច ានន័យថា នបើ វ ិធីរែូវការ

ដំណ្ឹងចំនួន n ដំណាងនៅក្នុងវ ិធីន ោះរែូវតែមានចំនួន n + 1 នហើយដំណាងតដលនលើសមួយ

ន ោះ រែូវតែជាដំណាងតដលនៅខាងនដើមនេបំផុែ។ ការទមទរឲ្យមានដំណាងនលើសមួយនៅ

ក្នុងវ ិធីទំងឡាយ េឺនដាយនហែុថា នៅនពលតដលវ ិធីរែូវយក្នៅនរបើតមរយៈសិសេ វ ិធីនឹង

ទទួលានដំណ្ឹងតដលជាសិសេន ោះជាសវ័យរបវែតិបតនថមនៅនលើដំណ្ឹងនផេងនទៀែ។ នហើយ

ដំណ្ឹងតដលជាសិសេន ោះនឹងរែូវផតល់ឲ្យនៅដំណាងនៅខាងនដើមនេបំផុែ។ ដូចននោះនបើនៅ

ក្នុងវ ិធីោមនដំណាងនលើសមួយសរមាប់ទទួលយក្ដំណ្ឹងតដលជាសិសេន ោះនទ ដំណាងនៅ

ខាងនដើមនេបំផុែនឹងរែូវយក្មក្នរបើសរមាប់ទទួលយក្សិសេន ោះ។ របការននោះនឹងនធវើឲ្យ

ក្ំហុសសតីពីការមានដំណាងមិនរេប់រោន់នឹងនក្ើែមាននឡើង។ នហែុដូចននោះនហើយានជា
ទំព័រ 168

ចាំាច់នយើងរែូវបនងកើែដំណាងនលើសមួយជានិចនច ៅក្នុងវ ិធីនផេងៗនដើមបីចាំទទួលយក្ដំណ្ឹង

តដលជាសិសេន ោះ។ ជាទូនៅ នេនរចើននរបើន្មោះ self ជាដំណាងតដលចាំទទួលយក្សិសេ

តែនយើងក្៍អាចនរបើន្មោះដថ្ទនទៀែានតដរ។ ជាភាាតខ្មរ នយើងេួរតែនរបើពាក្យថា សិសេ ជា

ដំណាងទីមួយន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកររូឧាឞឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

សិសសក = រកឡាថ្ហទ()

សិសសក.រកឡាថ្ហទចរុ ណកាណកកង(25, 5)

def __init__(សិសស) : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែាថបនិក្តដលនៅក្នុងន ោះមានពាក្យថា សិសេ

ជាដំណាងទី មួយសរមាប់ទទួលយក្ដំណ្ឹងតដលជាសិសេតដលនឹងរែូវបនងកើែនឡើងនៅនពល

តដលថានក្់រែូវយក្នៅនរបើ ។

def រកឡាថ្ហច
ទ រុណកាណកកង(សិសស, សណតោ ឤ, វវឹង) : េឺ ជាបញ្
ា ែរមូវរឲ្បនងកើែវ ិធី ន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មួយតដលនៅក្នុងន ោះមានពាក្យថា សិសេ ជាដំណាងទីមួយសរមាប់

ដំណ្ឹងតដលនឹងជាសិសេណាមានក្់។
ទំព័រ 169

សិសសក = រកឡាថ្ហ(ទ ) េឺ ជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេក្ មានក្់។ របការននោះនធវើឲ្យាថបនិក្ថ្នថានក្់ ន ោះរែូវយក្មក្នរបើ ជាសវ័យរបវែតិ។ នហើយ

នៅនពលតដលាថបនិក្រែូវយក្មក្នរបើ ដំណ្ឹងតដលជាសិសេនទើ បនឹងរែូវានបនងកើែមាន

ន្មោះថា សិសេក្ ន ោះរែូវានផតល់ឲ្យាថបនិក្សរមាប់ដំណាង សិសេ ជាសវ័យរបវែតិ។

សិសសក.រកឡាថ្ហច
ទ រុណកាណកកង(25, 5) េឺជាការយក្វ ិធីន្មោះ រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្

នរបើតមរយៈសិសេន្មោះ សិសេក្ ។ របការននោះនធវើឲ្យដំណ្ឹងតដលជាសិសេន្មោះ សិសេក្

រែូវានផតល់ជាសវ័យរបវែតិបតនថមនលើដំណ្ឹងតដលជានលខ្ 25 និងនលខ្ 5 ឲ្យនៅវ ិធីន ោះ។

ដូចននោះនយើងន ើញថា នៅនពលតដលវ ិធីរែូវយក្នៅនរបើ តមរយៈសិសេណាមួយ ដំណ្ឹងតដល

ជាសិសេន ោះ រែូវផតល់ឲ្យនៅវ ិធីន ោះជាសវ័យរបវែតិបតនថមនៅនលើដំណ្ឹងនផេងៗនទៀែនបើសិន

ជាមាន។ ក្៍ប៉ុតនត ប ទ ប់ពីន ោះមក្ សិសេន ោះរែូវយក្នៅនរបើ ឬអែ់ េឺោមនបញ្


ា អវីទំងអស់ េឺ វា

នរបៀបាននៅនឹងវែថុមួយតដលរែូវានទទួលយក្នហើយរូចទុក្នចាល វានឹងមិនបងកឲ្យមាន

បញ្ ា េឺនៅរែង់ថា នបើនៅក្នុងវ ិធីោមនដំណាងតដលជាពាក្យថា សិសេ សរមាប់


ា អវីនឡើយ។ បញ្

ទទួលយក្វែថុតដលជាសិសេន ោះនទ ក្ំហុសសតីពីការមានដំណាងមិនរេប់រោន់នឹងនក្ើែមាន

នឡើង។

ម៉ាងនទៀែ នយើងរែូវនធវើការក្ែ់សំោល់ថា ការផតល់ដំណ្ឹងជាសិសេជាសវ័យរបវែតិសរមាប់

ដំណាងទីមួយនៅក្នុងវ ិធី អាចរបរពឹែនត ៅានតែនៅនពលណាតដលវ ិធីរែូវយក្នៅនរបើតមរយ

សិសេតែប៉ុនណាណោះ។ ក្នុងក្រណ្ីវ ិធីរែូវយក្នៅនរបើ តមរយៈតមរយៈថានក្់របស់វា ដំណ្ឹង

សរមាប់ដំណាងទី មួយនឹងមិនរែូវានផតល់ឲ្យនៅវ ិធីន ោះនដាយសវ័យរបែតិនឡើយ។ ដូចននោះនៅ

នពលតដលនយើងយក្វ ិធីនផេងៗមក្នរបើ តមរយៈថានក្់របស់វា នយើងចាំាច់រែូវតែផតល់ដំណ្ឹង


ទំព័រ 170

ណាមួយសរមាប់ដំណាងទីមួយនៅក្នុងវ ិធី ន ោះ នបើ ពុំន ោះនាែនទ ក្ំហុសនឹងនក្ើែមាននឡើង

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកររូឧាឞឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ ថ្ហទរកឡា)

សិសសក = រកឡាថ្ហទ()

រកឡាថ្ហទ.រកឡាថ្ហទចរុ ណកាណកកង(សិសសក, 25, 5)

រកឡាថ្ហទ.រកឡាថ្ហទចរុ ណកាណកកង(True, 25, 5)

រកឡាថ្ហ.ទ រកឡាថ្ហច
ទ រុណកាណកកង(សិសសក, 25, 5) េឺជាការវ ិធីន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្នរបើតមរយៈថានក្់របស់វា។ ដំណ្ឹងតដលជាសិសេន្មោះ សិសេក្

ដំណ្ឹងតដលជានលខ្ 25 និងដំណ្ឹងតដលជានលខ្ 5 រែូវផតល់ឲ្យនៅវ ិធី ន ោះនរៀងោន។

រកឡាថ្ហ.ទ រកឡាថ្ហច
ទ រុណកាណកកង(True, 25, 5) េឺ ជាការយក្វ ិធី ន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្នរបើតមរយៈថាមក្់របស់វា។ ដំណ្ឹងតដលជាែក្កវែថុ True ដំណ្ឹង

តដលជានលខ្ 25 និងដំណ្ឹងតដលជានលខ្ 5 រែូវានផតល់ឲ្យនៅដំណាងនផេងៗនៅក្នុងវ ិធី

ន ោះនរៀងោន។
ទំព័រ 171

នរៅពីការយក្ទិននន័យេរមូនិងឬវ ិធីមួយចំនួននៅនរបើនៅខាងនរៅថានក្់ នយើងក្៍ អាចយក្វែថុ

ទំងន ោះមក្នរបើ នៅក្នុងវ ិធី នផេងៗនទៀែនៅក្នុងថានក្់ជាមួយោនានតដរ។ ពិនិែយក្មមវ ិធី ខាង

នរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកររូឧាឞឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

def សងាាញឦវធហឦ(សិសស, សណតោ ឤ, វវឹង) :

print("ឡី គឺជាណឦខ៖", រកឡាថ្ហទ.ឡី)

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ សិសស.រកឡាថ្ហទចរុ ណកាណកកង(សណតោ ឤ, វវឹង))

សិសសក = រកឡាថ្ហទ()

សិសសក.សងាាញឦវធហឦ(25, 5)

រកឡាថ្ហ.ទ ឡី េឺជាការយក្ទិននន័យេរមូន្មោះ ពី មក្នរបើ នៅក្នុងវ ិធីន្មោះ បងាាញលទធផល

តដលជាវ ិធីសិែ
ថ នៅក្នុងថានក្់ជាមួយនឹងទិននន័យេរមូន ោះ។ ដូចននោះការយក្ទិននន័យេរមូមក្

នរបើអាចរែូវនធវើនឡើងតមរយៈថានក្់របស់វា។

សិសស.រកឡាថ្ហច
ទ រុណកាណកកង(សណតោ ឤ, វវឹង) េឺជាការយក្វ ិធី ន្មោះ

រក្ឡាថ្ផទចែុនកាណ្តក្ង មក្នរបើនៅក្នុងវ ិធីន្មោះ បងាាញលទធផល តដលជាវ ិធីនៅក្នុងថានក្់


ទំព័រ 172

ជាមួយោន។ ដូចននោះការយក្វ ិធី មួយនៅនរបើ នៅក្នុងវ ិធីមួយនទៀែអាចរែូវនធវើនឡើយតមសិសេ

ថ្នថានក្់របស់វ ិធីទំងន ោះ។

ចំនពាោះាថបនិក្វ ិញ វាក្៍ ជាវ ិធីមួយដូចជាវ ិធី ដថ្ទនទៀែតដរ ដូចននោះាថបនិក្អាចទទួលយក្

ដំណ្ឹងនផេងៗនរៅពីសិសេាន។ នដាយាថបនិក្រែូវយក្នៅនរបើនៅនពលតដលថានក្់រែូវយក្

នៅនរបើ ដូចននោះការផតល់ដំណ្ឹងឲ្យនៅាថបនិក្េឺ រែូវនធវើនឡើងនៅនពលតដលថានក្់រែូវយក្នៅ

នរបើ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សងាាញឦវធហឦ(សណតោ ឤ, វវឹង)

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

def សងាាញឦវធហឦ(សិសស, សណតោ ឤ, វវឹង) :

print("ឡី គឺជាណឦខ៖", រកឡាថ្ហទ.ឡី)

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ សិសស.រកឡាថ្ហទចរុ ណកាណកកង(សណតោ ឤ, វវឹង))

សិសសក = រកឡាថ្ហទ(25, 5)

def __init__(សិសស, សណតោ ឤ, វវឹង) : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែាថបនិក្មួយតដលមាន

ដំណាង បនណា
ត យ និង ទទឹង សរមាប់ទទួលយក្ដំណ្ឹងតដលមិនតមនជាសិសេ។
ទំព័រ 173

សិសសក = រកឡាថ្ហ(ទ 25, 5) េឺជាការយក្ថានក្់ ន្មោះ រក្ឡាថ្ផទ មក្នរបើនដាយផតល់វែថុចំនួនពីរ

ជាដំណ្ឹងសរមាប់ដំណាង បនណា
ត យ និ ង ទទឹង នៅក្នុងាថបនិក្ថ្នថានក្់ន ោះ។

ទិនែន័យ គម្មូ

នៅក្នុងថានក្់ក្៍ដូចជានៅខាងនរៅថានក្់ តដរ ការយក្ទិននន័យេរមូនៅនរបើេឺរែូវនធវើនឡើងតមរយៈ

ថានក្់ឬតមរយៈសិសេថ្នថានក្់របស់ទិននន័យេរមូន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សងាាញឦវធហឦ(សណតោ ឤ, វវឹង)

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

def សងាាញឦវធហឦ(សិសស, សណតោ ឤ, វវឹង) :

print("ឡី គឺជាណឦខ៖", សិសស.ឡី)

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ សិសស.រកឡាថ្ហទចរុ ណកាណកកង(សណតោ ឤ, វវឹង))

សិសសក = រកឡាថ្ហទ(25, 5)

print(រកឡាថ្ហទ.ឡី)
ទំព័រ 174

print("ឡី គឺជាណឦខ៖", សិសស.ឡី) េឺ ជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ទិននន័យ

េរមូន្មោះ ពី មក្នរបើ ។ ការយក្ទិននន័យេរមូននោះមក្នរបើរែូវនធវើនឡើងតមរយៈសិសេថ្នថានក្់

បស់ទិននន័យន ោះ។

print(រកឡាថ្ហ.ទ ឡី) េឺជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ទិននន័យេរមូន្មោះ ពី មក្

នរបើ។ ការយក្ទិននន័យននោះមក្នរបើ េឺរែូវនធវើនឡើងតមរយៈថានក្់បស់ទិននន័យន ោះ។

នរៅពីការយក្ទិននន័យេរមូថ្នថានក្់ណាមួយមក្នរបើ នយើងក្៍ អាចយក្ទិននន័យន ោះមក្ដូរងមី

ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សងាាញឦវធហឦ(សណតោ ឤ, វវឹង)

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

def សងាាញឦវធហឦ(សិសស, សណតោ ឤ, វវឹង) :

print("ឡី គឺជាណឦខ៖", រកឡាថ្ហទ.ឡី)

print("រកឡាថ្ហទចរុ ណកាណកកងគ៖",
ឺ សិសស.រកឡាថ្ហទចរុ ណកាណកកង(សណតោ ឤ, វវឹង))

រកឡាថ្ហទ.ឡី = 3.1415

print("វិឞនឞ័ឤគរឣូណ្មោះ ឡី លមគ
ី ៖",
ឺ រកឡាថ្ហទ.ឡី)
ទំព័រ 175

រកឡាថ្ហ.ទ ឡី = 3.1415 េឺជាបញ្


ា ែរមូវឲ្យយក្ទិននន័យេរមូន្មោះ ពី មក្ដូរងមីតមរយៈថានក្់

របស់វា។ ទិននន័យេរមូន្មោះ ពី ននោះរែូវានដូរពីរពីនលខ្ 3.14 ឲ្យនៅជានលខ្ 3.1415 វ ិញ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា ការយក្ទិននន័យេរមូមក្នដាោះដូរងមីេឺរែូវតែនធវើនឡើងតមរយៈ

ថានក្់របស់វា។ េឺ នយើងមិនអាចយក្ទិននន័យេរមូន ោះមក្នធវើការនដាោះដូរតមរយៈសិសេថ្នថានក្់

របស់វាាននឡើយ។ នយើងនឹងដឹងថាមក្ពី នហែុអីវនៅនពលបនតិចនទៀែននោះ។

សិសស

នយើងានដឹងរួចមក្នហើយថាសិសេេឺជាវែថុតដលជាលទធផលានមក្ពីការយក្ថានក្់មក្នរបើ។

ដូចននោះសិសេមានលក្ខណ្ៈដូចជាវែថុដថ្ទនទៀែតដរ ានន័យថានៅក្តនលងណាតដលវែថុនផេងៗ

អាចរែូវយក្នៅនរបើ ាន សិសេក្៍ អាចរែូវយក្នៅនរបើានដូចោន។ មួយវ ិញនទៀែ សិសេេឺជា

វែថុទនទាអែមួយនរកាយពី រែូវានបនងកើែនឡើង តែវាមានទំ ក្់ទំនងយា៉ ងជិទធសិទ


ន ជា
ធ មួយនឹង

ថានក្់របស់វា នហើយេឺ នដាយារសិសេននោះនហើយតដលនយើងអាចវ ិធី នផេងៗនៅក្នុងថានក្់ នៅនរបើ

នៅក្នុងតដនក្ំណ្ែ់ ដថ្ទនទៀែាន។

នយើងេួរតែរ ំលឹក្នឡើងវ ិញថា នៅនពលតដលនយើងយក្វ ិធីណាមួយមក្នរបើ តមរយៈសិសេណា

មានក្់ សិសេន ោះនឹងរែូវផតល់ជាដំណ្ឹងឲ្យនៅដំណាងទី មួយនៅក្នុងវ ិធីន ោះជាសវ័យរបវែតិ។

យនតការននោះេឺជាចាប់នៅក្នុងភាា Python ។

របការតដលសំខាន់មួយនទៀែេឺ ថា សិសេេឺជាវែថុតដលជាក្តនលងទនទាអែមួយនៅក្នុងសែិ

របស់ក្ំពយូទ័រ ដូចននោះនយើងអាចបនងកើែវែថុនផេងៗនទៀែទុក្នៅទីន ោះនដើមបីក្ុំឲ្យរចឡំនៅនឹងវែថុ

ដថ្ទនទៀែតដលមានន្មោះដូចោន។ នដើមបីបនងកើែវែថុនផេងៗទុក្នៅក្នុងសិសេ នយើងរែូវសរនសរ

ក្មមវ ិធីដូចខាងនរកាមននោះ៖
ទំព័រ 176

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកាឞររូឧឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

សិសសក = រកឡាថ្ហទ()

សិសសក.សណតោ ឤ = 25

សិសសក.វវឹង = 5

print(សិសសក.សណតោ ឤ)

print(សិសសក.វវឹង)

សិសសក.សណតោ ឤ = 25 េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែចំនួនេែ់នលខ្ 25 មួយមានន្មោះថា

បនណា
ត យ ទុក្នៅក្នុងសិសេន្មោះ សិសេក្ ។

សិសសក.វវឹង = 5 េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែចំនួនេែ់នលខ្ 5 មួយនទៀែមានន្មោះថា ទទឹង

ទុក្នៅក្នុងសិសេន្មោះ សិសេក្ ដតដល។

print(សិសសក.សណតោ ឤ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ

បនណា
ត យ តដលសថិែនៅក្នុងសិសេន្មោះ សិសេក្ មក្នរបើ ការ។

print(សិសសក.វវឹង) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ ទទឹង តដល

សថិែនៅក្នុងសិសេន្មោះ សិសេក្ មក្នរបើការ។


ទំព័រ 177

សរុបមក្នយើងន ើញថា នៅក្នុងសិសេន្មោះ សិសេក្ មានវែថុន្មោះ បនណា


ត យ និងវែថុន្មោះ

ទទឹង រែូវានបនងកើែនឡើងនិងទុក្នៅទី ន ោះ។ នយើងនៅវែថុតដលមាននៅក្នុងសិសេថាជា

សមបែតិសិសេ (instance attribute) តដលអាចជាវែថុរបនភទណាក្៍ានតដរ។ ក្៍ប៉ុតនតភាេនរចើន

នេនិយមបនងកើែវែថុតដលជាទិននន័យនផេងៗទុក្នៅក្នុងសិសេនដើមបីក្ុំឲ្យរចឡំនៅនឹងវែថុនផេងៗ

នទៀែតដលមានន្មោះដូចោន។

ការបនងកើែសមបែតិសិសេអាចរែូវនធវើតមរនបៀបម៉ាងនទៀែដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សណតោ ឤ = សណតោ ឤ

សិសស.វវឹង = វវឹង

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

សិសសក = រកឡាថ្ហទ(25, 5)

print(សិសសក.សណតោ ឤ)

print(សិសសក.វវឹង)

សិសស.សណតោ ឤ = សណតោ ឤ េឺជាបញ្


ា ែរមូវឲ្យបនងកើែសមបែតិន្មោះ បនណា
ត យ មួយទុក្នៅ

ក្នុងសិសេតដលមានន្មោះថា សិសេ នៅក្នុងាថបនិក្។


ទំព័រ 178

សិសស.វវឹង = វវឹង េឺជាបញ្


ា ែរមូវឲ្យបនងកើែសមបែតិន្មោះ ទទឹង មួយនទៀែទុក្នៅក្នុង

សិសេតដលមានន្មោះជា សិសេ នៅក្នុងាថបនិក្។

សិសសក = រកឡាថ្ហ(ទ 25, 5) េឺជាការយក្ថានក្់ ន្មោះ រក្ឡាថ្ផទ មក្នរបើនដើមបីបនងកើែសិសេ

ន្មោះ សិសេក្ មានក្់។ ក្តតននោះនធវើឲ្យាថបនិក្នៅក្នុងថានក្់ន ោះរែូវានយក្មក្នរបើជា

សវ័យរបវែតិ តដលជារបការបណា
ត លឲ្យសិសេន្មោះ សិសេក្ តដលនទើបនឹងរែូវានបនងកើែន ោះ

រែូវានផតល់ជាដំណ្ឹងឲ្យនៅាថបនិក្សរមាប់ដំណាង សិសេ និងដំណ្ឹងជានលខ្ 25 និង

នលខ្ 5 រែូវានផតល់ជាដំណ្ឹងសរមាប់ដំណាង បនណា


ត យ និង ទទឹង នរៀងោន។ នហើយប ទ ប់

មក្នទៀែ រក្រមបញ្
ា នៅក្នុងាថបនិក្ន ោះក្៍ រែូវានយក្នៅអនុវែតតដរ តដលជារបការនធវើឲ្យ

សមបែតិន្មោះ បនណា
ត យ និង ទទឹង រែូវានបនងកើែនឡើងនិងទុក្នៅក្នុងសិសេន្មោះ សិសេក្

ន ោះ។ សមបែតិសិសេទំងន ោះេឺជាដំណ្ឹងតដលរែូវានផតល់ឲ្យនៅាថបនិក្នៅនពលតដល

ថានក្់ន្មោះ រក្ឡាថ្ផទ រែូវានយក្មក្នរបើ។

នយើងន ើញថា ការបនងកើែសមបែតិសិសេអាចរែូវនធវើនៅាននៅខាងនរៅថានក្់ ក្៍ាននិងឬនៅ

ខាងក្នុងថានក្់ ក្៍ាន។ ក្៍ប៉ុតនតការបនងកើែសមបែតិសិសេនៅខាងក្នុងថានក្់ េឺរែូវនធវើនឡើងនៅក្នុងវ ិធី

ណាមួយ នហើយជាទូនៅនេនរចើននរបើាថបនិក្ជាក្តនលងសរមាប់បនងកើែសមបែតិសិសេនផេងៗ។

េឺនហែុដូចននោះនហើយានជាវ ិធី ន្មោះ __init__ រែូវនៅថាាថបនិក្នរពាោះវាមាន ទីជាអនក្

បនងកើែសមបែតិសិសេទំងពួង។

នរកាយពីសមបែតិសិសេរែូវានបនងកើែរូចនហើយ នយើងអាចយក្វែថុទំងន ោះនៅនធវើការនដាោះដូរងមី

ានរេប់នពលនវលា។ នហើយការនដាោះដូរននោះអាចរែូវនធវើនឡើងនៅខាងក្នុងថានក្់និងឬនៅខាង

នរៅថានក្់ានដូចោន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :
ទំព័រ 179

ឡី = 3.14

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សណតោ ឤ = សណតោ ឤ

សិសស.វវឹង = វវឹង

def ដូ ឥសឣបរោស
ិ ិសស(សិសស, សណតោ ឤលម)ី :

សិសស.សណតោ ឤ = សណតោ ឤលមី

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

សិសសក = រកឡាថ្ហទ(25, 5)

សិសសក.ដូ ឥសឣបរោស
ិ ិសស(50)

សិសសក.វវឹង = 10

print(សិសសក.សណតោ ឤ)

print(សិសសក.វវឹង)

សិសស.សណតោ ឤ = សណតោ ឤលី ម េឺ ជាបញ្


ា ែរមូវឲ្យនធវើការនដាោះដូរសមបែតិន្មោះ បនណា
ត យ

របស់សិសេមានន្មោះថា សិសេ នៅក្នុងវ ិធីន្មោះ ដូរសមបែតិសិសេ ។

សិសសក.ដូឥសឣបរិស
ោ ិសស(50) េឺជាការយក្វ ិធីន្មោះ ដូរសមបែតិសិសេ មក្នរបើ តមរយៈសិសេ

ន្មោះ សិសេក្ នដាយផតល់ដំណ្ឹងជានលខ្ 50 ឲ្យនៅវ ិធីន ោះ។ របការននោះាននធវើឲ្យសមបែតិ

ត យ របស់សិសេន្មោះ សិសេក្ រែូវានបតូរនៅជានលខ្ 50 វ ិញ។


ន្មោះ បនណា
ទំព័រ 180

សិសសក.វវឹង = 10 េឺជាបញ្
ា ែរមូវឲ្យនធវើការនដាោះដូរសមបែតិន្មោះ ទទឹង របស់សិសេន្មោះ

សិសេក្ ឲ្យនៅជានលខ្ 10 វ ិញ។

ការបនងកើែសិសេក្៍ ជាការបនងកើែតដនក្ំណ្ែ់ មួយតដរ ដូចននោះសមបែតិសិសេមិនអាចរែូវរចឡំ

ជាមួយនឹងសមបែតិថានក្់និងឬសមបែតិសិសេនផេងៗនទៀែាននឡើយ នទោះបី ជាវែតុទំងន ោះមាន

ន្មោះដូចោនក្៍ នដាយ។ នហើយនៅនពលតដលនយើងយក្សមបែតិទំងន ោះមក្នរបើ តមរយៈ

សិសេណាមួយ ការតសវងរក្សមបែតិទំងន ោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើង

នៅថានក្់ របស់សិសេន ោះជាបនតប ទ ប់។ ពិនិែយក្មមវ ិធី ខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, ឡី) :

សិសស.ឡី = ឡី

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

សិសសក = រកឡាថ្ហទ(3.1415)

សិសសខ = រកឡាថ្ហទ(3.141592)

print(សិសសក.ឡី)

print(សិសសខ.ឡី)

ឡី = 3.14 េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែទិននន័យេរមូន្មោះ ពី មួយតដលជាសមបែតិនៅក្នុងថានក្់

ន្មោះ រក្ឡាថ្ផទ ។
ទំព័រ 181

def __init__(សិសស, ឡី) : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែាថបនិក្មួយតដលនៅក្នុងន ោះមានដំណាង

មួយជាន្មោះ ពី ។

សិសស.ឡី = ឡី េឺ ជាបញ្
ា ែរមូវឲ្យបនងកើែសមបែតិន្មោះ ពី មួយទុក្នៅក្នុងសិសេតដលមាន

ន្មោះថា សិសេ នៅក្នុងាថបនិក្។

សិសសក = រកឡាថ្ហ(ទ 3.1415) េឺជាការយក្ថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នរបើនដើមបីបនងកើែសិសេ

ន្មោះ សិសេក្ មានក្់។ នៅនពលតដលថានក្់ន្មោះ រក្ឡាថ្ផទ រែូវយក្មក្នរបើ ាថបនិក្នៅក្នុង

ថានក្់ន ោះក្៍រែូវយក្មក្នរបើជាសវ័យរបវែតិតដរ។ នហើយសិសេន្មោះ សិសេក្ តដលនទើបនឹងរែូវ

បនងកើែន ោះ ក្៍ រែូវានផតល់ជាដំណ្ឹងសរមាប់ដំណាងទី មួយនៅក្នុងាថបនិក្ន ោះជា

សវ័យរបវែតិ។ ចំតណ្ក្ឯដំណ្ឹងតដលជានលខ្ 3.1415 វ ិញ រែូវានផតល់ឲ្យនៅាថបនិក្សរមាប់

ដំណាង ពី ។ ដូចននោះវែថុតដលជានលខ្ 3.1415 និងមានន្មោះជា ពី មួយរែូវានបនងកើែនឡើង

នៅក្នុងាថបនិក្។ នហើយនៅនពលតដល បញ្


ា សិសេ.ពី = ពី រែូវយក្នៅអនុវែតន្មោះ ពី មួយ

នទៀែសថិែនៅក្នុងតដនក្ំណ្ែ់ តដលជាសិសេន្មោះ សិសេក្ ក្៍រែូវានភាាប់នៅនឹងនលខ្

3.1415 ន ោះតដរ។

ន្មោះ ពី នៅក្នុងាថបនិក្ និងន្មោះ ពី នៅក្នុងតដនក្ំណ្ែ់ តដលជាសិសេន្មោះ សិសេក្ េឺ

ជាន្មោះពីរនផេងោន នរពាោះវាសថិែនៅក្នុងតដនក្ំណ្ែ់ពីរនផេងោន។ ម៉ាងនទៀែន្មោះ ពី តដល

ជាដំណាងនៅក្នុងាថបនិក្រែូវានលុបនចាលវ ិញនៅនពលតដលាថបនិក្រែូវយក្នៅនរបើរច

នហើយ។ តែចំតណ្ក្ឯន្មោះ ពី នៅក្នុងតដនក្ំណ្ែ់តដលជាសិសេន្មោះ សិសេក្ វ ិញ រែូវ

សថិែនៅរហូែដល់សិសេន ោះរែូវលុបនចាល។
ទំព័រ 182

សិសេក្.ពី = ពី

សិសេក្ ាថបនិក្

ពី ពី

3.1415

សិសសខ = រកឡាថ្ហ(ទ 3.141592) េឺជាការយក្ថានក្់ ន្មោះ រក្ឡាថ្ផទ មក្នរបើ នដើមបីបនងកើែសិសេ

ន្មោះ សិសេខ្ មានក្់នទៀែ និងបនងកើែសមបែតិន្មោះ ពី មួយនទៀែទុក្នៅក្នុងសិសេន្មោះ

សិសេខ្ ន ោះ។

សិសេខ្.ពី = ពី

សិសេខ្ ាថបនិក្

ពី ពី

3.141592

ដូចននោះនយើងន ើញថាសិសេន្មោះ សិសេក្ និងសិសេន្មោះ សិសេខ្ សុទតធ ែមានសមបែតិ

ន្មោះ ពី ដូ ចោន តែវែថុទំងពីរន ោះជាវែថុខ្ុសោន នរពាោះវាសថិែនៅក្នុងតដនក្ំណ្ែ់ តដលជា

សិសេពីរនផេងោន។
ទំព័រ 183

សិសេក្ សិសេខ្

ពី ពី

3.1415 3.141592

print(សិសសក.ឡី) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ ពី មក្នរបើ តម

រយៈសិសេន្មោះ សិសេក្ ។ នយាងនៅតមចាប់ នៅក្នុងភាា Python ការតសវងរក្វែថុន្មោះ

ពី ន ោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុនរួចាននឡើងនៅថានក្់របស់សិសេន ោះជានរកាយ។

អាស្រស័យនហែុ ននោះ វែថុន្មោះ ពី តដលជាសមបែតិរបស់សិសេន្មោះ សិសេក្ រែូវានយក្មក្

នរបើ នរពាោះវារែូវានរក្ន ើញនៅក្នុងសិសេន ោះមុននេ។

print(សិសសខ.ឡី) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វែថុន្មោះ ពី មក្នរបើ តម

រយៈសិសេន្មោះ សិសេខ្ ។ នយាងនៅតមចាប់ នៅក្នុងភាា Python ការតសវងរក្វែថុន្មោះ

ពី ន ោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុនរួចាននឡើងនៅថានក្់របស់សិសេន ោះជានរកាយ។

អាស្រស័យនហែុ ននោះ វែថុន្មោះ ពី តដលជាសមបែតិរបស់សិសេន្មោះ សិសេខ្ រែូវានយក្មក្

នរបើ នរពាោះវារែូវានរក្ន ើញនៅក្នុងសិសេន ោះមុននេ។

សរុបមក្ នៅនពលតដលក្មមវ ិធីខាងនលើននោះមានដំនណ្ើរការ ន្មោះ ពី ចំនួនបួនរែូវាន

បនងកើែនឡើងនៅក្នុងតដនក្ំណ្ែ់ បួនខ្ុសៗោន។ ន្មោះទំងន ោះមានដូចខាងនរកាមននោះ៖

- ន្មោះ ពី របស់ទិននន័យេរមូ 3.14 រែូវានបនងកើែនឡើងនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ ។


ទំព័រ 184

- ន្មោះ ពី មួយនទៀែតដលជាដំណាងនៅក្នុងាថបនិក្រែូវានបនងកើែនឡើងនដើមបីភាាប់នៅ

នឹងដំណ្ឹងតដលជានលខ្រែូវានផតល់ឲ្យនៅាថបនិក្។ ន្មោះ ពី ននោះរែូវលុបនចាល

វ ិញនៅនពលតដលាថបនិក្រែូវានយក្នៅនរបើរច
ួ នហើយ។

- ន្មោះ ពី មួយនទៀែរែូវានបនងកើែនឡើងនៅក្នុងសិសេន្មោះ សិសេក្ និងរែូវានភាាប់

នៅនឹងនលខ្ 3.1415 តដលមានន្មោះ ពី ដូចោននៅាថបនិក្។

- ន្មោះ ពី មួយនទៀែរែូវានបនងកើែនឡើងនៅក្នុងសិសេន្មោះ សិសេខ្ និងរែូវានភាាប់

នៅនឹងនលខ្ 3.141592 តដលមានន្មោះ ពី ដូចោននៅក្នុងាថបនិក្។

នដាយនហែុថានយើងអាចបនងកើែសមបែតិមានន្មោះដូចោននៅក្នុងថានក្់និងនៅក្នុងសិសេ ដូចននោះ

ការប៉ុនប៉ងយក្សមបែតិក្ុងថា
ន ន ក្់មក្នធវើការនដាោះដូរតមរយៈសិសេ េឺជាការបនងកើែសមបែតិសិសេ

ងមីមានន្មោះដូចនៅនឹងសមបែតិនៅក្នុងថានក្់ន ោះនៅវ ិញនទ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកររូឧាឞឤកណៅណរស។")

def រកឡាថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ, វវឹង) :

ថ្ហទរកឡា = សណតោ ឤ * វវឹង

return ថ្ហទរកឡា

សិសសក = រកឡាថ្ហទ()

សិសសក.ឡី = 3.1415

print(រកឡាថ្ហទ.ឡី)

print(សិសសក.ឡី)
ទំព័រ 185

សិសសក.ឡី = 3.1415 េឺជាការប៉ុនប៉ងយក្ទិននន័យេរមូនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ មក្នធវើ

ការនដាោះដូរតមរយៈសិសេន្មោះ សិសេក្ ។ ក្៍ប៉ុតនតទនងវើននោះេឺ ជាការបនងកើែសមបែតិន្មោះ ពី

មួយនទៀែទុក្នៅក្នុងសិសេន្មោះ សិសេក្ ន ោះវ ិញនទ េឺមិនតមនជាការយក្ទិននន័យេរមូ

ន្មោះ ពី មក្នធវើការនដាោះដូរនឡើយ។

ដូចននោះរេប់ការយក្ទិននន័យេរមូមក្នធវើការនដាោះដូរ រែូវតែរែូវនធវើនឡើងតមរយៈថានក្់របស់វែថុ

ន ោះ។

មួយវ ិញនទៀែ ទិននន័យេរមូនិងវ ិធីនផេងៗនៅក្នុងថានក្់ េឺហាក្់ ដូចជាសមបែតិាធ្លរណ្ៈមួយ

ចំនួនតដលអាចរែូវយក្នៅនរបើតមរយៈសិសេណាមួយក្៍ ានតដរ ឲ្យតែសិសេទំងន ោះជា

សិសេថ្នថានក្់ តដលមានសមបែតិទំងន ោះ។ ក្៍ប៉ុតនតចំនពាោះសមបែតិសិសេវ ិញ វាេឺជាវែថុផ្ទទល់ខ្ួន


របស់សិសេមានក្់ៗ នទោះបី ជាវែថុទំងន ោះមានន្មោះដូចោនក្៍ នដាយ។ នហើយរេប់ការសមបែតិ

របស់សិសេណាមួយនៅនរបើ េឺរែូវតែរែូវនធវើនឡើងតមរយៈសិសេន ោះ។

ការបនត ថ្នែក់

ការបនតថានក្់ (inheritance) េឺជាការបនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់នផេងៗនទៀែ។ នដើមបី

បនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់មួយនទៀែ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកថ្ឞថានក់ណ្មោះ រកឡាថ្ហទ ។")

def ថ្ហទរកឡា(សិសស) :
ទំព័រ 186

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def ថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ=0, វវឹង=0) :

ថ្ហទ = សណតោ ឤ * វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

class ចរុណកាណកកង(រកឡាថ្ហ)ទ : េឺ ជាបនងកើែថានក្់ន្មោះ ចែុ នកាណ្តក្ង មួ យបនតភាាប់ នៅនឹ ង

ថានក្់ន្មោះ រក្ឡាថ្ផទ ។ ក្នុងក្រណ្ីននោះ ថានក្់ ន្មោះ រក្ឡាថ្ផទ រែូវនៅថា ថានក្់នម (superclass)

និងថានក្់ ន្មោះ ចែុនកាណ្តក្ង រែូវនៅថា ថានក្់រង (subclass) ។

រក្ឡាថ្ផទ

ចែុនកាណ្តក្ង

ផលរបនយាជន៍ថ្នការបនតថានក្់េឺថា តមរយៈសិសេថ្នថានក្់រងនិងឬថានក្់រង នយើងអាចយក្

សមបែតិនៅក្នុងថានក្់នមនិងថានក្់រងទំងអស់មក្នរបើ ការ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :
ទំព័រ 187

print("ោថសឞិកថ្ឞថានក់ណ្មោះ រកឡាថ្ហទ ។")

def ថ្ហទរកឡា(សិសស) :

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def ថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ=0, វវឹង=0) :

ថ្ហទ = សណតោ ឤ * វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

ចរុ សិសស = ចរុ ណកាណកកង()

print(ចរុ ណកាណកកង.ឡី)

ចរុ សិសស.ថ្ហទចរុ ណកាណកកង()

ចរុ សិសស.ថ្ហទរកឡា()

ចរុសិសស = ចរុណកាណកកង() េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែសិសេន្មោះ ចែុសិសេ មានក្់តដលជា

សិសេថ្នថានក្់ រងន្មោះ ចែុនកាណ្តក្ង ។ របការននោះបណា


ត លឲ្យាថបនិក្រែូវយក្មក្នរបើជា

សវ័យរបវែតិ។ ការតសវងរក្វ ិធីតដលជាាថបនិក្រែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើង

នៅថានក្់ របស់សិសេន ោះតដលជាថានក្់ន្មោះ ចែុនកាណ្តក្ង រួចាននឡើងជាបនតនៅនទៀែនៅ

ថានក្់នមថ្នថានក្់ របស់សិសេន ោះ។ វ ិធីន្មោះ __init__ តដលជាាថបនិក្រែូវានរក្ន ើញនៅ

ក្នុងថានក្់ នមន្មោះ រក្ឡាថ្ផទ ។

print(ចរុណកាណកកង.ឡី) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ទិននន័យេរមូន្មោះ

ពី មក្នរបើ តមរយៈថានក្់ន្មោះ ចែុនកាណ្តក្ង ។ ការតសវងរក្វែថុន ោះរែូវនធវើនឡើងនៅក្នុងថានក្់

ន្មោះ ចែុនកាណ្តក្ង ន ោះមុន រួចាននឡើងនៅថានក្់នមរបស់ថានក្់ ន ោះ។ ទិននន័យេរមូន្មោះ

ពី រែូវានរក្ន ើញនៅក្នុងថានក្់ នមន្មោះ រក្ឡាថ្ផទ ។


ទំព័រ 188

ចរុសិសស.ថ្ហច
ទ រុណកាណកកង() េឺ ជាការយក្វ ិធី ន្មោះ ចែុនកាណ្តក្ង មក្នរបើ តមរយៈសិសេ

ន្មោះ ចែុសិសេ ។ ការតសវងរក្វ ិធីននោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅ

ថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់ នមថ្នថានក្់របស់សិសេន ោះ។ វ ិធីន្មោះ

ថ្ផទចែុនកាណ្តក្ង រែូវានរក្ន ើញនៅក្នុងថានក្់ របស់សិសេន ោះតដលជាថានក្់ន្មោះ

ចែុនកាណ្តក្ង ។

ចរុសិសស.ថ្ហរទ កឡា() េឺជាការយក្វ ិធី ន្មោះ រក្ឡាថ្ផទ មក្នរបើតមរយៈសិសេន្មោះ

ចែុសិសេ ។ ការតសវងរក្វ ិធីន ោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់

សិសេន ោះ រូចាននៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះ។ វ ិធីន្មោះ ថ្ផទរក្ឡា រែូវានរក្

ន ើញនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ តដលជាថានក្់នមថ្នថានក្់របស់សិសេន ោះ។

សរុបមក្ នៅនពលតដលសមបែតិណាមួយរែូវានយក្មក្នរបើតមរយៈសិសេណាមានក្់

ការតសវងរក្វែថុន ោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ

រួចាននឡើងនៅថានក្់នមថ្នថានក្់របស់សិសេន ោះនបើសិនជាមាន។ តែនបើ សមបែតិន ោះរែូវាន

យក្មក្នរបើតមរយៈថានក្់ ណាមួយវ ិញ ការតសវងរក្វែថុន ោះរែូវនធវើនឡើងនៅក្នុងថានក្់ន ោះមុន

រួចាននឡើងនៅថានក្់នមរបស់ថានក្់ន ោះនបើ សិនជាមាន។

ថានក្់នម

ថានក្់រង

សិសេ
ទំព័រ 189

នៅក្នុងការបនតថានក្់ នយើងអាចយក្ថានក្់ចំនួនប៉ុ ម នក្៍ ានតដរមក្បនតោន។ នពាលេឺនយើងអាច

បនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់មួយនទៀែតដលរែូវានបនតភាាប់នៅនឹងថានក្់មួយនទៀែ

តដលរែូវានបនតភាាប់នៅនឹងថានក្់មួយនទៀែ...

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកថ្ឞថានក់ណ្មោះ រកឡាថ្ហទ ។")

def ថ្ហទរកឡា(សិសស) :

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def ថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ=0, វវឹង=0) :

ថ្ហទ = សណតោ ឤ * វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

class ររីណកាណ(ចរុ ណកាណកកង) :

def ថ្ហទររណកាណ(ស
ី ិសស, ារ, កំឡស់) :

ថ្ហទ = ារ * កំឡស់ / 2

print("រកឡាថ្ហទររណកាណគ
ី ៖",
ឺ ថ្ហទ)

class ចរុណកាណកកង(រកឡាថ្ហ)ទ : េឺ ជាការបនងកើែថានក្់ន្មោះ ចែុ នកាណ្តក្ង មួ យបនតភាាប់នៅ

នឹងថានក្់ ន្មោះ រក្ឡាថ្ផទ ។


ទំព័រ 190

class ររីណកាណ(ចរុណកាណកកង) : េឺ ជាការបនងកើែថានក្់ន្មោះ រែី នកាណ្ មួ យបនតភាាប់នៅនឹ ង

ថានក្់ន្មោះ ចែុនកាណ្តក្ង ។

រក្ឡាថ្ផទ

ចែុនកាណ្តក្ង

រែីនកាណ្

ក្នុងក្រណ្ីមានថានក្់ជានរចើនែភាាប់ោនពី មួយនៅមួយ នៅនពលតដលសមបែតិណាមួយរែូវាន

យក្មក្នរបើ ការតសវងរក្សមបែតិន ោះរែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេឬថានក្់តដលតមរយៈវា

សមបែតិន ោះរែូវយក្មក្នរបើ រួចាននឡើងនៅថានក្់នលើជាបនតប ទ ប់។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកថ្ឞថានក់ណ្មោះ រកឡាថ្ហទ ។")

def ថ្ហទរកឡា(សិសស) :

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :


ទំព័រ 191

def ថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ=0, វវឹង=0) :

ថ្ហទ = សណតោ ឤ * វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

class ររណកាណ(ចរុ
ី ណកាណកកង) :

def ថ្ហទររណកាណ(ស
ី ិសស, ារ, កំឡស់) :

ថ្ហទ = ារ * កំឡស់ / 2

print("រកឡាថ្ហទររីណកាណគឺ៖", ថ្ហទ)

សិសសក = ររណកាណ()

សិសសក.ថ្ហទររណកាណ(25,
ី 5)

សិសសក.ថ្ហទចរុ ណកាណកកង(25, 5)

print(ររីណកាណ.ឡី)

សិសសក = ររីណកាណ() េឺ ជាការយក្ថានក្់ន្មោះ រែីនកាណ្ មក្នរបើ នដើមបីបនងកើែសិសេន្មោះ

សិសេក្ មានក្់។ របការននោះបណា


ត លឲ្យាថបនិក្រែូវយក្មក្នរបើជាសវ័យរបវែតិ។ ការតសវងរក្

ាថបនិក្រែូវនធវើនឡើងនៅក្នុងសិសេន្មោះ សិសេក្ ន ោះមុន រួចាននឡើងនៅថានក្់ របស់សិសេ

ន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់។ ាថបនិក្តដលជាវ ិធី

ន្មោះ __init__ រែូវានរក្ន ើញនៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ តដលជាថានក្់នមនៅខាងនលើនេ

បំផុែ។

សិសសក.ថ្ហរទ រីណកាណ(25, 5) េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរែីនកាណ្ មក្នរបើ តមរយៈសិសេ

ត លឲ្យការតសវងរក្វ ិធី ន
ន្មោះ សិសេក្ ។ របការននោះបណា ោះរែូវនធវើនឡើងជាដំបូងនៅក្នុង

សិសេន្មោះ សិសេក្ ន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់


ទំព័រ 192

នមថ្នថានក្់របស់សិសេន ោះជាបនតប ទ ប់។ វ ិធីន្មោះ ថ្ផទរែីនកាណ្ រែូវានរក្ន ើញនៅក្នុង

ថានក្់ន្មោះ រែីនកាណ្ តដលជាថានក្់របស់សិសេន ោះ។

សិសសក.ថ្ហច
ទ រុណកាណកកង(25, 5) េឺជាការយក្វ ិធី ន្មោះ ថ្ផទចែុនកាណ្តក្ង មក្នរបើតមរយៈ

ត លឲ្យការតសវងរក្វ ិធី ន
សិសេន្មោះ សិសេក្ ។ របការននោះបណា ោះរែូវនធវើនឡើងជាដំបូង

នៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់ របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់

របស់សិសេន ោះជាបនតប ទ ប់។ វ ិធីន្មោះ ថ្ផទចែុនកាណ្តក្ង រែូវានរក្ន ើញនៅក្នុងថានក្់

ន្មោះ ចែុនកាណ្តក្ង តដលជាថានក្់នមថ្នថានក្់ន្មោះ រែីនកាណ្ ។

ការតសវងរក្សមបែតិនផេងៗអាចរែូវតងនដាយេំនូសបំរពួញដូចខាងនរកាមននោះ៖

ថានក្់នម

ថានក្់នម

ថានក្់រង

សិសេ
ទំព័រ 193

អាស្រស័យនៅតមវ ិធ្លនថ្នការតសវងរក្សមបែតិដូចខាងនលើ នយើងមិនអាចយក្សមបែតិនៅក្នុង

ថានក្់រងមក្នរបើ តមរយៈថានក្់នមឬសិសេថ្នថានក្់នមាននឡើយ។ ការប៉ុនប៉ងនធវើដូចននោះនឹងបងក

ឲ្យមានក្ំហុសនក្ើែមាននឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស) :

print("ោថសឞិកថ្ឞថានក់ណ្មោះ រកឡាថ្ហទ ។")

def ថ្ហទរកឡា(សិសស) :

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def ថ្ហទចរុ ណកាណកកង(សិសស, សណតោ ឤ=0, វវឹង=0) :

ថ្ហទ = សណតោ ឤ * វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

class ររណកាណ(ចរុ
ី ណកាណកកង) :

def ថ្ហទររីណកាណ(សិសស, ារ, កំឡស់) :

ថ្ហទ = ារ * កំឡស់ / 2

print("រកឡាថ្ហទររណកាណគ
ី ៖",
ឺ ថ្ហទ)

សិសសក = ចរុ ណកាណកកង()

សិសសក.ថ្ហទររីណកាណ(25, 5)

ចរុ ណកាណកកង.ថ្ហទររណកាណ(ស
ី ិសស, 25, 5)
ទំព័រ 194

សិសសក.ថ្ហរទ រីណកាណ(25, 5) េឺជាការាក្លបងយក្វ ិធី ន្មោះ ថ្ផទរែីនកាណ្ មក្នរបើតមរយៈ

សិសេន្មោះ សិសេក្ តដលជាសិសេថ្នថានក្់ន្មោះ ចែុនកាណ្តក្ង ។ នយាងនៅតមវ ិធ្លនថ្ន

ការតសវងរក្សមបែតិ ការតសវងរក្វ ិធីន្មោះ ថ្ផទរែីនកាណ្ រែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេ

ន្មោះ សិសេក្ ន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់ នមថ្ន

ថានក្់របស់សិសេន ោះជាបនតប ទ ប់។ នដាយវ ិធី ន្មោះ ថ្ផទរែីនកាណ្ សថិែនៅក្នុងថានក្់ន្មោះ

រែីនកាណ្ តដលជាថានក្់រងថ្នថានក្់ន្មោះ ចែុនកាណ្តក្ង ដូចននោះវ ិធី ន ោះមិនអាចរែូវរក្ន ើញ

នឡើយ។ របការននោះបណា
ត លឲ្យក្ំហុសមួយាននក្ើែមាននឡើង។

ចរុណកាណកកង.ថ្ហរទ រីណកាណ(សិសស, 25, 5) េឺ ជាការាក្លបងយក្វ ិធី ន្មោះ ថ្ផទរែីនកាណ្

មក្នរបើ តមរយៈថានក្់ន្មោះ ចែុ នកាណ្តក្ង ។ នយាងនៅតមវ ិធ្លនថ្នការតសវងរក្សមបែតិ

ការតសវងរក្វ ិធីន្មោះ ថ្ផទរែីនកាណ្ រែូវនធវើនឡើងជាដំបូងនៅក្នុងថានក្់ ន ោះមុន រួចាននឡើងនៅ

ថានក្់នមរបស់ថានក្់ន ោះជាបនតប ទ ប់។ នដាយវ ិធីន្មោះ ថ្ផទរែីនកាណ្ សថិែនៅក្នុងថានក្់ ន្មោះ

រែីនកាណ្ តដលជាថានក្់រងថ្នថានក្់ន្មោះ ចែុនកាណ្តក្ង ដូចននោះវ ិធី ន ោះមិនអាចរែូវរក្ន ើញ

នឡើយ។

សរុបមក្នយើងន ើញថា នៅនពលតដលសមបែតិណាមួយរែូវយក្មក្នរបើ តមរយៈសិសេឬថានក្់

ណាមួយ ការតសវងរក្វែថុពីររបនភទរែូវនធវើនឡើងក្នុងនពលជាមួយោន។ ជាដំបូងេឺ ការតសវងរក្វែថុ

តដលជាសិសេឬថានក្់តដលតមរយៈវាសមបែតិន ោះរែូវានយក្មក្នរបើ។ ការតសវងរក្វែថុតដល

ជាសិសេឬថានក្់ន ោះ រែូវនធវើនឡើងនដាយអនុនលាមនៅតមវ ិធ្លនថ្នការតសវងរក្វែថុនៅក្នុងតដន

ក្ំណ្ែ់ នផេងៗ។ ជាប ទ ប់មក្នទៀែេឺការតសវងរក្វែថុតដលជាសមបែតិរែូវយក្មក្នរបើ។

ការតសវងរក្សមបែតិន ោះរែូវនធវើនឡើងនដាយអនុនលាមនៅតមវ ិធ្លនថ្នការតសវងរក្សមបែតិនៅ

ក្នុងសិសេនិងថានក្់នផេងៗ។
ទំព័រ 195

ជាក្់តសតងការសរនសរ៖ សិសសក.ថ្ហរទ រីណកាណ(25, 5) នៅក្នុងក្មមវ ិធីខាងនលើ េឺជាការយក្

សមបែតិន្មោះ ថ្ផទរែីនកាណ្ មក្នរបើតមរយៈសិសេន្មោះ សិសេក្ ។ របការននោះនធវើឲ្យ

ការតសវងរក្វែថុពីររបនភទរែូវនធវើនឡើងក្នុងនពលជាមួយោន។ មុនដំបូងេឺការតសវងរក្វែថុតដលជា

សិសេន្មោះ សិសេក្ ។ ការតសវងរក្សិសេន ោះរែូវនធវើនឡើងនយាងនៅតមវ ិធ្លនថ្ន

ការតសវងរក្វែថុនៅក្នុងតដនក្ំណ្ែ់នផេងៗ។ ប ទ ប់មក្នទៀែ េឺជាការតសវងវែថុតដលជាសមបែតិ

ន្មោះ ថ្ផទរែីនកាណ្ ។ ការតសវងរក្សមបែតិន ោះរែូវនធវើនឡើងនដាយអនុនលាមនៅតមវ ិធ្លនថ្ន

ការតសវងរក្សមបែតិនៅក្នុងសិសេនិងថានក្់នផេងៗ។

សមបត្តិ ឈ្មោះដ្ូ ច គ្នែ

នដាយថានក្់ក្៍ជាតដនក្ំណ្ែ់មួយតដរ ដូចននោះសមបែតិនៅក្នុងថានក្់និមួយៗមិនអាចរែូវរចឡំនៅ

នឹងសមបែតិនៅក្នុងថានក្់នផេងៗនទៀែាននឡើយ នទោះបីជាវែថុទំងន ោះមានន្មោះដូចោនក្៍

នដាយ។ ម៉ាងនទៀែ អែថរបនយាជន៍ជាារវ ័នតថ្នការបនងកើែថានក្់ េឺ នដើមបីអាចបនងកើែវែថុខ្ុសៗោន

តដលមានន្មោះដូចោន នរពាោះវែថុមានន្មោះដូចោនតែសថិែនៅក្នុងថានក្់ខ្ុសោន េឺជាវែថុខ្ុសោន។

នបើនយើងមិនបនងកើែថានក្់តដលជាក្តនលងសរមាប់បនងកើែវែថុនផេងៗនទៀែន ោះនទ បញ្


ា ន្មោះជាន់

ោននឹងនក្ើែមាននឡើង។

នៅក្នុងក្រណ្ីមានការបនតថានក្់តដលមានសមបែតិមានន្មោះដូចោន នៅនពលតដលសមបែតិទំង

ន ោះរែូវយក្មក្នរបើ សមបែតិតដលរែូវរក្ន ើញមុននេនឹងរែូវយក្មក្នរបើ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :
ទំព័រ 196

សិសស.ឧមាររ
ិ = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

print("ថ្ហទរកឡា")

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def __init__(សិសស, សណតោ ឤ, វវឹង) :

សិសស.សណតោ ឤ = សណតោ ឤ

សិសស.វវឹង = វវឹង

def ថ្ហទរកឡា(សិសស) :

ថ្ហទ = សិសស.សណតោ ឤ * សិសស.វវឹង

print("ថ្ហទរកឡាចរុ ណកាណកកងគ៖",
ឺ ថ្ហទ)

class ររណកាណ(ចរុ
ី ណកាណកកង) :

def __init__(សិសស, ារ, កំឡស់) :

សិសស.ារ = ារ

សិសស.កំឡស់ = កំឡស់

def ថ្ហទរកឡា(សិសស) :

ថ្ហទ = សិសស.ារ * សិសស.កំឡស់ / 2

print("រកឡាថ្ហទររីណកាណគឺ៖", ថ្ហទ)

សិសសររណកាណ
ី = ររណកាណ(25,
ី 5)

សិសសចរុ ណកាណ = ចរុ ណកាណកកង(25, 5)

សិសសររណកាណ.ថ្ហទ
ី រកឡា()

សិសសចរុ ណកាណ.ថ្ហទរកឡា()
ទំព័រ 197

សិសសររណកាណ
ី = ររីណកាណ(25, 5) េឺ ជាការបនងកើែសិសេន្មោះ សិសេរែីនកាណ្ មានក្់តដល

ជាសិសេថ្នថានក្់ន្មោះ រែីនកាណ្ ។ របការននោះនធវើឲ្យាថបនិក្រែូវយក្មក្នរបើ នហើយសិសេ

ន្មោះ សិសេរែីនកាណ្ នលខ្ 25 និងនលខ្ 5 រែូវផតល់ឲ្យនៅាថបនិក្ន ោះជាសវ័យរបវែតិ។

ការតសវងរក្ាថបនិក្តដលជាវ ិធី មានន្មោះថា __init__ រែូវនធវើនឡើងនៅក្នុងសិសេន្មោះ

សិសេរែីនកាណ្ ន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់ នមថ្ន

ថានក្់របស់សិសេន ោះជាបនតប ទ ប់។ នដាយនហែុថាាថបនិក្នៅក្នុងថានក្់រងន្មោះ រែីនកាណ្

រែូវានរក្ន ើញមុននេ ដូចននោះេឺ ជាាថបនិក្នៅក្នុងថានក្់ន្មោះ រែីនកាណ្ ន ោះនហើយតដល

រែូវយក្នៅនរបើជាសវ័យរបវែតិ។

សិសសចរុណកាណ = ចរុណកាណកកង(25, 5) េឺជាការបនងកើែសិសេន្មោះ សិសេចែុនកាណ្

មានក្់តដលជាសិសេថ្នថានក្់ ន្មោះ ចែុនកាណ្តក្ង ។ របការននោះនធវើឲ្យាថបនិក្រែូវយក្មក្នរបើ

នហើយសិសេន្មោះ សិសេចែុនកាណ្ នលខ្ 25 និងនលខ្ 5 រែូវផតល់ឲ្យនៅាថបនិក្ន ោះជា

សវ័យរបវែតិ។

ការតសវងរក្ាថបនិក្តដលជាវ ិធី មានន្មោះថា __init__ រែូវនធវើនឡើងនៅក្នុងសិសេន្មោះ

សិសេចែុនកាណ្ ន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្ន

ថានក្់របស់សិសេន ោះជាបនតប ទ ប់។ នដាយនហែុថាាថបនិក្នៅក្នុងថានក្់ន្មោះ

ចែុនកាណ្តក្ង រែូវានរក្ន ើញមុននេ ដូចននោះេឺ ជាាថបនិក្នៅក្នុងថានក្់ ចែុនកាណ្តក្ង

ន ោះនហើយតដលរែូវយក្នៅនរបើជាសវ័យរបវែតិ។

សិសសររីណកាណ.ថ្ហរទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេរែីនកាណ្ ។ ការតសវងរក្វ ិធីន ោះរែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះមុន រួចាន

នឡើងនៅថានក្់ របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់។


ទំព័រ 198

នដាយនហែុថាវ ិធីន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ន្មោះ រែីនកាណ្ រែូវានរក្ន ើញមុននេ

ដូចននោះេឺជាវ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ននោះនហើយតដលរែូវយក្នៅនរបើ។

សិសសចរុណកាណ.ថ្ហរទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេចែុនកាណ្ ។ ការតសវងរក្វ ិធីន ោះរែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះមុន រួចាន

នឡើងនៅថានក្់ របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់។

នដាយនហែុថាវ ិធីន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ន្មោះ ចែុនកាណ្តក្ង រែូវានរក្ន ើញមុននេ

ដូចននោះេឺជាវ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ននោះនហើយតដលរែូវយក្នៅនរបើ។

នៅនពលតដលនយើងបនងកើែវ ិធីនៅក្នុងថានក្់រងមានន្មោះដូចវ ិធីនៅក្នុងថានក្់នម នេនិយាយថា

នយើងបនងកើែវ ិធីនៅក្នុងថានក្់រង ាំង (override) វ ិធីនៅក្នុងថានក្់នម។ ក្នុងក្រណ្ីននោះ វ ិធី នៅក្នុង

ថានក្់រងរែូវនៅថា វ ិធី ាំងនេ (overriding method) និងវ ិធីនៅក្នុងថានក្់នមរែូវនៅថា

វ ិធីរែូវនេាំង (overridden method) ។

មួយវ ិញនទៀែ ក្នុងក្រណ្ីតដលថានក្់នមនិងថានក្់រងមានសមបែតិមានន្មោះដូចោន នៅនពលតដល

នយើងយក្សមបែតិន្មោះដូចោនន ោះនៅនរបើ សមបែតិតដលរែូវយក្នៅនរបើេឺអាស្រស័យនៅនលើ

សិសេតដលតមរយៈវាសមបែតិន ោះរែូវយក្នៅនរបើ។ ជាក្់តសតងនៅក្នុងក្មមវ ិធីខាងនលើ ការយក្

វ ិធី ន្មោះ ថ្ផទរក្ឡា ថ្នថានក្់ណាមួយមក្នរបើេឺអាស្រស័យនៅនលើសិសេតដលតមរយៈវាវ ិធី ន ោះ

រែូវយក្នៅនរបើ។ េឺ ថានបើសិសេជាសិសេថ្នថានក្់ន្មោះ រែីនកាណ្ េឺ វ ិធីន្មោះ ថ្ផទរក្ឡា នៅ

ក្នុងថានក្់ ន្មោះ រែីនកាណ្ ន ោះតដលរែូវយក្នៅនរបើ។ តែនបើ សិសេជាសិសេថ្នថានក្់ ន្មោះ

ចែុនកាណ្តក្ង វ ិញ េឺជាវ ិធីន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ ន្មោះ ចែុនកាណ្តក្ង ន ោះតដល

រែូវយក្នៅនរបើ។ ដូចននោះវ ិធី ន្មោះ ថ្ផទរក្ឡា អាចតរបរក្ឡាជាវ ិធីថ្នថានក្់ណាមួយក្៍ ានតដរ

េឺអាស្រស័យនៅនលើសិសេតដលតមរយៈវាវ ិធីន ោះរែូវយក្នៅនរបើ។ នៅក្នុងវ ិស័យព័ែ៌មានវ ិទា


ទំព័រ 199

ភាពតដលអាចតរបរក្ឡាានននោះនៅថា លក្ខណ្ៈតរបរូប (polymorphism) តដលជាចំណ្ុចដ៍

សំខាន់មួយនៅក្នុងការសរនសរក្មមវ ិធីនដាយបនងកើែថានក្់ នផេងៗ (OOP) ។

នយើងានដឹងរួចមក្នហើយថា នៅនពលតដលនយើងយក្វ ិធីមានន្មោះដូចោនមក្នរបើតមរយៈ

សិសេថ្នថានក្់រង េឺជាវ ិធីាំងនេនៅក្នុងថានក្់រងតដលរែូវយក្នៅនរបើ នរពាោះវារែូវានរក្ន ើញ

មុននេនៅទីន ោះ។ ក្៍ប៉ុតនត នបើសិនជានយើងចង់ ឲ្យវ ិធីរែូវនេាំងនៅក្នុងថានក្់ នមរែូវយក្នៅនរបើ

តដរនៅនពលតដលវ ិធីាំងនេនៅក្នុងថានក្់រងរែូវយក្នៅនរបើ នយើងរែូវសរនសរក្មមវ ិធីដូចខាង

នរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររ

class ចរុ ណកាណកកង(រកឡាថ្ហទ) :

def __init__(សិសស, សណតោ ឤ, វវឹង) :

super().__init__(សណតោ ឤ, វវឹង)

def ថ្ហទរកឡា(សិសស) :

ចរុ ឧមាររ
ិ = super().ថ្ហទរកឡា()

ថ្ហទ = ចរុ ឧមាររ[0]


ិ * ចរុ ឧមាររ[1]

return ថ្ហទ

class ររីណកាណ(ចរុ ណកាណកកង) :


ទំព័រ 200

def __init__(សិសស, ារ, កំឡស់) :

super().__init__(ារ, កំឡស់)

def ថ្ហទរកឡា(សិសស) :

ថ្ហទ = super().ថ្ហទរកឡា() / 2

print("រកឡាថ្ហទររណកាណគ
ី ៖",
ឺ ថ្ហទ)

សិសសររីណកាណ = ររីណកាណ(25, 5)

សិសសររណកាណ.ថ្ហទ
ី រកឡា()

super().__init__(សណតោ ឤ, វវឹង) េឺ ជាការយក្ាថបនិក្រែូវនេាំងនៅក្នុងថានក្់ នមន្មោះ

រក្ឡាថ្ផទ មក្នរបើ នៅក្នុងាថបនិក្ាំងនេនៅក្នុងថានក្់រងន្មោះ ចែុនកាណ្តក្ង ។ ដូចននោះនៅ

នពលតដលាថបនិក្ាំងនេនៅក្នុងថានក្់ រងន្មោះ ចែុនកាណ្តក្ង រែូវយក្នៅនរបើ ាថបនិក្

រែូវនេាំងនៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើតដរ។

ចរុឧមាររ
ិ = super().ថ្ហរទ កឡា() េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វ ិធីរែូវនេ

ាំងន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ មក្នរបើនៅក្នុងវ ិធីាំងនេន្មោះ

ថ្ផទរក្ឡា នៅក្នុងថានក្់រងន្មោះ ចែុនកាណ្តក្ង ។ ដូចននោះនៅនពលតដលវ ិធីាំងនេន្មោះ

ថ្ផទរក្ឡា នៅក្នុងថានក្់រងន្មោះ ចែុនកាណ្តក្ង រែូវយក្នៅនរបើ វ ិធីរែូវនេាំងន្មោះ

ថ្ផទរក្ឡា នៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើតដរ។

ំ ស់) េឺ ជាការយក្ាថបនិក្រែូវនេាំងនៅក្នុងថានក្់ នមន្មោះ


super().__init__(ារ, កឡ

ចែុនកាណ្តក្ង មក្នរបើនៅក្នុងាថបនិក្ាំងនេនៅក្នុងថានក្់រងន្មោះ រែីនកាណ្ ។ ដូចននោះនៅ

នពលតដលាថបនិក្ាំងនេនៅក្នុងថានក្់ រងន្មោះ រែីនកាណ្ រែូវយក្នៅនរបើ ាថបនិក្រែូវនេ

ាំងនៅក្នុងថានក្់នមន្មោះ ចែុនកាណ្តក្ង ក្៍រែូវយក្នៅនរបើតដរ។


ទំព័រ 201

ថ្ហទ = super().ថ្ហរទ កឡា() / 2 េឺ ជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វ ិធីរែូវនេាំង

ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់នមន្មោះ ចែុនកាណ្តក្ង មក្នរបើ នៅក្នុងថានក្់រងន្មោះ

រែីនកាណ្ ។ ដូចននោះនៅនពលតដលវ ិធី ាំងនេន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់រងន្មោះ

រែីនកាណ្ រែូវយក្នៅនរបើ វ ិធីរែូវនេាំងន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់នមន្មោះ

ចែុនកាណ្តក្ង ក្៍រែូវយក្នៅនរបើតដរ។

សិសសររីណកាណ = ររីណកាណ(25, 5) េឺ ជាការយក្ថានក្់ន្មោះ រែីនកាណ្ មក្នរបើនដើមបីបនងកើែ

សិសេន្មោះ សិសេរែីនកាណ្ មានក្់។ របការននោះនធវើឲ្យាថបនិក្ថ្នថានក្់ន្មោះ រែីនកាណ្ រែូវ

យក្មក្នរបើជាសវ័យរបវែតិ តដលជានហែុបណា
ត លឲ្យាថបនិក្ថ្នថានក្់នមន្មោះ ចែុនកាណ្តក្ង

ក្៍រែូវយក្មក្នរបើតដរ។ នហើយនៅនពលតដលាថបនិក្ថ្នថានក្់ន្មោះ ចែុនកាណ្តក្ង រែូវយក្

មក្នរបើ ាថបនិក្ថ្នថានក្់នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្មក្នរបើ តដរ។

និយាយរួម ការយក្ាថបនិក្ថ្នថានក្់រងន្មោះ រែីនកាណ្ មក្នរបើ ជានហែុ បណា


ត លឲ្យ

ាថបនិក្ថ្នថានក្់នមន្មោះ ចែុនកាណ្តក្ង និងថានក្់នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើ

ជាបនតប ទ ប់ជាប់ោនរនយាងដូចជាសមលររក្ពិស។

សិសសររណកាណ.ថ្ហ
ី រទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេរែីនកាណ្ ។ អាស្រស័យនៅតមវ ិធ្លនថ្នការតសវងរក្សមបែតិ វ ិធី ាំងនេន្មោះ ថ្ផទរក្ឡា

នៅក្នុងថានក្់របស់សិសេន្មោះ សិសេរែីនកាណ្ រែូវយក្ានយក្មក្នរបើ។ នហើយនៅនពល

តដលវ ិធីចុងនរកាយននោះរែូវយក្នៅនរបើ វ ិធីមានន្មោះ ថ្ផទរក្ឡា ដូចោននៅក្នុងថានក្់នមន្មោះ

ចែុនកាណ្តក្ង និងនៅក្នុងថានក្់ នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើតដរ។


ទំព័រ 202

និយាយរួម ការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់រងន្មោះ រែីនកាណ្ មក្នរបើ ជានហែុ

ត លឲ្យវ ិធីមានន្មោះដូចោននៅក្នុងថានក្់នមន្មោះ ចែុនកាណ្តក្ង និងថានក្់នមន្មោះ


បណា

រក្ឡាថ្ផទ ក្៍រែូវយក្នៅនរបើ ជាបនតប ទ ប់ជាប់ ោនរនយាងដូចសមលររក្ពិស។។

ពហុបនតថ្នែក់

ពហុបនតថានក្់ (multiple inheritance) េឺជាការបនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់ជានរចើន

នទៀែ។ នដើមបីបនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់ជានរចើននទៀែ នយើងរែូវសរនសរក្មមវ ិធីដូច

ខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររ

class មាឌ() :

ឡី = 3.1415

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def មាឌ(សិសស) :

return សិសស.ឧមាររ

ទំព័រ 203

class គស(រកឡាថ្ហទ
ី , មាឌ) :

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

ថ្ហទ = សិសស.ឧមាររ[0]
ិ * សិសស.ឧមាររ[1]
ិ *6

print("រកឡាថ្ហទគសគ
ី ៖",
ឺ ថ្ហទ)

def មាឌ(សិសស) :

មាឌគស
ី = សិសស.ឧមាររ[0]
ិ * សិសស.ឧមាររ[1]
ិ * សិសស.ឧមាររ[2]

print("មាឌឥសស់គសគ
ី ឺ៖", មាឌគស)

class គស(រកឡាថ្ហ
ី ,ទ មាឌ) : េឺ ជាការបនងកើែថានក្់ រងន្មោះ េី ប មួ យបនតភាាប់នៅនឹ ងថានក្់នម

ន្មោះ រក្ឡាថ្ផទ និងថានក្់នមន្មោះ មាឌ ។

រក្ឡាថ្ផទ មាឌ

េីប

ក្នុងក្រណ្ីមានពហុបនតថានក្់ នៅនពលតដលសមបែតិនផេងៗរែូវយក្នៅនរបើ ការតសវងរក្សមបែតិ

ទំងន ោះរែូវនធវើនឡើងដូចនៅក្នុងេំនូរបំរពួញដូចខាងនរកាមននោះ៖
ទំព័រ 204

ថានក្់នម ថានក្់នម

ថានក្់នម ថានក្់នម

ថានក្់នម ថានក្់នម

ថានក្់នម ថានក្់នម

ថានក្់រង ថានក្់រង

សិសេ
ទំព័រ 205

េឺថានបើការយក្សមបែតិនៅនរបើរែូវនធវើនឡើងតមរយៈសិសេថ្នថានក្់ រង ការតសវងរក្សមបែតិន ោះ

នឹងរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅ

ថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់តមសញ្ដរពួញរហូែដល់សមបែតិន ោះរែូវរក្

ន ើញនទើបឈប់។ នហើយក្នុងក្រណ្ីតដលមានសមបែតិមានន្មោះដូចោនជានរចើននៅក្នុងថានក្់

នផេងៗ សមបែតិតដលរែូវយក្មក្នរបើេឺជាសមបែតិតដលរែូវរក្ន ើញមុននេ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររ

class មាឌ() :

ឡី = 3.1415

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

def មាឌ(សិសស) :

return សិសស.ឧមាររ

class គស(រកឡាថ្ហទ
ី , មាឌ) :

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររ
ិ = ឧមាររ

ទំព័រ 206

def ថ្ហទរកឡា(សិសស) :

ថ្ហទ = សិសស.ឧមាររ[0]
ិ * សិសស.ឧមាររ[1]
ិ *6

print("រកឡាថ្ហទគីសគឺ៖", ថ្ហទ)

def មាឌ(សិសស) :

មាឌគស
ី = សិសស.ឧមាររ[0]
ិ * សិសស.ឧមាររ[1]
ិ * សិសស.ឧមាររ[2]

print("មាឌឥសស់គសគ
ី ឺ៖", មាឌគស)

សិសសគស
ី = គស(25,
ី 5, 10)

សិសសគស.ថ្ហទ
ី រកឡា()

សិសសគស.មាឌ()

print(សិសសគីស.ឡី)

សិសសគស
ី = គស(25
ី , 5, 10) េឺជាការយក្ថានក្់ន្មោះ េី ប មក្នរបើ នដើ មបីបនងកើែសិសេន្មោះ

សិសេេីប មានក្់។ របការននោះបណា


ត លឲ្យាថបនិក្រែូវយក្មក្នរបើជាសវ័យរបវែតិ។ ការតសវងរក្

ាថបនិក្តដលជាវ ិធី ន្មោះ __init__ រែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន្មោះ សិសេេីប ន ោះ

មុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះជានរកាយ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់

សិសេន ោះជាបនតប ទ ប់រហូែដល់ាថបនិក្រែូវរក្ន ើញ។ នហើយេឺាថបនិក្នៅក្នុងថានក្់

ន្មោះ េីប តដលរែូវានយក្មក្នរបើ នរពាោះវារែូវានរក្ន ើញមុននេ។

សិសសគស.ថ្ហ
ី រទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេេីប ។ ការតសវងរក្វ ិធីន្មោះ ថ្ផទរក្ឡា រែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះមុន រួច

ាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជា

បនតប ទ ប់រហូែដល់វ ិធីមានន្មោះដូចន ោះរែូវរក្ន ើញ។ នហើយេឺវ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុង

ថានក្់ន្មោះ េីប តដលរែូវយក្មក្នរបើ នរពាោះវារែូវានរក្ន ើញនៅទី ន ោះមុននេ។


ទំព័រ 207

សិសសគីស.មាឌ() េឺ ជាការយក្វ ិធីន្មោះ មាឌ មក្នរបើ តមរយៈសិសេន្មោះ សិសេេីប ។

ការតសវងរក្វ ិធីមានន្មោះដូចននោះរែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះជាមុនសិន រួចាន

នឡើងនៅថានក្់ របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់

រហូែដល់វ ិធីន ោះរែូវរក្ន ើញ។ នហើយេឺ វ ិធីន្មោះ មាឌ នៅក្នុងថានក្់ន្មោះ េីប តដលរែូវយក្

មក្នរបើ នរពាោះវារែូវានរក្ន ើញនៅទីន ោះមុននេ។

print(សិសសគីស.ឡី) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិន្មោះ ពី មក្នរបើ

តមរយៈសិសេន្មោះ សិសេេីប ។ ការតសវងរក្សមបែតិមានន្មោះដូចន ោះរែូវនធវើនឡើងនៅ

ក្នុងសិសេន ោះជាមុ នសិន រួចាននឡើងនៅថានក្់របស់ន ោះជានរកាយ រួចាននឡើងនៅថានក្់នម

ថ្នថានក្់របស់សិសេន ោះជាបនតប ទ ប់រហូែដល់សមបែតិមានន្មោះដូចន ោះរែូវរក្ន ើញ។

នហើយេឺ ជាទិននន័យេរមូន្មោះ មាឌ នៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ តដលរែូវានយក្នៅនរបើ

នរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ ន ោះមុននេ។

ចំនពាោះវ ិធី រែូវនេាំងនៅក្នុងថានក្់ នម នបើសិនជានយើងចង់ យក្វ ិធីទំងន ោះនៅនរបើនៅក្នុងថានក្់រង

នយើងរែូវសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

class រកឡាថ្ហទ() :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររថ្ហទ
ិ រកឡា = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររថ្ហទ
ិ រកឡា

class មាឌ() :
ទំព័រ 208

ឡី = 3.1415

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររមាឌ
ិ = ឧមាររ

def មាឌ(សិសស) :

return សិសស.ឧមាររមាឌ

class គីស(រកឡាថ្ហទ, មាឌ) :

def __init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់) :

super().__init__(សណតោ ឤ, វវឹង)

មាឌ.__init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់)

def ថ្ហទរកឡា(សិសស) :

ឧមាររថ្ហទ
ិ រកឡា = super().ថ្ហទរកឡា()

ថ្ហទ = ឧមាររថ្ហទ
ិ រកឡា[0] * ឧមាររថ្ហទ
ិ រកឡា[1] * 6

print("រកឡាថ្ហទគសគ
ី ៖",
ឺ ថ្ហទ)

def មាឌ(សិសស) :

ឧមាររមាឌ
ិ = super().មាឌ()

មាឌគស
ី = ឧមាររមាឌ[0]
ិ * ឧមាររមាឌ[1]
ិ * ឧមាររមាឌ[2]

print("មាឌឥសស់គសគ
ី ឺ៖", មាឌគស)

សិសសគស
ី = គស(25,
ី 5, 10)

សិសសគស.ថ្ហទ
ី រកឡា()

សិសសគស.មាឌ()

ទំព័រ 209

super().__init__(សណតោ ឤ, វវឹង) េឺ ជាការយក្ាថបនិក្នៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ មក្

នរបើនៅក្នុងាថបនិក្នៅក្នុងថានក្់រងន្មោះ េីប ។ ដូចននោះនៅនពលតដលាថបនិក្នៅក្នុងថានក្់

ន្មោះ េីប រែូវយក្នៅនរបើ ាថបនិក្នៅក្នុងថានក្់ន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើតដរ។

មាឌ.__init__(សិសស, សណត ំ ស់) េឺ ជាការយក្ាថបនិក្នៅក្នុងថានក្់នមន្មោះ


ោ ឤ, វវឹង, កឡ

មាឌ មក្នរបើនៅក្នុងាថបនិក្នៅក្នុងថានក្់រងន្មោះ េីប ។ ដូចននោះនៅនពលតដលាថបនិក្នៅ

ក្នុងថានក្់ ន្មោះ េីប រែូវយក្នៅនរបើ ាថបនិក្នៅក្នុងថានក្់ន្មោះ មាឌ ក្៍ រែូវយក្នៅនរបើតដរ។

ឧមាររថ្ហ
ិ រទ កឡា = super().ថ្ហរទ កឡា() េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វ ិធី

ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ មក្នរបើ នៅក្នុងវ ិធីន្មោះ ថ្ផទរក្ឡា នៅក្នុង

ថានក្់រងន្មោះ េីប ។ ដូចននោះនៅនពលតដលវ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់រងន្មោះ េីប រែូវ

យក្នៅនរបើ វ ិធីមានន្មោះដូចោននៅក្នុងថានក្់នមន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្នៅនរបើ តដរ។

ឧមាររមាឌ
ិ = super().មាឌ() េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វ ិធី ន្មោះ មាឌ

នៅក្នុងថានក្់នមន្មោះ មាឌ មក្នរបើនៅក្នុងវ ិធី ន្មោះ មាឌ នៅក្នុងថានក្់រងន្មោះ េីប ។ ដូចននោះ

នៅនពលតដលវ ិធីន្មោះ មាឌ នៅក្នុងថានក្់រងន្មោះ េីប រែូវយក្នៅនរបើ វ ិធី មានន្មោះដូចោន

នៅក្នុងថានក្់នមន្មោះ មាឌ ក្៍រែូវយក្នៅនរបើ តដរ។

សិសសគស
ី = គស(25
ី , 5, 10) េឺជាការយក្ថានក្់ន្មោះ េី ប មក្នរបើនដើ មបីបនងកើែសិសេន្មោះ

សិសេេីប មានក្់។ របការននោះនធវើឲ្យាថបនិក្នៅក្នុងថានក្់ន្មោះ េីប រែូវយក្មក្នរបើជា

សវ័យរបវែតិ។ នហើយនៅនពលតដលាថបនិក្ថ្នថានក្់ ន្មោះ េីប រែូវយក្មក្នរបើ ាថបនិក្នៅ

ក្នុងថានក្់ នមន្មោះ រក្ឡាថ្ផទ និងនៅក្នុងថានក្់ នមន្មោះ មាឌ ក្៍ រែូវយក្មក្នរបើ ជាសវ័យរបវែតិតដរ


ទំព័រ 210

សិសសគីស.ថ្ហរទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេេីប ។ របការននោះនធវើឲ្យការតសវងរក្វ ិធី ន្មោះ ថ្ផទរក្ឡា រែូវនធវើនឡើងជាដំបូងនៅក្នុង

សិសេន ោះជាមុនសិន រួចាននឡើងនៅថានក្់ របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់

របស់សិសេន ោះជាបនតប ទ ប់។ វ ិធីន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ ន្មោះ េីប រែូវានយក្មក្

នរបើ នរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ន ោះមុននេបងអស់។

នៅនពលតដលវ ិធីន្មោះ ថ្ផទរក្ឡា ថ្នថានក្់ន្មោះ េីប រែូវយក្មក្នរបើ វ ិធីមានន្មោះដូចោននៅ

ក្នុងថានក្់ ន្មោះ រក្ឡាថ្ផទ ក្៍ រែូវយក្មក្នរបើតដរ។

សិសសគស.មាឌ()
ី េឺ ជាការយក្វ ិធីន្មោះ មាឌ មក្នរបើ តមរយៈសិសេន្មោះ សិសេេីប ។

របការននោះនធវើឲ្យការតសវងរក្វ ិធីន្មោះ មាឌ រែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះជាមុនសិន

រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់របស់សិសេ

ន ោះជាបនតប ទ ប់។ វ ិធី ន្មោះ មាឌ នៅក្នុងថានក្់ន្មោះ េីប រែូវានយក្មក្នរបើ នរពាោះវារែូវ

ានរក្ន ើញនៅក្នុងថានក្់ ន ោះមុននេបងអស់។

នៅនពលតដលវ ិធីន្មោះ មាឌ ថ្នថានក្់ ន្មោះ េីប រែូវយក្មក្នរបើ វ ិធីមានន្មោះដូចោននៅក្នុង

ថានក្់ន្មោះ មាឌ ក្៍ រែូវយក្មក្នរបើតដរ។

ការបនតថ្នែក់ រាងចត្ុឈកាណឈសមើ

ការបនតថានក្់រាងចែុនកាណ្នសមើ (diamond shape) េឺជាការបនងកើែថានក្់មួយបនតភាាប់នៅនឹងថានក្់

ពីរនទៀែតដលរែូវានបនតភាាប់នៅនឹងថានក្់តែមួយដូចោន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class ឝឥណីមាររ() :

pi = 180
ទំព័រ 211

def សងាាញឡ័រ៌មាឞ(សិសស, ឡ័រ៌មាឞ) :

print(ឡ័រ៌មាឞ)

class រកឡាថ្ហទ(ឝឥណីមាររ) :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររថ្ហទ
ិ រកឡា = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររថ្ហទ
ិ រកឡា

class មាឌ(ឝឥណីមាររ) :

pi = 3.1415

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររមាឌ
ិ = ឧមាររ

def មាឌ(សិសស) :

return សិសស.ឧមាររមាឌ

class គស(រកឡាថ្ហទ
ី , មាឌ) :

def __init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់) :

រកឡាថ្ហទ.__init__(សិសស, សណតោ ឤ, វវឹង)

មាឌ.__init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់)

def ថ្ហទរកឡា(សិសស) :

ឧមាររថ្ហទ
ិ រកឡា = រកឡាថ្ហទ.ថ្ហទរកឡា(សិសស)

ថ្ហទ = ឧមាររថ្ហទ
ិ រកឡា[0] * ឧមាររថ្ហទ
ិ រកឡា[1] * 6
ទំព័រ 212

print("រកឡាថ្ហទគសគ
ី ៖",
ឺ ថ្ហទ)

def មាឌ(សិសស) :

ឧមាររមាឌ
ិ = មាឌ.មាឌ(សិសស)

មាឌគស
ី = ឧមាររមាឌ[0]
ិ * ឧមាររមាឌ[1]
ិ * ឧមាររមាឌ[2]

print("មាឌឥសស់គសគ
ី ឺ៖", មាឌគស)

នៅក្នុងក្មមវ ិធីខាងនលើននោះ នយើងន ើញថាថានក្់ន្មោះ េីប រែូវានបនងកើែនឡើងបនតភាាប់នៅនឹង

ថានក្់ន្មោះ រក្ឡាថ្ផទ និងថានក្់ន្មោះ មាឌ ។ នហើយថានក្់នមពីរចុងនរកាយននោះរែូវានបនតភាាប់

នៅនឹងថានក្់នមន្មោះ ធរណ្ីមារែ តែមួយដូចោន។ ដូចននោះ នបើនយើងេូសេំនូសបំរពួញថ្ន

ការបនតថានក្់ដូចនៅក្នុងក្មមវ ិធីខាងនលើននោះ នយើងនឹងានរូបដូចខាងនរកាមននោះ៖

ធរណ្ីមារែ

រក្ឡាថ្ផទ មាឌ

េីប
ទំព័រ 213

ការបនតថានក្់ដូចនៅក្នុងរូបខាងនលើននោះនៅថាការបនតថានក្់រាងចែុនកាណ្នសមើ នរពាោះទរមង់របស់

វាមានរាងជាចែុនកាណ្នសមើ។

ក្នុងក្រណ្ីមានការបនតថានក្់ មានរាងចែុនកាណ្នសមើ នៅនពលតដលសមបែតិណាមួយរែូវយក្មក្

នរបើ ការតសវងរក្សមបែតិន ោះរែូវនធវើនឡើងនៅតមេំនូសបំរពួញដូចខាងនរកាមននោះ៖

ថានក្់នម

ថានក្់នម ថានក្់នម

ថានក្់រង

សិសេ

េឺថានៅនពលតដលសមបែតិណាមួយរែូវយក្មក្នរបើ តមរយៈសិសេឬថានក្់ ណាមួយ

ការតសវងរក្សមបែតិន ោះរែូវនធវើនឡើងនៅក្នុងសិសេឬថានក្់ន ោះជាមុនសិន រួចាននឡើងនៅថានក្់


ទំព័រ 214

នផេងៗនទៀែតមសញ្ដរពួញរហូែដល់សមបែតិន ោះរែូវរក្ន ើញ។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

class ឝឥណីមាររ() :

pi = 180

def សងាាញឡ័រ៌មាឞ(សិសស, ឡ័រ៌មាឞ) :

print(ឡ័រ៌មាឞ)

class រកឡាថ្ហទ(ឝឥណីមាររ) :

ឡី = 3.14

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររថ្ហទ
ិ រកឡា = ឧមាររ

def ថ្ហទរកឡា(សិសស) :

return សិសស.ឧមាររថ្ហទ
ិ រកឡា

class មាឌ(ឝឥណីមាររ) :

pi = 3.1415

def __init__(សិសស, *ឧមាររ)


ិ :

សិសស.ឧមាររមាឌ
ិ = ឧមាររ

def មាឌ(សិសស) :

return សិសស.ឧមាររមាឌ

class គស(រកឡាថ្ហទ
ី , មាឌ) :

def __init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់) :

រកឡាថ្ហទ.__init__(សិសស, សណតោ ឤ, វវឹង)


ទំព័រ 215

មាឌ.__init__(សិសស, សណតោ ឤ, វវឹង, កំឡស់)

def ថ្ហទរកឡា(សិសស) :

ឧមាររថ្ហទ
ិ រកឡា = រកឡាថ្ហទ.ថ្ហទរកឡា(សិសស)

ថ្ហទ = ឧមាររថ្ហទ
ិ រកឡា[0] * ឧមាររថ្ហទ
ិ រកឡា[1] * 6

print("រកឡាថ្ហទគសគ
ី ៖",
ឺ ថ្ហទ)

def មាឌ(សិសស) :

ឧមាររមាឌ
ិ = មាឌ.មាឌ(សិសស)

មាឌគស
ី = ឧមាររមាឌ[0]
ិ * ឧមាររមាឌ[1]
ិ * ឧមាររមាឌ[2]

print("មាឌឥសស់គសគ
ី ឺ៖", មាឌគស)

សិសសគីស = គីស(25, 5, 10)

សិសសគស.ថ្ហទ
ី រកឡា()

សិសសគស.មាឌ()

print(សិសសគស.pi)

សិសសគស
ី = គស(25
ី , 5, 10) េឺជាការយក្ថានក្់ន្មោះ េី ប មក្នរបើនដើ មបីបនងកើែសិសេន្មោះ

សិសេេីប មានក្់។ របការននោះនធវើឲ្យាថបនិក្រែូវយក្មក្នរបើជាសវ័យរបវែតិ។ ការតសវងរក្

ាថបនិក្តដលជាវ ិធី មានន្មោះថា __init__ រែូវនធវើនឡើងជាដំបូងនៅក្នុងសិសេន ោះជាមុនសិន

រួចាននឡើងនៅថានក្់របស់សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់របស់សិសេន ោះជា

បនតប ទ ប់រហូែដល់ាថបនិក្ន ោះរែូវរក្ន ើញ។ នហើយេឺ ាថបនិក្នៅក្នុងថានក្់ ន្មោះ េីប

តដលរែូវានយក្មក្នរបើ នរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ន ោះមុននេ។

សិសសគស.ថ្ហ
ី រទ កឡា() េឺជាការយក្វ ិធី ន្មោះ ថ្ផទរក្ឡា មក្នរបើតមរយៈសិសេន្មោះ

សិសេេីប ។ ការតសវងរក្វ ិធីននោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់របស់


ទំព័រ 216

សិសេន ោះ រួចាននឡើងនៅថានក្់នមថ្នថានក្់ របស់សិសេន ោះជាបនតប ទ ប់រហូែដល់វ ិធីន្មោះ

ថ្ផទរក្ឡា ន ោះរែូវរក្ន ើញ។ នហើយេឺ ជាវ ិធី ន្មោះ ថ្ផទរក្ឡា នៅក្នុងថានក្់ន្មោះ េីប តដលរែូវ

ានយក្មក្នរបើនរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ន ោះមុននេ។

សិសសគស.មាឌ()
ី េឺ ជាការយក្វ ិធីន្មោះ មាឌ មក្នរបើ តមរយៈសិសេន្មោះ សិសេេីប ។

ការតសវងរក្វ ិធីននោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ

រួចាននឡើងនៅថានក្់នមថ្នថានក្់របស់សិសេន ោះជាបនតប ទ ប់រហូែដល់វ ិធី ន្មោះ មាឌ ន ោះ

រែូវរក្ន ើញ។ នហើយេឺជាវ ិធីន្មោះ មាឌ នៅក្នុងថានក្់ន្មោះ េីប តដលរែូវានយក្មក្នរបើ

នរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ ន ោះមុននេ។

print(សិសសគស.
ី pi) េឺ ជាការយក្សមបែតិន្មោះ pi មក្នរបើតមរយៈសិសេន្មោះ សិសេេីប ។

ការតសវងរក្វែថុននោះរែូវនធវើនឡើងនៅក្នុងសិសេន ោះមុន រួចាននឡើងនៅថានក្់របស់សិសេន ោះ

រួចាននឡើងនៅថានក្់នមថ្នថានក្់របស់សិសេន ោះជាបនតប ទ ប់រហូែដល់សមបែតិន្មោះ pi ន ោះ

រែូវរក្ន ើញ។ នហើយេឺជាទិននន័យេរមូន្មោះ pi នៅក្នុងថានក្់ន្មោះ មាឌ តដលរែូវានយក្

មក្នរបើ នរពាោះវារែូវានរក្ន ើញនៅក្នុងថានក្់ ន ោះមុននេ។


ទំព័រ 217

ថ្នាក្់មានរាប់

ថានក្់មានស្រាប់ (built-in type) េឺជាថានក្់ទំងឡាយណាតដលរែូវានបនងកើែនឡើងរួចជានស្រសច

ទុក្នៅក្នុងតដនក្ំណ្ែ់ ទូនៅជាមួយនឹងក្បួននផេងៗនទៀែ។

ក្នលងមក្នយើងានបនងកើែវែថុនផេងៗមានដូចជា ចំនូនេែ់ ចំនួនទសភាេ និងសមាសវែថុមួយ

ចំនួន។ វែថុទំងអស់ន ោះេឺ ជាសិសេថ្នថានក្់មានស្រាប់ ទំងន ោះ តែការបនងកើែសិសេទំងន ោះ

មានលក្ខណ្ៈខ្ុសតបលក្ពីការបនងកើែសិសេថ្នថានក្់ ធមមត។

នដើមបីឲ្យដឹងថានែើថានក្់របស់វែថុណាមួយជាអវីន ោះ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 800.5

ឡិរ = True

ឃ្លល = "អនកមាឞឥកាខសរ់"

ករឣងណលឥចរឣរោះ = (100, 1.33, "នាឣ", True)

ករឣងអណលឥចរឣរោះ = [2.5, 300, "ណោរោនាឣ", False]

ឧចនាឞុ រកឣចរឣរោះ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900}

សំណុំចរឣរោះ = {3.5, True, "អនករាជញឥកាណលល"}

print(type(ថ្លលឦក់))

print(type(ថ្លលវិញ))

print(type(ឡិរ))

print(type(ឃ្លល))

print(type(ករឣងណលឥចរឣរោះ))
ទំព័រ 218

print(type(ករឣងអណលឥចរឣរោះ))

print(type(ឧចនាឞុ រកឣចរឣរោះ))

print(type(សំណុំចរឣរោះ))

ល ក់)) េឺ ជាបញ្
print(type(ថ្លឦ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ចំនួនេែ់ន្មោះ ថ្ងលលក្់

មក្ពិនិែយនមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្
ា ក្់ រាប់ថា ថានក្់របស់វែថុតដល

ជាចំនួនេែ់េឺជាថានក្់មានស្រាប់ ន្មោះ int ។

print(type(ថ្លវ
ល ិ ញ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ចំនួនពិែន្មោះ ថ្ងលទិញ

មក្ពិនិែយនមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្
ា ក្់ រាប់ថា ថានក្់របស់វែថុតដល

ជាចំនួនពិែេឺ ជាថានក្់មានស្រាប់ ន្មោះ float ។

print(type(ឡិរ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ែក្កវែថុន្មោះ ពិែ មក្ពិនិែយ

នមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្
ា ក្់ រាប់ថា ថានក្់ របស់វែថុតដលជាែក្កវែថុ

េឺជាថានក្់មានស្រាប់ ន្មោះ bool ។

print(type(ឃ្លល)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្រមងអក្េរន្មោះ ឃ្លល មក្

ពិនិែយនមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្
ា ក្់ រាប់ថា ថានក្់របស់វែថុតដលជា

ក្រមងអក្េរេឺ ជាថានក្់មានស្រាប់ ន្មោះ str ។

print(type(ករឣងណលឥចរឣរោះ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្រមងនងរ

ន្មោះ ក្រមងនងរចរមរោះ មក្ពិនិែយនមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្


ា ក្់

រាប់ថា ថានក្់របស់វែថុតដលជាក្រមងនងរេឺ ជាថានក្់មានស្រាប់ ន្មោះ tuple។


ទំព័រ 219

print(type(ករឣងអណលឥចរឣរោះ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្រមងអនងរ

ន្មោះ ក្រមងអនងរចរមរោះ មក្ពិនិែយនមើលថានែើ វាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្


ា ក្់

រាប់ថា ថានក្់របស់វែថុតដលជាក្រមងអនងរេឺ ជាថានក្់មានស្រាប់ ន្មោះ list ។

print(type(ករឣងអណលឥចរឣរោះ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្រមងអនងរ

ន្មោះ ក្រមងអនងរចរមរោះ មក្ពិនិែយនមើលថានែើ វាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្


ា ក្់

រាប់ថា ថានក្់របស់វែថុតដលជាក្រមងអនងរេឺ ជាថានក្់មានស្រាប់ ន្មោះ list ។

print(type(ឧចនាឞុរកឣចរឣរោះ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្វច នុរក្ម

ន្មោះ វច នុរក្មចរមរោះ មក្ពិនិែយនមើលថានែើ វាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្


ា ក្់

រាប់ថា ថានក្់របស់វែថុតដលជាវច នុរក្មេឺ ជាថានក្់មានស្រាប់ ន្មោះ dict ។

ំ ុ ំ ចរឣរោះ)) េឺ ជាបញ្
print(type(សណ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សំណ្ុំន្មោះ

សំណ្ុំចរមរោះ មក្ពិនិែយនមើលថានែើវាជាសិសេថ្នថានក្់ណាតដរ។ លទធផលបញ្


ា ក្់ រាប់ថា ថានក្់

របស់វែថុតដលជាសំណ្ុំេឺ ជាថានក្់មានស្រាប់ ន្មោះ set ។

ថ្នែក់ int

រេប់ចំនួនេែ់ទំងអស់េឺជាសិសេថ្នថានក្់មានស្រាប់ន្មោះ int ។ ដូចននោះនរៅពី ការបនងកើែ

ចំនួនេែ់ដូចតដលធ្លលប់ាននធវើក្នលងមក្ នយើងក្៍អាចបនងកើែចំនួនេែ់នដាយយក្ថានក្់មានស្រាប់

ន្មោះ int មក្នរបើ ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = int(1000)

ថ្លលវិញ = int(800.5)

print(ថ្លលឦក់)
ទំព័រ 220

print(ថ្លលវិញ)

ល ក់ = int(1000) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ int មក្នរបើ នដើមបីបនងកើែចំនួនេែ់


ថ្លឦ

ន្មោះ ថ្ងលលក្់ មួយតដលជានលខ្ 1000 ។

ថ្លវ
ល ិញ = int(800.5) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ int មក្នរបើ នដើមបីបនងកើែចំនួនេែ់

ន្មោះ ថ្ងលលក្់ មួយតដលជានលខ្ 800 ។

ដូចននោះនយើងន ើញថា នៅនពលតដលនយើងយក្ថានក្់មានស្រាប់ន្មោះ int មក្នរបើនដើមបីបនងកើែ

ចំនួនេែ់ នយើងចាំាច់រែូវផតល់ដំណ្ឹងជានលខ្ណាមួយឲ្យនៅាថបនិក្ថ្នថានក្់ន្មោះ int ន ោះ

។ នហើយនលខ្ទំងន ោះនឹងរែូវ តក្ (convert) ឲ្យនៅជាចំនួនេែ់។ អាស្រស័យនហែុននោះ នយើង

អាចនរបើ ថានក្់ន្មោះ int ននោះសរមាប់តក្វែថុនផេងៗឲ្យនៅជាចំនួនេែ់ាន។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

ថ្លលឦក់ = int(1000.33)

ថ្លលវិញ = int("800")

print(ថ្លលឦក់)

print(ថ្លលវិញ)

ល ក់ = int(1000.33) េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ int មក្នរបើនដើមបីតក្នលខ្ 1000.33


ថ្លឦ

ឲ្យនៅជាចំនួនេែ់ 1000 ។

ថ្លវ
ល ិញ = int("800") េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ int មក្នរបើ នដើមបីតក្ក្រមងអក្េរ "800"

ឲ្យនៅជាចំនួនេែ់ 800 ។
ទំព័រ 221

នដាយថានក្់មានស្រាប់ ន្មោះ int ក្៍ជាថានក្់ មួយដូចជាថានក្់ដថ្ទនទៀែតដរ ដូចននោះនៅក្នុងថានក្់

ននោះរែូវតែមានវ ិធីមួយចំនួនតដលអាចរែូវយក្នៅនរបើរាស់នៅក្នុងការនធវើរបមាណ្វ ិធី នផេងៗ

តដលទក្់ទងនៅនឹងចំនួនេែ់។ នដើមបីពិនិែយនមើលសមបែតិនផេងៗតដលមាននៅក្នុងថានក្់មាន

ស្រាប់ន្មោះ int នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

help(int)

help(int) េឺ ជាបញ្
ា ែរមូវឲ្យយក្ថានក្់មានស្រាប់ ន្មោះ int មក្ពិនិែយនមើលសមបែតិនផេងៗតដល

មាននៅក្នុងន ោះ។

នយើងន ើញថា វ ិធីទំងអស់នៅក្នុងថានក្់ មានស្រាប់ ន្មោះ int សុទធតែមានសញ្ដ _ ននោះពីរនៅពី

មុខ្នឹងនៅពី នរកាយ។ វ ិធីទំងន ោះេឺជាវ ិធីពិនសសតដលរែូវនៅនរបើ ជាសវ័យរបវែតិនៅក្នុង

កាលៈនទសៈណាមួយចាស់លាស់។ នយើងនឹងនធវើការសិក្ាពី វ ិធីទំងយា៉ ងលមអឹែនៅនពលខាង

មុខ្ននោះ។

ថ្នែក់ float

ដូចោននឹងចំនួនេែ់តដរ វែថុតដលជាចំនួនពិែទំងអស់េឺជាសិសេថ្នថានក្់មានស្រាប់ ន្មោះ

float ។ នហើយនដើមបីបនងកើែចំនួនពិែនដាយយក្ថានក្់មានស្រាប់ន្មោះ float មក្នរបើ នយើងរែូវ

នធវើដូចខាងនរកាមននោះ៖

ថ្លលឦក់ = float(1000.33)

ថ្លលវិញ = float(800)

print(ថ្លលឦក់)

print(ថ្លលវិញ)
ទំព័រ 222

ល ក់ = float(1000.33) េឺ ជាការយក្ថានក្់ មានស្រាប់ន្មោះ float មក្នរបើនដើមបីបនងកើែ


ថ្លឦ

ចំនួនពិែមួយមានន្មោះថា ថ្ងលលក្់ តដលជានលខ្ 1000.33 ។

ល ក់ = float(800) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ float មក្នរបើ នដើមបីបនងកើែចំនួនពិែ


ថ្លឦ

មួយមានន្មោះថា ថ្ងលទិញ តដលជានលខ្ 800.0 ។

ដូចននោះនយើងន ើញថា នដើមបីបនងកើែចំនួនពិែនដាយនរបើថានក្់មានស្រាប់ ន្មោះ float នយើងរែូវ

ផតល់ដំណ្ឹងជានលខ្ឲ្យនៅាថបនិក្ថ្នថានក្់ន ោះ។ អាស្រស័យនហែុ ននោះ នយើងអាចនរបើ រាស់

ថានក្់ន្មោះ float ននោះសរមាប់តក្វែថុមួយចំនួនឲ្យនៅជាចំនួនពិែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ

ថ្លលឦក់ = float(1000)

ថ្លលវិញ = float("800")

print(ថ្លលឦក់)

print(ថ្លលវិញ)

ល ក់ = float(1000) េឺជាការនរបើថានក្់ មានស្រាប់ ន្មោះ float នដើមបីតក្ចំនួនេែ់តដលជានលខ្


ថ្លឦ

1000 ឲ្យនៅជាចំនួនពិែ 1000.0 ។

ថ្លវ
ល ិញ = float("800") េឺជាការនរបើថានក្់ មានស្រាប់ ន្មោះ float នដើមបីតក្ក្រមងអក្េរ "800" ឲ្យ

នៅជាចំនួនពិែ 800.0 ។

នយើងអាចយក្ថានក្់មានស្រាប់ ន្មោះ float មក្ពិនិែយនមើលនដាយនធវើដូចខាងនរកាមននោះ៖

help(float)

help(float) េឺ ជាបញ្
ា ែរមូវឲ្យយក្ថានក្់ មានស្រាប់ ន្មោះ float មក្ពិនិែយនមើល។
ទំព័រ 223

ដូចោននឹងថានក្់ មានស្រាប់ ន្មោះ int តដរ វ ិធីនផេងៗនៅក្នុងថានក្់មានស្រាប់ ន្មោះ float សុទតធ ែ

មានសញ្ដ _ ពីរនៅពីមុខ្និងនៅពី នរកាយ។ ដូចននោះវ ិធីទំងន ោះេឺ ជាវ ិធី ពិនសសតដលនឹងរែូវ

យក្នៅនរបើជាសវ័យរបវែតិនៅក្នុងកាលៈនទសៈដ៍ជាក្់លាក្់ណាមួយ។

ថ្នែក់ bool

រេប់ែក្កវែថុទំងអស់េឺជាសិសេថ្នថានក្់ មានស្រាប់ ន្មោះ bool ។ ដូចននោះនយើងអាចបនងកើែែក្ក

វែថុឬតក្វែថុនផេងៗឲ្យនៅជាែក្កវែថុនដាយនរបើ ថានក្់មានស្រាប់ ន្មោះ bool ននោះ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

print(bool(0))

print(bool(1.5))

print(bool("កឣមឧឝ
ិ ជាភាោ
ី Python"))
print(bool([ ]))

print(bool(0)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ថានក្់មានស្រាប់ ន្មោះ bool

មក្នរបើ នដើមបីតក្នលខ្ 0 ឲ្យនៅជាែក្កវែថុ។

print(bool(1.5)) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ថានក្់មានស្រាប់ ន្មោះ bool

មក្នរបើ នដើមបីតក្នលខ្ 1.5 ឲ្យនៅជាែក្កវែថុ។

print(bool("កឣឧម ឝ
ិ ីជាភាោ Python")) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ថានក្់

មានស្រាប់ន្មោះ bool មក្នរបើ នដើមបីតក្ក្រមងអក្េរ "កឣឧម ឝ


ិ ីជាភាោ Python" ឲ្យនៅជាែក្កវែថុ


ទំព័រ 224

print(bool([ ])) េឺ ជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ថានក្់មានស្រាប់ ន្មោះ bool

មក្នរបើ នដើមបីតក្ក្រមងអនងរទនទមួយឲ្យនៅជាែក្កវែថុ។

ដូចននោះនយើងន ើញថា រេប់វែថុទំងឡាយណាតដលជានលខ្សូនយនិងឬសមាសវែថុទនទ

សមមូលនឹងែក្កវែថុ False នហើយរេប់វែថុទំងឡាយណាតដលជានលខ្ខ្ុសពីសូនយនិងឬ

សមាសវែថុតដលមានធ្លែុ នៅក្នុងន ោះ សមមូលនឹងែក្កវែថុ True ។

ម៉ាងនទៀែ នបើនយើងយក្ថានក្់មានស្រាប់ ន្មោះ bool មក្ពិនិែយនមើល នយើងនឹងន ើញថា វ ិធី

ទំងអស់នៅក្នុងថានក្់ន ោះសុទតធ ែមានសញ្ដ _ ននោះពីរនៅពី មុខ្នឹងនៅពីនរកាយ។ ដូចននោះវ ិធី

ទំងអស់ន ោះេឺ ជាវ ិធី ពិនសសតដលនឹងរែូវយក្នៅនរបើជាសវ័យរបវែតិនៅក្នុងកាលៈនទសៈណា

មួយដ៍ជាក្់លាក្់។

ថ្នែក់ str

str េឺជាថានក្់ថ្នរេប់វែថុទំងឡាយណាតដលជាក្រមងអក្េរ។ នយើងានដឹងរួចមក្នហើយថា

នដើមបីបនងកើែក្រមងអក្េរ នយើងរែូវនរបើ សញ្ដ " " ឬ ' ' នៅអមសងខាងឃ្លលណាមួយ។ ក្៍ប៉ុតនត

នលើសពី ននោះនទៀែ នយើងក្៍ អាចបនងកើែក្រមងអក្េរនដាយយក្ថានក្់មានស្រាប់ ន្មោះ str ននោះមក្

នរបើានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លល = str("រក់ៗណឡញសំឡង់")

print(ឃ្លល)

ឃ្លល = str("រក់ៗណឡញសឡ ់ េឺ ជាការបនងកើែក្រមងអក្េរន្មោះ ឃ្លល មួយនដាយយក្ថានក្់មាន


ំ ង")

ស្រាប់ន្មោះ str មក្នរបើ ។


ទំព័រ 225

នៅក្នុងការបនងកើែក្រមងអក្េរនដាយយក្ថានក្់មានស្រាប់ ន្មោះ str មក្នរបើ នយើងចាំាច់រែូវតែ

ផតល់វែថុណាមួយជាដំណ្ឹងសរមាប់ាថបនិក្នៅក្នុងថានក្់ន ោះ។ នហើយលទធផលានមក្ពី

ការយក្ថានក្់ន្មោះ str មក្នរបើ េឺជាក្រមងអក្េរ។ អាស្រស័យនហែុ ននោះ នយើងអាចនរបើរាស់ថានក្់

មានស្រាប់ន្មោះ str ននោះនដើមបីតក្វែថុមួយចំនួនឲ្យនៅជាក្រមងអក្េរ។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

ថ្លលឦក់ = str(1000)

ថ្លលវិញ = str(800.33)

print(ថ្លលឦក់)

print(ថ្លលវិញ)

ល ក់ = str(1000) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ str មក្នរបើ នដើមបីតក្ចំនួនេែ់តដលជា


ថ្លឦ

នលខ្ 1000 ឲ្យនៅជាក្រមងអក្េរ “1000” ។

ថ្លវ
ល ិញ = str(800.33) េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ str មក្នរបើ នដើមបីតក្ចំនួនពិែតដល

ជានលខ្ 800.33 ឲ្យនៅជាក្រមងអក្េរ “800.33” ។

នបើនយើងយក្ថានក្់មានស្រាប់ ន្មោះ str មក្ពិនិែយនមើល នយើងនឹងន ើញថានរៅពីវ ិធីមានសញ្ដ

_ ពីរនៅពីមុខ្និងនៅពីនរកាយ តដលនឹងរែូវយក្នៅនរបើជាសវ័យរបវែតិ នៅមានវ ិធីមួយចំនួន

នទៀែតដលោមសញ្ដ _ ននោះ។ នយើងអាចយក្វ ិធី តដលោមនសញ្ដ _ នៅនរបើ ការមួយចំនួនតដល

ទក្់ទងនឹងក្រមងអក្េរ។ វ ិធីសំខាន់ៗទំងន ោះមាន៖

capitalize(…)

េឺជាវ ិធីនរបើសរមាប់ចមលងយក្ក្រមងអក្េរឡាតំងណាមួយមក្តក្ឲ្យនៅជាក្រមងអក្េរតដល

មានអក្េរនៅខាងនដើមនេជាអក្េរធំ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ទំព័រ 226

ឃ្លលណដឣ
ើ = str("python")

ឃ្លលលមី = ឃ្លលណដឣ
ើ .capitalize()

print(ឃ្លលលម)ី

ឃ្លលលីម = ឃ្លលណដឣ
ើ .capitalize() េឺ ជាការយក្វ ិធី ន្មោះ capitalize នៅក្នុងថានក្់មានស្រាប់ ន្មោះ

str មក្នរបើនដើមបីចមលងយក្ក្រមងអក្េរន្មោះ ឃ្លលនដើម មក្តក្ឲ្យនៅជាក្រមងអក្េរងមីតដលមាន

អក្េរនៅខាងនដើមនេជាអក្េរធំ ។

center(…)

េឺជាវ ិធីនរបើសរមាប់ចមលងយក្ក្រមងអក្េរណាមួយមក្បនងកើែជាក្រមងអក្េរងមីតដលមានអក្េរ

នផេងនទៀែនៅអមសងខាង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លលណដឣ
ើ = str("python")

ឃ្លលលមី = ឃ្លលណដើឣ.center(60, "~")

print(ឃ្លលលម)ី

ឃ្លលលីម = ឃ្លលណដើឣ.center(60, "~") េឺ ជាការយក្វ ិធី ន្មោះ center នៅក្នុងថានក្់ មានស្រាប់ ន្មោះ

str មក្នរបើនដើមបីចមលងយក្ក្រមងអក្េរន្មោះ ឃ្លលនដើម មក្បនងកើែជាក្រមងអក្េរន្មោះ ឃ្លលងមី

មួយងមីនទៀែតដលមានអក្េរ “~” នៅអមសងខាង។

count(…)

េឺជាវ ិធីនរបើសរមាប់រាប់ចំនួនពាក្យឬក្រមងអក្េរណាមួយតដលមាននៅក្នុងក្រមងណាមួយ

នទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លលណដើឣ = str("ឦិខិរចារ់តា ំង")

ចំឞួឞអកសឥ = ឃ្លលណដើឣ.count("រ")
ទំព័រ 227

print(ចំឞួឞអកសឥ)

ំ ួ ឞអកសឥ = ឃ្លលណដើឣ.count("រ") េឺ ជាការយក្វ ិធីន្មោះ count នៅក្នុងថានក្់មានស្រាប់ន្មោះ


ចឞ

str មក្នរបើនដើមបីរាប់ចំនូនអក្េរ “ែ” នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លលនដើម ។

format(…)

េឺជាវ ិធីនរបើសរមាប់បញ្ូច លវែថុមួយចំនូននៅក្នុងក្រមងអក្េរណាមួយនដើមបីបនងកើែក្រមងអក្េរ

មួយងមីនទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លលណដើឣ = str("ចំឞួឞរាក់{0}គឺ {ថ្លលឦក់}")

ឃ្លលលមី = ឃ្លលណដឣ
ើ .format("ថ្លលឦក់", ថ្លលឦក់=1000)

print(ឃ្លលលម)ី

ឃ្លលលីម = ឃ្លលណដឣ ល ក់", ថ្លឦ


ើ .format("ថ្លឦ ល ក់=1000) េឺ ជាការយក្វ ិធី ន្មោះ format មក្នរបើ នដើមបី

បញ្ូច លពាក្យថា “ថ្ងលលក្់” និងវែថុន្មោះ ថ្ងលលក្់ ចូលនៅក្នុងក្រមងអក្េរន្មោះ ឃ្លលនដើម នៅ

រែង់ក្តនលងតដលមានសញ្ដ {0} និង {ថ្ងលលក្់} នរៀងោន។

index(…)

េឺជាវ ិធីនរបើសរមាប់រក្នលខ្នរៀងថ្នអក្េរទីមួយនៅក្នុងពាក្យណាមួយនៅក្នុងក្រមងអក្េរណា

មួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ើ = str("ឦិខិរចារ់តា ំង")
ឃ្លលណដឣ

ណឦខណឥៀង = ឃ្លលណដើឣ.index("ចារ់តា ំង")

print(ណឦខណឥៀង)
ទំព័រ 228

ណឦខណឥៀង = ឃ្លលណដើឣ.index("ចារ់តាង")
ំ េឺជាការយក្វ ិធីន្មោះ index មក្នរបើនដើមបីរក្

នលខ្នរៀងថ្នអក្េរទី មួយនៅក្នុងពាក្យ “ចាែ់តំង” តដលជាពាក្យនៅក្នុងក្រមងអក្េរន្មោះ

ឃ្លលនដើម ។

join(…)

េឺជាវ ិធីនរបើសរមាប់បញ្ូច លពាក្យណាមួយនៅចន ល ោះក្រមងអក្េរពីរនដើមបីបនងកើែក្រមងអក្េរងមី

មួយនទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ពាកយ = str("ជា")

ឃ្លលលមី = ពាកយ.join(["កឣមឧឝ
ិ ",
ី "ភាោ Python"])
print(ឃ្លលលម)ី

ឃ្លលលីម = ពាកយ.join(["កឣឧម ឝ
ិ ី", "ភាោ Python"]) េឺ ជាការយក្វ ិធី ន្មោះ join មក្នរបើនដើមបី

ត លក្រមងអក្េរ “ក្មមវ ិធី” និង “ភាា Python” នដើមបី


បញ្ូច លពាក្យថា “ជា” នៅចន ល ោះក្ណា

បនងកើែក្រមងអក្េរមួយងមីនទៀែ។ ក្រមងអក្េរទំងពីរន ោះេឺ ជាធ្លែុ នៅក្នុងក្រមងអនងរមួយ។

replace(…)

េឺជាវ ិធីនរបើសរមាប់យក្ពាក្យណាមួយនៅជំនូសពាក្យនៅក្នុងក្រមងអក្េរណាមួយនផេងនទៀែ

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លល = str("រក់ៗណឡញសំឡង់")

់ "ពាង")
ឃ្លលលមី = ឃ្លល.replace("សំឡង",

print(ឃ្លលលម)ី

ំ ង់", "ពាង") េឺជាការយក្វ ិធី ន្មោះ replace មក្នរបើ នដើមបីជំនួសពាក្យ


ឃ្លលលីម = ឃ្លល.replace("សឡ

ថា “បំពង់” នៅក្នុងក្រមងអក្េរន្មោះ ឃ្លល នដាយពាក្យថា “ពាង” វ ិញ។


ទំព័រ 229

upper(…)

េឺជាវ ិធីនរបើសរមាប់ចមលងយក្ក្រមងអក្េរឡាតំងណាមួយមក្តក្ឲ្យនៅក្រមងអក្េរងមីមួយ

នទៀែតដលមានសុទធតែអក្េរធំ នៅក្នុងន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឃ្លល =str("programming in python")

ឃ្លលលមី = ឃ្លល.upper()

print(ឃ្លលលម)ី

ឃ្លលលីម = ឃ្លល.upper() េឺ ជាការយក្វ ិធីន្មោះ upper មក្នរបើនដើមបីចមលងយក្ក្រមងអក្េរន្មោះ

ឃ្លល មក្តក្ឲ្នៅជាក្រមងអក្េរងមីមួយនទៀែតដលនៅក្នុងន ោះមានសុទតធ ែអក្េរធំទំងអស់។

ថ្នែក់ tuple

រេប់វែថុតដលជាក្រមងនងរទំងអស់េឺជាសិសេថ្នថានក្់មានស្រាប់ន្មោះ tuple ។ ដូចននោះនយើង

អាចយក្ថានក្់ ន្មោះ tuple ននោះមក្នរបើ នដើមបីបនងកើែក្រមងនងរឬតក្សមាសវែថុនផេងៗឲ្យនៅជា

ក្រមងនងរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងវី១ = tuple("Python")

ករឣងវី២ = tuple([100, 1.5, True])

ករឣងវី៣ = tuple({'A':100, 'B':1.5, 'C':True})

ករឣងវ៤
ី = tuple({100, False, 200})

print(ករឣងវ១)

print(ករឣងវី២)

print(ករឣងវី៣)

print(ករឣងវ៤)

ទំព័រ 230

ករឣងវី១ = tuple("Python") េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ tuple មក្នរបើ នដើមបីតក្ក្រមង

អក្េរ “Python” ឲ្យនៅជាក្រមងនងរន្មោះ ក្រមងទី ១ ។

ករឣងវី២ = tuple([100, 1.5, True]) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ tuple មក្នរបើនដើមបីតក្

ក្រមងអនងរ [100, 1.5, True] ឲ្យនៅជាក្រមងនងរន្មោះ ក្រមងទី២ ។

ករឣងវី៣ = tuple({'A':100, 'B':1.5, 'C':True}) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ tuple មក្

នរបើនដើមបីតក្វច នុរក្ម {'A':100, 'B':1.5, 'C':True} ឲ្យនៅជាក្រមងនងរន្មោះ ក្រមងទី ៣ ។

ករឣងវី៤ = tuple({100, False, 200}) េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ tuple មក្នរបើ នដើមបី

តក្សំណ្ុំ {100, False, 200} ឲ្យនៅជាក្រមងនងរន្មោះ ក្រមងទី ៤ ។

នៅក្នុងថានក្់មានស្រាប់ ន្មោះ tuple មានវ ិធីមួយចំនួនតដលនយើងអាចយក្នៅនរបើជាមួយនឹង

ក្រមងនងរនផេងៗ។ វ ិធី ទំងន ោះមានដូចែនៅននោះ៖

count(…)

េឺជាវ ិធីនរបើសរមាប់រាប់ចំនូនធ្លែុ ដូចោននៅក្នុងក្រមងនងណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

ករឣងចរឣរោះ = (100, 1.5, "រាក់ចណំ ណញ", 100, 'ថ្លលឦក់')

ចំឞួឞធារុ = ករឣងចរឣរោះ.count(100)

print(ចំឞួឞធារុ )

ំ ួ ឞធារុ = ករឣងចរឣរោះ.count(100) េឺ ជាការយក្វ ិធីន្មោះ count មក្នរបើ នដើមបីរាប់ចំនួនធ្លែុ


ចឞ

តដលជានលខ្ 100 នៅក្នុងក្រមងនងរន្មោះ ក្រមងចរមរោះ ។

index(..)
ទំព័រ 231

េឺជាវ ិធីនរបើសរមាប់រក្នលខ្នរៀងថ្នធ្លែុណាមួយនៅក្នុងក្រមងនងរណាមួយ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

ករឣងចរឣរោះ = (100, 1.5, "រាក់ចណំ ណញ", 100, 'ថ្លលឦក់')

ណឦខណឥៀង = ករឣងចរឣរោះ.index('ថ្លលឦក់')

print(ណឦខណឥៀង)

ល ក'់ ) េឺ ជាការយក្វ ិធីន្មោះ index មក្នរបើ នដើមបីពិនិែយ


ណឦខណឥៀង = ករឣងចរឣរោះ.index('ថ្លឦ

នមើលនលខ្នរៀងថ្នធ្លែុតដលជាពាក្យ “ថ្ងលលក្់” នៅក្នុងក្រមងនងរន្មោះ ក្រមងចរមរោះ ។

ថ្នែក់ list

រេប់ក្រមងអនងរទំងអស់េឺជាសិសេថ្នថានក្់មានស្រាប់ ន្មោះ list ។ ដូចននោះនយើងអាចថានក្់

ន្មោះ list ននោះមក្នរបើ នដើមបីបនងកើែក្រមងអនងរឬតក្សមាសវែថុមួយចំនួនឲ្យនៅជាក្រមងអនងរ

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងវី១ = list("Python")

ករឣងវី២ = list((100, 1.5, True))

ករឣងវ៣
ី = list({'A':100, 'B':1.5, 'C':True})

ករឣងវ៤
ី = list({100, False, 200})
print(ករឣងវ១)

print(ករឣងវី២)

print(ករឣងវ៣)

print(ករឣងវ៤)

ទំព័រ 232

ករឣងវី១ = list("Python") េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ list មក្នរបើ នដើមបីតក្ក្រមងអក្េរ

“Python” ឲ្យនៅជាក្រមងអនងរន្មោះ ក្រមងទី១ ។

ករឣងវី២ = list((100, 1.5, True)) េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ list មក្នរបើនដើមបីតក្

ក្រមងនងរ (100, 1.5, True) ឲ្យនៅជាក្រមងអនងរន្មោះ ក្រមងទី ២ ។

ករឣងវី៣ = list({'A':100, 'B':1.5, 'C':True}) េឺ ជាការយក្ថានក្់មានស្រាប់ ន្មោះ list មក្នរបើ

នដើមបីតក្វច នុរក្ម {'A':100, 'B':1.5, 'C':True} ឲ្យនៅជាក្រមងអនងរន្មោះ ក្រមងទី ៣ ។

ករឣងវី៤ = list({100, False, 200}) េឺជាការយក្ថានក្់មានស្រាប់ ន្មោះ list មក្នរបើនដើមបីតក្

សំណ្ុំ {100, False, 200} ឲ្យនៅជាក្រមងអនងរន្មោះ ក្រមងទី៤ ។

នៅក្នុងថានក្់មានស្រាប់ ន្មោះ list មានវ ិធីមួយចំនួនតដលនយើងអាចយក្នៅនរបើជាមួយនឹង

ក្រមងអនងរនផេងៗ។ វ ិធីទំងន ោះមានដូចែនៅននោះ៖

append(…)

េឺជាវ ិធីនរបើសរមាប់បតនថមធ្លែុណាមួយនៅខាងចុងក្រមងអនងរណាមួយ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5])

ករឣងចរឣរោះ.append("ថ្លលឦក់")

print(ករឣងចរឣរោះ)

ល ក់") េឺ ជាការយក្វ ិធីន្មោះ append មក្នរបើនដើមបីបតនថមវែថុតដលជា


ករឣងចរឣរោះ.append("ថ្លឦ

ក្រមងអក្េរ "ថ្ងលលក្់" នធវើជាធ្លែុនៅខាងចុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ ។

count(…)
ទំព័រ 233

េឺជាវ ិធីនរបើសរមាប់រាប់ចំនួនធ្លែុ ដូចោននៅក្នុងក្រមងអនងរណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])

ចំឞួឞធារុ = ករឣងចរឣរោះ.count(100)

print(ចំឞួឞធារុ )

ំ ួ ឞធារុ = ករឣងចរឣរោះ.count(100) េឺ ជាការយក្វ ិធីន្មោះ count មក្នរបើ នដើមបីរាប់ចំនូនធ្លែុ


ចឞ

តដលជានលខ្ 100 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ ។

extend(…)

េឺជាវ ិធីនរបើសរមាប់បតនថមធ្លែុថ្នសមាសវែថុណាមួយចូលនៅក្នុងក្រមងអនងរណាមួយនៅខាង

ចុង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])

ករឣងចរឣរោះ.extend(["ថ្លលឦក់", "ថ្លលវិញ", False])

print(ករឣងចរឣរោះ)

ល ក់", "ថ្លវ
ករឣងចរឣរោះ.extend(["ថ្លឦ ល ិ ញ", False]) េឺជាការយក្វ ិធី ន្មោះ extend មក្នរបើនដើមបី

បតនថមធ្លែុមួយចំនួននៅក្នុងក្រមងអនងរមួយចូលនៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ នៅ

ខាងចុង។

index(…)

េឺជាវ ិធីនរបើសរមាប់រក្នលខ្នរៀងថ្នធ្លែុណាមួយនៅក្នុងក្រមងអនងរណាមួយ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])


ទំព័រ 234

ណឦខណឥៀង = ករឣងចរឣរោះ.index("រាក់ចណំ ណញ")

print(ណឦខណឥៀង)

ណឦខណឥៀង = ករឣងចរឣរោះ.index("រាក់ចណំ ណញ") េឺជាការយក្វ ិធីន្មោះ index មក្នរបើ នដើមបី

រក្នលខ្នរៀងថ្នធ្លែុ តដលជាក្រមងអក្េរ “រាក្់ចំនណ្ញ” នៅក្នុងក្រមងអនងរន្មោះ

ក្រមងចរមរោះ ។

insert(…)

េឺជាវ ិធីនរបើសរមាប់បញ្ូច លវែថុណាមួយចូលនៅក្នុងក្រមងអនងរណាមួយនៅខាងមុខ្ធ្លែុមាន

នលខ្នរៀងណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])

ករឣងចរឣរោះ.insert(2, "ថ្លលឦក់")

print(ករឣងចរឣរោះ)

ល ក់") េឺ ជាការយក្វ ិធីន្មោះ insert មក្នរបើនដើមបីបញ្ូច លក្រមងអក្េរ


ករឣងចរឣរោះ.insert(2, "ថ្លឦ

“ថ្ងលលក្់” នៅខាងមុខ្ធ្លែុមាននលខ្នរៀង 2 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ ។

pop(…)

េឺជាវ ិធីនរបើសរមាប់កាែ់យក្ធ្លែុមាននលខ្នរៀងអវីមួយនៅក្នុងក្រមងអនងរណាមួយមក្

នរបើការ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])

ធារុ = ករឣងចរឣរោះ.pop(2)

print(ធារុ )

print(ករឣងចរឣរោះ)
ទំព័រ 235

ធារុ = ករឣងចរឣរោះ.pop(2) េឺជាការយក្វ ិធីន្មោះ pop មក្នរបើនដើមបីកាែ់យក្ធ្លែុមាន

នលខ្នរៀង 2 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ មក្នរបើការ។

remove(…)

េឺជាវ ិធីនរបើសរមាប់លុបធ្លែុណាមួយនចញពីក្រមងអនងរណាមួយ។ ពិនិែយក្មមវ ិធី ខាងនរកាម

ននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5, 100])

ករឣងចរឣរោះ.remove("រាក់ចណំ ណញ")

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ.remove("រាក់ចណំ ណញ") េឺជាការយក្វ ិធី ន្មោះ remove មក្នរបើ នដើមបីលុបធ្លែុ

តដលជាក្រមងអក្េរ “រាក្់ចំនណ្ញ” នចញពីក្រមងអនងរន្មោះ ក្រមងចរមរោះ ។

reverse(…)

េឺជាវ ិធីនរបើសរមាប់ែនរមៀបធ្លែុនៅក្នុងក្រមងអនងរណាមួយឲ្យមានលំដាប់ថានក្់បញ្រ្ញ្
ច សមក្

វ ិញ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, True, "រាក់ចណំ ណញ", 3.5])

ករឣងចរឣរោះ.reverse()

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ.reverse() េឺជាការយក្វ ិធីន្មោះ reverse មក្នរបើនដើមបីែនរមៀបធ្លែុនៅក្នុង

ច សមក្វ ិញ។
ក្រមងអនងរន្មោះ ក្រមងចរមរោះ ឲ្យមានលំដាប់ថានក្់បញ្រ្ញ្

sort(…)
ទំព័រ 236

េឺជាវ ិធីនរបើសរមាប់ែនរមៀបធ្លែុនៅក្នុងក្រមងអនងរណាមួយឲ្យមានលំដាប់ថានក្់ពីែូចនៅធំ ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = list([100, 76, 23, 3.5])

ករឣងចរឣរោះ.sort()

print(ករឣងចរឣរោះ)

ករឣងចរឣរោះ.sort() េឺ ជាការយក្វ ិធីន្មោះ sort មក្នរបើ នដើមបីែនរមៀបធ្លែុ នៅក្នុងក្រមងអនងរ

ន្មោះ ក្រមងចរមរោះ ឲ្យមានលំដាប់ថានក្់ពីែូចនៅធំ។

ថ្នែក់ dict

រេប់វែថុតដលជាវច នុរក្មទំងអស់េឺជាសិសេថ្នថានក្់មានស្រាប់ ន្មោះ dict ។ ដូចននោះនយើង

អាចយក្ថានក្់ ន្មោះ dict ននោះមក្នរបើ នដើមបីបនងកើែវច នុរក្មឬតក្វែថុនផេងៗឲ្យនៅជា

វច នុរក្ម។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឧចនាឞុ រកឣវី១ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

ឧចនាឞុ រកឣវី២ = dict([("ថ្លលឦក់", 1000), ("ថ្លលវិញ", 900), ("រាក់ចណំ ណញ", 100)])

ី = dict(ថ្លលឦក់=1000, ថ្លលវិញ=900, រាក់ចណំ ណញ=100)


ឧចនាឞុ រកឣវ៣

print(ឧចនាឞុ រកឣវី១)

print(ឧចនាឞុ រកឣវី២)

print(ឧចនាឞុ រកឣវី៣)

ល ក់":1000, "ថ្លវ
ឧចនាឞុរកឣវី១ = dict({"ថ្លឦ ល ិញ":900, "រាក់ចណំ ណញ":100}) េឺ ជាការយក្

ថានក្់មានស្រាប់ ន្មោះ dict មក្នរបើនដើមបីបនងកើែវច នុរក្ម ន្មោះ វច នុរក្មទី១ មួយ។


ទំព័រ 237

ល ក"់ , 1000), ("ថ្លវ


ឧចនាឞុរកឣវី២ = dict([("ថ្លឦ ល ិ ញ", 900), ("រាក់ចណំ ណញ", 100)]) េឺជា

ការយក្ថានក្់មានស្រាប់ ន្មោះ dict មក្នរបើនដើមបីតក្ក្រមងអនងរមួយឲ្យនៅជាវច នុរក្ម

ន្មោះ វច នុរក្មទី២ មួយនទៀែ។ ធ្លែុ ថ្នក្រមងអនងរតដលរែូវយក្មក្តក្ េឺជាក្រមងនងរ

មានធ្លែុពីរ។

ល ក់=1000, ថ្លវ
ឧចនាឞុរកឣវី៣ = dict(ថ្លឦ ល ិ ញ=900, រាក់ចណំ ណញ=100) េឺ ជាការយក្ថានក្់

មានស្រាប់ន្មោះ dict មក្នរបើ នដាយផតល់ដំណ្ឹងតមដំណាងមួយចំនួនឲ្យនៅាថបនិក្ថ្ន

ថានក្់ន្មោះ dict ននោះនដើមបីបនងកើែវច នុរក្មមួយមានន្មោះថា វច នុរក្មទី៣ មួយ។

នៅក្នុងថានក្់មានស្រាប់ ន្មោះ dict មានវ ិធីមួយចំនួនតដលនយើងអាចយក្មក្នរបើជាមួយនឹងវែថុ

តដលជាសិសេថ្នថានក្់ន្មោះ dict ននោះ។ វ ិធីទំងន ោះមានដូចែនៅននោះ៖

clear(…)

េឺជាវ ិធីនរបើសរមាប់លុបធ្លែុទំងអស់តដលមាននៅក្នុងវច នុរក្មណាមួយ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

សងវិចរាក់.clear()

print(សងវិចរាក់)

វ រាក.់ clear() េឺ ជាការយក្វ ិធីន្មោះ clear មក្នរបើ នដើមបីលុបធ្លែុទំងអស់តដលមាននៅ


សងិច

ក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ ។

copy(…)

េឺជាវ ិធីនរបើសរមាប់ចមលងយក្វច នុរក្មណាមួយមក្បនងកើែជាវច នុរក្មដូចោនងនីមួយនទៀែ

។ ពិនិែយក្មមវ ិធី ខាងនរកាមននោះ៖


ទំព័រ 238

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

សងវិចលមី = សងវិចរាក់.copy()

print(សងវិចរាក់)

print(សងវិចលម)ី

សងិច វ រាក់.copy() េឺជាការយក្វ ិធី ន្មោះ copy មក្នរបើនដើមបីចមលងយក្វច


វ លីម = សងិច នុរក្ម

ន្មោះ បងវិចរាក្់ មក្បនងកើែជាវច នុរក្មដូចោនងមីមួយនទៀែមានន្មោះថា បងវិចងមី ។

get(…)

េឺជាវ ិធី នរបើសរមាប់ចមលងយក្ែថ្មលជាប់ នឹងក្ូននារណាមួយនៅក្នុងវច នុរក្មណាមួយមក្

នរបើការ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

រថ្ឣល = សងវិចរាក់.get("រាក់ចណំ ណញ")

print(រថ្ឣល)

វ រាក់.get("រាក់ចណំ ណញ") េឺជាការយក្វ ិធីន្មោះ get មក្នរបើនដើមបីចមលងយក្


រថ្ឣល = សងិច

ែថ្មលជាប់នឹងក្ូននារ “រាក្់ចំនណ្ញ” នៅក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ មក្នរបើការ។

pop(…)

េឺជាវ ិធីនរបើសរមាប់កាែ់យក្ែថ្មលជាប់ នឹងក្ូននារណាមួយនៅក្នុងវច នុរក្មណាមួយមក្

នរបើការ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

រថ្ឣល = សងវិចរាក់.pop("រាក់ចណំ ណញ")

print(រថ្ឣល)
ទំព័រ 239

វ រាក់.pop("រាក់ចណំ ណញ") េឺជាការយក្វ ិធីន្មោះ pop មក្នរបើ នដើមបីកាែ់យក្


រថ្ឣល = សងិច

ែថ្មលជាប់នឹងក្ូននារ “រាក្់ចំនណ្ញ” នៅក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ មក្នរបើការ។

popitem(…)

េឺជាវ ិធីនរបើសរមាប់កាែ់យក្ធ្លែុេូណាមួយនៅក្នុងវច នុរក្មណាមួយមក្បនងកើែជាក្រមង

នងរមានធ្លែុពីរ េឺធ្លែុ មួយជាក្ូននារនិងធ្លែុមួយនទៀែជាែថ្មល។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

ឦវធហឦ = សងវិចរាក់.popitem()

print(ឦវធហឦ)

ឦវហ វ រាក់.popitem() េឺ ជាការយក្វ ិធី ន្មោះ popitem មក្នរបើ នដើមបីកាែ់យក្ធ្លែុ


ធ ឦ = សងិច

េូណាមួយមិនក្ំណ្ែ់នៅក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ មក្នរបើ នដើមបីបនងកើែជាក្រមងនងរ

មួយមានន្មោះថា លទធផល ។

update(…)

េឺជាវ ិធីនរបើសរមាប់នធវើឲ្យវច នុរក្មមួយទន់សម័យ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សងវិចរាក់ = dict({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

សងវិចរាក់.update({"ថ្លលឦក់":2000, "ថ្លលវិញ":800, "រាក់ចណំ ណញ":1200, "ណោហុ ឤ":50})

print(សងវិចរាក់)

វ រាក.់ update({"ថ្លឦ
សងិច ល ក"់ :2000, "ថ្លវ
ល ិ ញ":800, "រាក់ចណំ ណញ":1200, "ណោហុ ឤ":50})

េឺជាការយក្វ ិធី ន្មោះ update មក្នរបើនដើមបីនធវើឲ្យវច នុរក្មន្មោះ បងវិចរាក្់ ទន់សម័យ។


ទំព័រ 240

ថ្នែក់ set

ការបនងកើែវែថុតដលជាសំណ្ុំក្នលងមក្ េឺ ជាការបនងកើែសិសេថ្នថានក្់មានស្រាប់ ន្មោះ set នដាយ

មិនាច់ យក្ថានក្់ន្មោះ set ននោះមក្នរបើ។ ក្៍ ប៉ុតនតនយើងក្៍ អាចយក្ថានក្់ន្មោះ set ននោះមក្នរបើ

នដាយផ្ទទល់នដើមបីបនងកើែសំណ្ុំឬតក្វែថុនផេងៗនទៀែឲ្យនៅជាសំណ្ុំានតដរ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

សំណុំវី១ = set({1000, 900, 100})

សំណុំវី២ = set({"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "រាក់ចណំ ណញ":100})

សំណុំវី៣ = set([1000, 900, 100])

សំណុំវី៤ = set((1000, 900, 100))

print(សំណុំវី១)

print(សំណុំវី២)

print(សំណុំវី៣)

print(សំណុំវី៤)

ំ ុ ំ វី១ = set({1000, 900, 100}) េឺជាការបនងកើែសំណ្ុំមួយមានន្មោះថា សំណ្ុំទី ១ នដាយ


សណ

យក្ថានក្់មានស្រាប់ ន្មោះ set មក្នរបើ។

ំ ុ ំ វី២ = set({"ថ្លឦ
សណ ល ក់":1000, "ថ្លវ
ល ិ ញ":900, "រាក់ចណំ ណញ":100}) េឺ ជាការបនងកើែសំណ្ុំ

មួយមានន្មោះថា សំណ្ុំទី ២ នដាយយក្ថានក្់មានស្រាប់ ន្មោះ set មក្នរបើនិងផតល់

វច នុ រក្មមួយជាដំណ្ឹងសរមាប់ាថបនិក្នៅក្នុងថានក្់ន ោះ។
ទំព័រ 241

ំ ុ ំ វី៣ = set([1000, 900, 100]) េឺជាការបនងកើែសំណ្ុំមួយមានន្មោះថា សំណ្ុំទី ៣ នដាយ


សណ

យក្ថានក្់មានស្រាប់ ន្មោះ set មក្នរបើនិងផតល់ក្រមងអនងរមួយជាដំណ្ឹងសរមាប់ាថបនិក្នៅ

ក្នុងថានក្់ ន ោះ។

ំ ុ ំ វី៤ = set((1000, 900, 100)) េឺ ជាការបនងកើែសំណ្ុំមួយមានន្មោះថា សំណ្ុំទី ៤ នដាយ


សណ

យក្ថានក្់មានស្រាប់ ន្មោះ set មក្នរបើនិងផតល់ក្រមងនងរមួយជាដំណ្ឹងសរមាប់ាថបនិក្នៅ

ក្នុងថានក្់ ន ោះ។

នៅក្នុងថានក្់មានស្រាប់ ន្មោះ set មានវ ិធីមួយចំនួនតដលនយើងអាចយក្មក្នរបើ ជាមួយនឹងវែថុ

តដលជាសំណ្ុំនផេងៗ។ វ ិធីទំងន ោះមានដូចែនៅននោះ៖

add(…)

េឺជាវ ិធីនរបើសរមាប់បតនថមធ្លែុងីនមួយនទៀែចូលនៅក្នុងសំណ្ុំណាមួយ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

សំណុំណដឣ
ើ = set({1000, 900, 100})

សំណុំណដើឣ.add("រាក់ចណំ ណញ")

print(សំណុំណដើឣ)

ំ ុ ំ ណដើឣ.add("រាក់ចណំ ណញ") េឺជាការយក្វ ិធីន្មោះ add មក្នរបើ នដើមបីតងមធ្លែុតដលជា


សណ

ពាក្យថា “រាក្់ចំនណ្ញ” មួយនទៀែចូលនៅក្នុងសំណ្ុំន្មោះ សំណ្ុំនដើម ។

clear(…)

េឺជាវ ិធីនរបើសរមាប់លុបធ្លែុទំងអស់នៅក្នុងសំណ្ុំណាមូយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សំណុំណដើឣ = set({1000, 900, 100})


ទំព័រ 242

សំណុំណដឣ
ើ .clear()

print(សំណុំណដឣ
ើ )

ំ ុ ំ ណដឣ
សណ ើ .clear() េឺ ជាការយក្វ ិធីន្មោះ clear មក្នរបើ នដើមបីលុបធ្លែុទំងអស់តដលមាននៅ

ក្នុងសំណ្ុំន្មោះ សំណ្ុំនដើម ។

copy(…)

េឺជាវ ិធីនរបើសរមាប់ចមលងយក្សំណ្ុំណាមួយមក្បនងកើែជាសំណ្ុំដូចោនមួយងមីនទៀែ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

សំណុំណដឣ
ើ = set({1000, 900, 100})

សំណុំលមី = សំណុំណដើឣ.copy()

print(សំណុំណដើឣ)

print(សំណុំលម)ី

ំ ុ ំ លីម = សណ
សណ ំ ុ ំ ណដើឣ.copy() េឺ ជាការយក្វ ិធី ន្មោះ copy មក្នរបើនដើមបីចមលងយក្សំណ្ុំ

ន្មោះ សំណ្ុំនដើម មក្បនងកើែជាសំណ្ុំមួយងមីមានន្មោះថា សំណ្ុំងមី ។

discard(…)

េឺជាវ ិធីនរបើសរមាប់លុបធ្លែុណាមួយនចញពីសំណ្ុំណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សំណុំណដើឣ = set({1000, 900, 100})

សំណុំណដឣ
ើ .discard(100)

print(សំណុំណដឣ
ើ )

ំ ុ ំ ណដឣ
សណ ើ .discard(100) េឺ ជាការយក្វ ិធី ន្មោះ discard មក្នរបើ នដើមបីលុបធ្លែុតដលជានលខ្

100 នចញពី ក្ុងសំ


ន ណ្ុំន្មោះ សំណ្ុំនដើម ។
ទំព័រ 243

pop(…)

េឺជាវ ិធីនរបើសរមាប់កាែ់យក្ធ្លែុណាមួយពី ក្ុងសំ


ន ណ្ុំណាមួយមក្នរបើការ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

សំណុំណដឣ
ើ = set({1000, 900, 100})

ធារុ = សំណុំណដើឣ.pop()

print(ធារុ )

ំ ុ ំ ណដើឣ.pop() េឺ ជាការយក្វ ិធី ន្មោះ pop មក្នរបើនដើមបីកាែ់ យក្ធ្លែុណាមួយនៅ


ធារុ = សណ

ក្នុងសំណ្ុំន្មោះ សំណ្ុំនដើម មក្នរបើការ។

remove(…)

េឺជាវ ិធីនរបើសរមាប់លុបធ្លែុណាមួយនចញពីសំណ្ុំណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សំណុំណដើឣ = set({1000, 900, 100})

សំណុំណដើឣ.remove(900)

print(សំណុំណដឣ
ើ )

ំ ុ ំ ណដើឣ.remove(900) េឺ ជាការយក្វ ិធី ន្មោះ remove មក្នរបើ នដើមបីលុបធ្លែុតដលជានលខ្


សណ

900 នចញពី សំណ្ុំន្មោះ សំណ្ុំនដើម ។


ទំព័រ 244

ាស្ត្ាា

នៅក្នុងភាាតខ្មរនយើង ពាក្យថាាស្ត្ាត េឺ សំនៅនៅនលើឯក្ារនផេងៗតដលនៅក្នុងន ោះមាន

ការក្ែ់រតទុក្នូវក្បូនខានែមួយចំនួន មានដូចជាាស្ត្ាតសលឹក្រ ឹែជានដើម។ នៅក្នុងភាា

Python ពាក្យថា module េឺសំនៅនៅនលើឯក្ារនផេងៗតដលនៅក្នុងន ោះមានការក្ែ់រតទុក្

នូវ ទិននន័យ ក្បួន និងថានក្់មួយចំនួនតដលទក្់ទងោនក្នុងការនដាោះស្រាយបញ្


ា នដាយតឡក្ណា

មួយ។ ដូចននោះនយើងេួរតែនរបើពាក្យថា ាស្ត្ាត ននោះនដើមបីបក្តរបពាក្យថា module នៅក្នុង

ភាា Python ។

ការបឈងកើត្ ាស្ត្ាត

នៅក្នុងភាា Python នបើ នយើងរបមូលទិ ននន័យ ក្បូន និងថានក្់នផេងៗមក្ក្ែ់រតទុក្ជាឯក្ារ

មួយ នដាយដាក្់ ន្មោះថាអវីមួយតដលមានអក្េរ .py នៅខាងចុង នយើងនឹងាន module មួយ

តដលនយើងអាចបក្តរបជាភាាតខ្មរថាាស្ត្ាត។ ពិនិែយក្មមវ ិធី ខាងនរកាមននោះ៖

pi = 3.14


def ថ្ហទឥងវង(កា ំ) :

S = កា ំ * កា ំ * pi
return S

class ឝឥណីមាររ() :

def __init__(សិសស) :

print("ោថសឞិកថ្ឞថានក់ ឝឥណីមាររ។")

def រកឡាថ្ហទ() :
ទំព័រ 245

print("រកឡាថ្ហទ")

def មាឌ() :

print("មាឌ")

នបើនយើងរក្ាក្មមវ ិធីខាងនលើននោះទុក្ជាឯក្ារមួយតដលមានន្មោះជាឧទហរណ្៍ថា

khmer.py នៅក្នុងថាសរ ឹង តមភាា Python ឯក្ារននោះេឺជាាស្ត្ាតមួយមានន្មោះថា

khmer ។

ន្មោះរបស់ាស្ត្ាតក្៍ ជាន្មោះមួយដូចជាន្មោះរបស់វែថុដថ្ទនទៀែនៅក្នុងភាា Python ។

ដូចននោះនយើងរែូវនោរពនៅតមវ ិធ្លនថ្នការបនងកើែន្មោះនៅក្នុងភាា Python នដើមបីបនងកើែ

ន្មោះរបស់ាស្ត្ាត។

នោលេំនិែសំខាន់ថ្នការបនងកើែាស្ត្ាត េឺ នដើមបីរក្ាទុក្នូវក្បួនខានែមួយចំនួននដើមបីអាចនៅ

នរបើនៅក្នុងក្មមវ ិធីនផេងៗនទៀែាន។ ដូចននោះក្បួនខានែតដលរែូវរក្ាទុក្នៅក្នុងាស្ត្ាតរែូវតែ

មានលក្ខណ្ៈទូនៅ និងតដលអាចមានរបនយាជន៍ក្ុងការនដាោះស្រាយបញ្
ន ា ាននរចើនរបនភទ

ខ្ុសៗោន។ នដាយតឡក្ ការបនងកើែាស្ត្ាតន្មោះ khmer ខាងនលើននោះ េឺ ក្ុងនោលបំ


ន ណ្ងរក្ា

ទុក្នូវទិននន័យ ក្បួន និ ង ថានក្់ មួយចំនួនតដលអាចរែូវយក្នៅនរបើនៅក្នុងក្មមវ ិធីនផេងៗនទៀែ

តដលទក្់ទងនៅនឹងការនដាោះស្រាយបញ្
ា ធរណ្ីមារែ។

ការយ កាស្ត្ាត មកឈម្បើ

នដើមបីអាចយក្ាស្ត្ាតណាមួយមក្នរបើនៅក្នុងក្មមវ ិធីណាមួយាន នយើងរែូវនរបើបញ្


ា import

នដាយនធវើដូចខាងនរកាមននោះ៖

import khmer
ទំព័រ 246

import khmer េឺ ជាការយក្បញ្


ា import មក្នរបើ នដើមបីយក្ាស្ត្ាតន្មោះ khmer មក្នរបើនៅ

ក្នុងក្មមវ ិធីខាងនលើ។ ប ទ ប់ពីននោះមក្ នយើងនឹងអាចយក្អវីៗទំងអស់តដលមាននៅក្នុងាស្ត្ាត

ន្មោះ khmer ននោះមក្នរបើានតមចិែត។

នៅនពលតដលនយើងយក្ាស្ត្ាតន្មោះ khmer មក្នរបើ នៅក្នុងក្មមវ ិធីខាងនលើ ការតសវងរក្

ឯក្ារននោះរែូវនធវើនឡើងនៅក្នុងងែតដលមានឯក្ារតដលជាក្មមវ ិធីខាងនលើននោះមុននេ។

នហើយនរកាយពីាស្ត្ាតននោះរែូវានរក្ន ើញ តផនក្ទន់បក្តរបនឹងបក្តរបាស្ត្ាតននោះឲ្យនៅជា

ឯក្ារមួយនទៀែតដលមានន្មោះជា .pyc នៅខាងចុង។ ប ទ ប់មក្នទៀែ វែថុមួយតដលជា

ាស្ត្ាតន្មោះ khmer រែូវានបនងកើែនឡើងនៅក្នុងសែិរបស់ក្ំពយូទ័ រ នហើយបញ្


ា ទំងឡាយ

នៅក្នុងាស្ត្ាតន ោះ ក្៍ រែូវានយក្នៅអនុវែតតដរ តដលជារបការនធវើឲ្យវែថុមួយចំនួននទៀែរែូវ

ានបនងកើែនឡើងនិងទុក្នៅក្នុងតដនក្ំណ្ែ់តដលជាាស្ត្ាតន ោះ។ ន្មោះ khmer រែូវាន

បនងកើែនឡើងនិងភាាប់ នៅនឹងវែថុតដលជាាស្ត្ាតន ោះ។ ដូចននោះ ាស្ត្ាតខាងនលើមានន្មោះបី

េឺន្មោះ khmer នៅក្នុងសែិរបស់ក្ំពយូទ័ រ និ ងន្មោះ khmer.pyc និង khmer.py នៅក្នុងថាស

រ ឹង។

រេប់វែថុទំងឡាយណាតដលរែូវានបនងកើែនឡើងនិងទុក្នៅក្នុងាស្ត្ាតរែូវនៅថា

សមបែតិាស្ត្ាត (module attribute) ។ វែថុទំងន ោះអាចជា ទិ ននន័យ ក្បូន និ ង ថានក្់មួយចំនួន។

នរកាយពីវែថុតដលជាាស្ត្ាតរែូវានបនងកើែនឡើងរួចនហើយ នយើងអាចពិនិែយនមើលសមបែតិ

ទំងឡាយនៅក្នុងន ោះនដាយនធវើដូចខាងនរកាមននោះ៖

import khmer
help(khmer)

help(khmer) េឺ ជាបញ្
ា ែរមូវឲ្យពិនិែយនមើលសមបែតិទំងឡាយតដលមាននៅក្នុងាស្ត្ាតន្មោះ

khmer ។
ទំព័រ 247

ការយក សមបត្តិ ាស្ត្ាត មកឈម្បើ

នដើមបីយក្សមបែតិនៅក្នុងាស្ត្ាតណាមួយមក្នរបើ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

import khmer

print(khmer.pi)

print(khmer.ថ្ហទឥងវង(15))

ររណកាណ
ី = khmer.ឝឥណីមាររ()

print(ររណកាណ)

print(khmer.pi) េឺ ជាបញ្
ា តដលនៅក្នុងមានការែរមូវឲ្យយក្វែថុន្មោះ pi តដលជាទិននន័យនៅ

ក្នុងាស្ត្ាតន្មោះ khmer មក្នរបើ។

វ ់(15)) េឺ ជាបញ្
print(khmer.ថ្ហឥទ ងង ា តដលនៅក្នុងមានការែរមូវឲ្យយក្វែថុន្មោះ ថ្ផទរងវង់ តដល

ជាក្បួននៅក្នុងាស្ត្ាតន្មោះ khmer មក្នរបើ។

ររណកាណ
ី = khmer.ឝឥណីមាររ() េឺ ជាបញ្
ា តដលនៅក្នុងមានការែរមូវឲ្យយក្វែថុន្មោះ

ធរណ្ីមារែ តដលជាថានក្់នៅក្នុងាស្ត្ាតន្មោះ khmer មក្នរបើ។

ដូចននោះនយើងន ើញថា ការយក្សមបែតិាស្ត្ាតមក្នរបើ ចាំាច់រែូវតែរែូវនធវើនឡើងតមរយៈ

ាស្ត្ាតផ្ទទល់តែមតង នពាលេឺនយើងមិនអាចយក្សមបែតិទំងន ោះមក្នរបើនដាយផ្ទទល់ាននទ។

ក្៍ប៉ុតនតមានវ ិធី ម៉ាងតដលអនុញ្ដែឲ្យនយើងអាចយក្សមបែតិាស្ត្ាតមក្នរបើ នដាយផ្ទទល់ាន។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

from khmer import pi


from khmer import ថ្ហទឥងវង់

from khmer import ឝឥណីមាររ


ទំព័រ 248

print(pi)

print(ថ្ហទឥងវង(15))

ររីណកាណ = ឝឥណីមាររ()

print(ររីណកាណ)

from khmer import pi េឺជាការនរបើបញ្


ា from/import នដើមបីចមលងយក្ទិននន័យន្មោះ pi នៅក្នុង

ាស្ត្ាតន្មោះ khmer មក្ទុក្នរបើ។

វ ់ េឺ ជាការនរបើបញ្
from khmer import ថ្ហឥទ ងង ា from/import នដើមបីចមលងយក្ក្បួនន្មោះ ថ្ផទរងវង់

នៅក្នុងាស្ត្ាតន្មោះ khmer មក្ទុក្នរបើ ។

from khmer import ឝឥណីមាររ េឺ ជាការនរបើបញ្


ា from/import នដើមបីចមលងយក្ថានក្់ ន្មោះ

ធរណ្ីមារែ នៅក្នុងាស្ត្ាតន្មោះ khmer មក្ទុក្នរបើ។

នយើងសនងកែន ើញថា ប ទ ប់ពីការនរបើបញ្


ា from/import នដើមបីចមលងយក្វែថុនផេងៗនៅក្នុង

ាស្ត្ាតមក្ទុក្នរបើ នយើងអាចយក្វែថុទំងន ោះមក្នរបើ នដាយផ្ទទល់ាននដាយមិនចាំាច់នរបើ

ន្មោះរបស់ាស្ត្ាត។

នរៅពីការនរបើ បញ្
ា from/import នដើមបីចមលងយក្សមបែតិមួយចំនួននៅក្នុងាស្ត្ាតមក្នរបើ

នយើងក្៍អាចនរបើបញ្
ា from/import* នដើមបីចមលងយក្សមបែតិទំងអស់នៅក្នុងាស្ត្ាតមក្ទុក្

នរបើ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

from khmer import*

print(pi)

print(ថ្ហទឥងវង(15))

ររីណកាណ = ឝឥណីមាររ()

print(ររណកាណ)

ទំព័រ 249

from khmer import* េឺ ជាការនរបើបញ្


ា from/import* នដើមបីចមលងយក្សមបែតិទំងអស់តដល

មាននៅក្នុងាស្ត្ាតន្មោះ khmer មក្ទុក្នរបើ នៅនពលនរកាយនទៀែ។

នដាយការនរបើបញ្
ា from/import ឬ from/import* េឺ ជាការចមលងឬការបនងកើែន្មោះងមីភាាប់នៅ

នឹងសមបែតិតដលមានន្មោះដូចោននៅក្នុងាស្ត្ាតនផេងៗ ដូចននោះការយក្ន្មោះងមីទំងន ោះ

នៅភាាប់ នឹងវែថុងមីនឹងមិននធវើឲ្យមានផលប៉ោះពាល់ដល់សមបែតិនៅក្នុងាស្ត្ាតនដើមនឡើយ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

from khmer import*


import khmer

pi = "រក់ៗណឡញសំឡង់"
print(khmer.pi)

ំ ង់" េឺ ជាការយក្ន្មោះ pi ចមលងមក្ពី ាស្ត្ាតន្មោះ khmer នៅភាាប់នឹង


pi = "រក់ៗណឡញសឡ

ក្រមងអក្េរមួយ។

print(khmer.pi) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការយក្ទិននន័យន្មោះ pi តដលជាសមបែតិនៅ

ក្នុងាស្ត្ាតន្មោះ khmer មក្ពិនិែយនមើល។

នយើងន ើញថា ប ទ ប់ពីន្មោះ pi នៅក្នុងក្មមវ ិធីខាងនលើរែូវានយក្នៅភាាប់នៅនឹងវែថុងមីរច


មក្ វែថុន្មោះ pi តដលជាសមបែតិនៅក្នុងាស្ត្ាតន្មោះ khmer ោមនានទទួលរងនូវ

ការតរបរបួលអវីនឡើយ។ ានន័យថា ការយក្ន្មោះ pi តដលរែូវានចមលងមក្ពីក្ុងាស្ត្


ន ាត

ន្មោះ khmer នៅភាាប់នឹងវែថុងមី មិនបណា


ត លឲ្យមានផលប៉ោះពាល់អីវដល់វែថុន្មោះ pi ដូចោន

នៅក្នុងាស្ត្ាតន ោះនឡើយ។

មួយវ ិញនទៀែ នរៅពី ការយក្ាស្ត្ាតមក្នរបើតមរយៈន្មោះនដើមរបស់នដើមរបស់វា នយើងក្៍

អាចយក្ាស្ត្ាតមក្នរបើ តមរយៈន្មោះងមីមួយនផេងនទៀែតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


ទំព័រ 250

import khmer as កខមឥ

ររីណកាណ = កខមឥ.ឝឥណីមាររ()

print(ររីណកាណ)

import khmer as កខឥម េឺ ជាការយក្ាស្ត្ាតន្មោះ khmer មក្នរបើនដាយដាក្់ន្មោះងមីឲ្យវាមួ យ

នទៀែថា តខ្មរ ។

ររណកាណ
ី = កខឥម .ឝឥណីមាររ() េឺ ជាការយក្សមបែតិន្មោះ ធរណ្ីមារែ នៅក្នុងាស្ត្ាត

ន្មោះ khmer ឬ តខ្មរ មក្នរបើ។

ដូចោនតដរ នយើងអាចយក្សមបែតិនៅក្នុងាស្ត្ាតណាមួយមក្ទុក្នរបើ នដាយដាក្់ន្មោះងមីឲ្យវា

។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

from khmer import pi as ឡី

print(ឡី)

from khmer import pi as ឡី េឺ ជាការនរបើបញ្


ា from/import/as នដើមបីយក្ទិននន័យន្មោះ pi មក្

ទុក្នរបើ នដាយដាក្់ន្មោះងមីមួយនទៀែឲ្យវាេឺ ពី ។
ទំព័រ 251

ក្ញ្ច ប់

ការបឈងកើត្ កញ្ច ប់

ក្ញ្ច ប់ (package) េឺជាងែមួយតដលមានាស្ត្ាតមួយចំនួននៅក្នុងន ោះ។ នហើយនៅក្នុង

ចំនណាមាស្ត្ាតទំងន ោះ មានាស្ត្ាតមួយមានន្មោះថា __init__.py ។ ដូចននោះនដើមបី

បនងកើែក្ញ្ចប់ នយើងរោន់តែរបមួលាស្ត្ាតមួយចំនួនរួមជាមួយាស្ត្ាតមួយមានន្មោះថា

__init__.py មក្ដាក្់នៅក្នុងងែជាមួយោន េឺជាការនស្រសច។ ន្មោះរបស់ងែន ោះនឹងកាលយនៅ

ជាន្មោះរបស់ក្ញ្ចប់។

ន្មោះរបស់ក្ញ្ចប់ក្៍ជាន្មោះមួយដូចជាន្មោះរបស់ដថ្ទនទៀែនៅក្នុងភាា Python តដរ

នពាលេឺ នយើងរែូវតែនោរពនៅតមវ ិធ្លនថ្នការបនងកើែន្មោះនៅក្នុងភាា Python នដើមបីបនងកើែ

ន្មោះរបស់ក្ញ្ចប់។

ជាក្ិចចា
ច ប់នផតើម ចូរនយើងបនងកើែក្ញ្ចប់មួយមានន្មោះថា KhmerPython នដាយនធវើដូចខាង

នរកាមននោះ៖

#កាឥសណងកើរោស្ត្ោោណ្មោះ geometry

ឡី = 3.14

def អងករ់ហរ
ិច (កា ំ) :

return កា ំ * 2

class មាឌ() :

def រកឡាថ្ហទ(សិសស) :
ទំព័រ 252

print("រកឡាថ្ហទ")

def មាឌ(សិសស) :

print("មាឌ")

នបើនយើងរក្ាក្មមវ ិធីខាងនលើននោះទុក្នដាយដាក្់ន្មោះថា geometry.py នយើងនឹងានាស្ត្ាត

មួយមានន្មោះថា geometry ។

#កាឥសណងកើរោស្ត្ោោណ្មោះ equation

def សឣកាឥសនា
ី ទ រ់() :

print("សឣកាឥសនា
ី ទ រ់")

class សឣកាឥ()
ី :

def ដឺណរកវីឡីឥ(សិសស) :

print("សឣកាឥដ
ី ឺណរកវីឡីឥ")

def ដណឺ រកវីស(ស


ី ិសស) :

print("សឣីកាឥដឺណរកវស
ី ី")

នបើនយើងរក្ាក្មមវ ិធីខាងនលើននោះទុក្នដាយដាក្់ន្មោះថា equation.py នយើងនឹងានាស្ត្ាត

មួយមានន្មោះថា equation ។

#កាឥសណងកើរោស្ត្ោោណ្មោះ __init__

#ោស្ត្ោោ __init__

នបើនយើងរក្ាក្មមវ ិធីខាងនលើននោះទុក្នដាយដាក្់ន្មោះថា __init__.py នយើងនឹងានាស្ត្ាត

មួយមានន្មោះថា __init__ ។
ទំព័រ 253

នបើនយើងរបមួលាស្ត្ាតន្មោះ geometry, equqtion, __init__ ខាងនលើមក្ដាក្់ នៅក្នុងងែ

មួយជាមួយោន នយើងនឹងានក្ញ្ចក្់មួយ នហើយន្មោះរបស់ងែន ោះនឹងកាលយនៅជាន្មោះ

របស់របស់ក្ញ្ចប់ន ោះ។ ជាក្់ តសតងនបើនយើងរបមូលយក្ាស្ត្ាត geometry, equation, __init__

មក្ដាក្់ នៅក្នុងងែមួយតដលមានន្មោះថា KhmerPython ជាមួយោន នយើងនឹងានក្ញ្ចប់

មួយមានន្មោះថា KhmerPython ។

ម៉ាងនទៀែ នយើងរែូវនធវើការក្ែ់សំោល់ថា នដើមបីបនងកើែក្ញ្ចប់ណាមួយ ទមទរចាំាច់ឲ្យមាន

ាស្ត្ាតមានន្មោះថា __init__ មួយ នបើពុំន ោះនាែនទក្ំហុសនឹងនក្ើែមាននឡើង។ នហើយ

ាស្ត្ាតន្មោះ __init__ អាចជាាស្ត្ាតទនទឬអាចជាាស្ត្ាតតដលមានសមបែតិនផេងៗនៅ

ក្នុងន ោះ។

ការយក ាស្ត្ាត កែុងកញ្ច ប់ មកឈម្បើ

នដើមបីយក្ាស្ត្ាតក្នុងក្ញ្ចប់ណាមួយមក្នរបើ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

import KhmerPython.equation

KhmerPython.equation.សឣកាឥសនា
ី ទ រ់()

import KhmerPython.equation េឺ ជាការយក្ាស្ត្ាតន្មោះ equation នៅក្នុងក្ញ្ចប់ន្មោះ

KhmerPython មក្នរបើ ។

នយើងរែូវនធវើការក្ែ់សំោល់ថា នដើមបីអាចយក្ាស្ត្ាតនៅក្នុងក្ញ្ចប់ណាមួយមក្នរបើានតម

រនបៀបដូចខាងនលើននោះ ក្ញ្ចប់ន ោះរែូវតែសថិែនៅក្នុងងែជាមួយនឹងឯក្ារតដលជាក្មមវ ិធី ឬ

សថិែនៅក្នុងក្តនលងណាមួយតដលតផនក្ទន់បក្តរបអាចរក្ន ើញ។
ទំព័រ 254

KhmerPython.equation.សឣីកាឥសនាទរ់() េឺ ជាការយក្ក្បួនន្មោះ សមី ការប ទ ែ់ នៅក្នុង

ាស្ត្ាតន្មោះ equation ថ្នក្ញ្ចប់ន្មោះ KhmerPython មក្នរបើការ។

ការយក្ាស្ត្ាតនផេងៗនៅក្នុងក្ញ្ចប់ណាមួយមក្នរបើ អាចរែូវនធវើតមរនបៀបម៉ាងនទៀែដូច

ខាងនរកាមននោះ៖

from KhmerPython import equation

equation.សឣកាឥសនា
ី ទ រ់()

from KhmerPython import equation េឺ ជាការចមលងយក្ាស្ត្ាតន្មោះ equation នៅក្នុងក្ញ្ចប់

ន្មោះ KhmerPython មក្នរបើ។

ទ រ់() េឺជាការយក្ក្បួនន្មោះ សមីការប ទ ែ់ នៅក្នុងាស្ត្ាតន្មោះ


equation.សឣកាឥសនា

equation មក្នរបើ។

នយើងអាចចមលងយក្សមបែតិទំងអស់នៅក្នុងាស្ត្ាតណាមួយតដលសថិែនៅក្នុងក្ញ្ចប់ណាមួយ

មក្ទុក្នរបើ នដាយនធវើដូចខាងនរកាមននោះ៖

from KhmerPython.equation import*

សឣកាឥសនា
ី ទ រ់()

សឣកាឥ១
ី = សឣកាឥ()

សឣីកាឥ១.ដឺណរកវីឡីឥ()

សឣីកាឥ១.ដឺណរកវីស()

from KhmerPython.equation import* េឺ ជាការចមលងយក្សមបែតិទំងអស់នៅក្នុងាស្ត្ាតន្មោះ

equation តដលសថិែនៅក្នុងក្ញ្ចប់ន្មោះ KhmerPython មក្ទុក្នរបើ។


ទំព័រ 255

មួយវ ិញនទៀែ នយើងក្៍ អាចចមលងយក្ាស្ត្ាតណាមួយនៅក្នុងក្ញ្ចប់ណាមួយមក្ដាក្់ន្មោះងមី

មួយនទៀែានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

import KhmerPython.equation as គណិរឧវា


គណិរឧវា.សឣ
ិ កាឥសនា
ី ទ រ់()

សឣកាឥ១
ី = គណិរឧវា.សឣ
ិ កាឥ()

សឣកាឥ១.ដ
ី ណឺ រកវីឡីឥ()

សឣីកាឥ១.ដឺណរកវីស()

import KhmerPython.equation as គណិរឧវា


ិ េឺ ជាការចមលងយក្ាស្ត្ាតន្មោះ equation នៅ

ក្នុងក្ញ្ចប់ន្មោះ KhmerPython មក្ដាក្់ន្មោះងមីថា េណ្ិែវ ិទា ។

គណិរឧវា.សឣ
ិ ីកាឥសនាទរ់() េឺ ជាការយក្ក្បួនន្មោះ សមីការប ទ ែ់ សថិែនៅក្នុងាស្ត្ាត

ន្មោះ equation តដលមានន្មោះងមីថា េណ្ិែវ ិទា មក្នរបើ។

ដូចោនតដរ នយើងក្៍អាចចមលងយក្សមបែតិនៅក្នុងាស្ត្ាតណាមួយតដលសថិែនៅក្នុងក្ញ្ចប់ណា

មួយមក្ដាក្់ន្មោះងមី នដាយនធវើដូចខាងនរកាមននោះ៖

from KhmerPython.equation import សឣកាឥសនា


ី ទ រ់ as line

line()

ទ រ់ as line េឺជាការចមលងយក្ក្បួនន្មោះ
from KhmerPython.equation import សឣកាឥសនា

សមីការប ទ ែ់ នៅក្នុងាស្ត្ាតន្មោះ equation តដលសថិែនៅក្នុងក្ញ្ចប់ន្មោះ KhmerPython

មក្ដាក្់ ន្មោះងមីថា line ។

line() េឺ ជាការយក្ក្បួនន្មោះ សមី ការប ទ ែ់ តដលមានន្មោះងមីថា line មក្នរបើ ។


ទំព័រ 256

បណា
ា ល័យ មជ្ឍ ឹម

បណាណល័យមជឍឹម (standard library) េឺជាងែមួយតដលនៅក្នុងន ោះមានាស្ត្ាតមួយចំនួន

តដលរែូវានបនងកើែនឡើងរួចជានស្រសច សរមាប់ឲ្យនយើងយក្នៅនរបើការក្នុងការនដាោះស្រាយ

បញ្
ា ទូនៅជានរចើ ន។ នៅក្នុងបណាណល័យមជឍឹមន ោះ មានាស្ត្ាតមានស្រាប់ នលើសពី 200

តដលមិនជាប់ ទក្់ទងឬអាស្រស័យនៅនឹងរបព័នរធ បែិបែតិការណាមួយនឡើយ។ ានន័យថា

នយើងអាចយក្ាស្ត្ាតទំងន ោះនៅនរបើ ការសរមាប់សរនសរក្មមវ ិធីជាភាា Python និ ងែរមូវ

ឲ្យដំនណ្ើរការនៅក្នុងរបព័នរធ បែិបែតិការណាមួយក្៍ ានតដរ។ នលើសពីននោះនទៀែ នយើងអាច

បនងកើែាស្ត្ាតនផេងៗនទៀែទុក្នៅក្នុងបណាណល័យមជឍឹមន ោះ បតនថមពី នលើាស្ត្ាតមានស្រាប់

ទំងន ោះនទៀែានផង។ នដើមបីឲ្យដឹងថានែើនៅក្នុងបណាណល័យក្ណា


ត លន ោះមានាស្ត្ាតអវីខ្លោះ

ន ោះ នយើងអាចអានព័ែ៌មានបតនថមនៅនលើនេហទំព័រ www.python.org ។

ការផ្សែង រកាស្ត្ាត

នៅក្នុងភាា Python នៅនពលតដលនយើងយក្ាស្ត្ាតណាមួយមក្នរបើ ការតសវងរក្ាស្ត្ាត

ន ោះរែូវនធវើនឡើងនៅក្នុងងែមួយចំនួនតដលរែូវានក្ំណ្ែ់ ទុក្ជាមុនរួចជានស្រសច។ នហើយ

នដើមបីឲ្យដឹងថានែើងែតដលរែូវានក្ំណ្ែ់ ទុក្មុនរួចជានស្រសចន ោះជាងែអវីខ្លោះន ោះ នយើងរែូវ

នធវើដូចខាងនរកាមននោះ៖

import KhmerPython.equation
import sys

print(sys.path)

print(sys.path) េឺ ជាការយក្សមបែតិន្មោះ path នៅក្នុងាស្ត្ាតន្មោះ sys មក្ពិ និែយនមើ ល។


ទំព័រ 257

នយើងន ើញថា សមបែតិន្មោះ path ននោះេឺជាក្រមងអនងរមួយតដលមានធ្លែុទំងឡាយជា

ន្មោះថ្នងែមួយចំនួនតដលរែូវានក្ំណ្ែ់ ទុក្មុនរួចជានស្រសចសរមាប់ការតសវងរក្ាស្ត្ាត

នផេងៗតដលនយើងយក្មក្នរបើ។ ានន័យថា ការតសវងរក្រក្ាស្ត្ាតនផេងៗេឺរែូវនធវើនឡើងនៅ

ក្នុងងែទំងឡាយតដលជាធ្លែុថ្នក្រមងអនងរន្មោះ path ន ោះនដាយចាប់នផតើមពី នឆវងនៅាតំ

យា៉ ងណាមិញ នដាយសមបែតិន្មោះ path ជាក្រមងអនងរ ដូចននោះនយើងអាចនធវើការតក្តរប

ការតសវងរក្ាស្ត្ាតតដលរែូវយក្មក្នរបើ នដាយនធវើការតក្តរបធ្លែុ ថ្នក្រមងអនងរន្មោះ path

ននោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

import KhmerPython.equation
import sys

print(sys.path)
sys.path.append("c:\\")
print(sys.path)

sys.path.append("c:\\") េឺ ជាការបតនថមងែន្មោះ c:\ មួ យនទៀែចូ លនៅក្នុងក្រមងអនងរន្មោះ

path ក្នុងនោលបំណ្ងនធវើឲ្យការតសវងរក្ាស្ត្ាតនផេងៗរែូវនធវើនឡើងនៅក្នុងងែន ោះមួយនទៀែ


ទំព័រ 258

ភាពមិនរររក្តី

ភាពមិនរបរក្ែី (exception) េឺជានរឿងនហែុមិនធមមតទំងឡាយណាតដលនក្ើែមាននឡើងនៅ

នពលតដលក្មមវ ិធីក្ំពុងតែដំនណ្ើរការ។ ក្នលងមក្ នយើងានជួបរបទោះនឹងភាពមិនរបរក្ែីមួយ

ចំនួនរួចនៅនហើយ មានដូចជាក្ំហុសនផេងៗតដលបណា
ត លមក្ពីការសរនសរបញ្
ា មិនរែឹមរែូវ

ជានដើម។ល។។

ម្បឈភទ ននភាពមិនម្ប ម្កត្ី

ភាពមិនរបរក្ែីមាននរចើនរបនភទណាស់ ដូចជានៅនពលតដលនយើងសរនសរបញ្
ា មិនរែឹមរែូវ

នៅតមក្បួននវយាក្រណ្៍នៅក្នុងភាា Python ភាពមិនរបរក្ែីរបនភទ SyntaxError នឹងនក្ើែ

មាននឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

print("អនកមាឞឥកាខសរ់"

ន មាឞឥកាខសរ់" េឺ ជាការយក្ក្បួនមានស្រាប់ន្មោះ print មក្នរបើនដាយនភលចសរនសរ


prin("អក

សញ្ដរងវង់រក្ចក្នៅខាងចុងនេ។ របការននោះានបណា
ត លឲ្យក្ំហុសរបនភទ SyntaxError

ាននក្ើែមាននឡើង។

តមពិែភាពមិនរបរក្ែីេឺជាសិសេថ្នថានក្់តដលជារបនភទថ្នភាពមិនរបរក្ែីន ោះ។ ជាក្់តសតង

ដូចជានៅនពលតដលនយើងយក្ក្បួនមានស្រាប់ ន្មោះ print មក្នរបើមិនរែឹមរែូវតមក្បួនខានែ

សិសេថ្នថានក្់ ន្មោះ SyntaxError មានក្់រែូវានបនងកើែនឡើង។


ទំព័រ 259

នរៅពីថានក្់ន្មោះ SyntaxError ននោះ នៅមានថានក្់ថ្នភាពមិនរបរក្ែីជានរចើននទៀែដូចខាង

នរកាមននោះ៖

BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EnvironmentError
| +-- IOError
| +-- OSError
| +-- WindowsError (Windows)
| +-- VMSError (VMS)
+-- EOFError
+-- ImportError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
ទំព័រ 260

+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning

បញ្ជ
ា try/except

try/except េឺជាបញ្
ា ែរមូវឲ្យាក្លបងអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា try និងែរមូវឲ្យអនុវែត

រក្រមបញ្
ា នៅក្នុងបញ្
ា except ក្នុងក្រណ្ីការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា try បងករឲ្យមាន

ភាពមិនរបរក្ែីនក្ើែនឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

try :
5/0
except :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

try : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ។

except : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រមបញ្
ា នៅ

ក្នុងបញ្
ា try បណា
ត លឲ្យមានភាពមិនរបរក្ែីនក្ើែមាននឡើង។

នដាយរក្រមបញ្ ា try ជាក្ននាមរបមាណ្វ ិធី 5/0 ដូចននោះការអនុវែតន៍បញ្


ា នៅក្នុងបញ្ ា ននោះ

បណា
ត លឲ្យភាពមិនរបរក្ែីាននក្ើែមាននឡើង នរពាោះ 5 មិនអាចតចក្នឹង 0 ាននទ។ ជាផល

វ ិាក្ រក្រមបញ្
ា នៅក្នុងបញ្
ា except រែូវានយក្នៅអនុវែត។
ទំព័រ 261

ក្នុងក្រណ្ីមានភាពមិនរបរក្ែីនក្ើែមាននឡើង នបើនយើងមិននធវើអីវនាោះន ោះនទ ក្មមវ ិធីនឹងឈប់

តលងដំនណ្ើរការ។ តែនបើនយើងនរបើបញ្
ា try/except ននោះ នៅនពលមានភាពមិនរបរក្ែីនក្ើែមាន

នឡើង រក្រមបញ្
ា នៅក្នុងបញ្
ា except រែូវយក្នៅអនុវែត នហើយបញ្
ា ប ទ ប់ពីរក្រមបញ្
ា នៅក្នុង

ា except នឹងរែូវយក្នៅអនុវែតជាបនតនៅនទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


បញ្

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឣណឞោះ។")

except :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឹឣណឞោះ។")

print("កឣមឧឝ
ិ ររូ
ី ឧចស់ររឣណឞោះ។")

ិ ីររូឧចស់ររឹឣណឞោះ។") េឺ ជាបញ្
print("កឣឧម ឝ ា តដលរែូវយក្នៅអនុវែតជាបនតនៅនទៀែ ប ទ ប់ពី

រក្រមបញ្
ា នៅក្នុងបញ្
ា except រែូវានអនុវែតរច
ួ នហើយ។

នយើងន ើញថា នៅនពលមានភាពមិនរបរក្ែីនក្ើែមាននឡើង បណា


ត លមក្ពីការអនុវែតន៍បញ្

តដលជាក្ននាមរបមាណ្វ ិធី 5/0 បញ្


ា ប ទ ប់ពីន ោះតដលសថិែនៅក្នុងរក្រមជាមួយោនរែូវទុក្

នចាល។

ា try/except នៅក្នុងក្មមវ ិធីនៅថា ការទទួលយក្ភាពមិនរបរក្ែី (catching


ការនរបើបញ្

exception) ។ ពីនរពាោះនបើភាពមិនរបរក្ែីនក្ើែមាននឡើង រក្រមបញ្


ា នៅក្នុងបញ្
ា except នឹងរែូវ

យក្នៅអនុវែត ក្មមវ ិធីនឹងបនតដំនណ្ើរការជាបនតនៅនទៀែ។ ានន័យថា ភាពមិនរបរក្ែីរែូវ

ានទទួលយក្។ ផទុយនៅវ ិញ នបើនយើងមិននរបើ បញ្


ា try/except ននោះនដើមបីទទួលយក្
ទំព័រ 262

ភាពមិនរបរក្ែីន ោះនទ ក្មមវ ិធីនឹងឈប់ តលងដំនណ្ើរការនៅរែង់ក្តនលងតដលមាន

ភាពមិនរបរក្ែីន ោះ។

ការទទួលយក្ភាពមិនរបរក្ែីអាចរែូវនធវើនឡើងតមរនបៀបម៉ាងនទៀែដូចខាងនរកាមននោះ៖

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឣណឞោះ។")

except ArithmeticError :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

except ArithmeticError : េឺ ជាបញ្


ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍

រក្រមបញ្
ា នៅក្នុងបញ្
ា try បងករឲ្យមានភាពមិនរបរក្ែីរបនភទ ArithmeticError នក្ើែមាន

នឡើង។ ានន័យថា នបើភាពមិនរបរក្ែីោននរបនភទជា ArithmeticError ន ោះនទ

ភាពមិនរបរក្ែីនឹងមិនរែូវានទទួលយក្នឡើយ នហើយក្មមវ ិធីនឹងឈប់ តលងដំនណ្ើរការ។

នដាយភាពមិ នរបរក្ែីជាវែថុតដលជាសិសេថ្នថានក្់ណាមួយ ដូចននោះនយើងអាចទទួលយក្

ភាពមិនរបរក្ែីនដាយដាក្់ ន្មោះឲ្យវាដូចខាងនរកាមននោះ៖

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឹឣណឞោះ។")

except ArithmeticError as កំហុស :

print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

ទំព័រ 263

ំ ុ ស : េឺ ជាបញ្
except ArithmeticError as កហ ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងភាាប់

ន្មោះ ក្ំហុស នៅនឹងវែថុតដលជាភាពមិនរបរក្ែី នៅនពលតដលមានភាពមិនរបរក្ែីរបនភទ

ArithmeticError នក្ើែមាននឡើង។

នរៅពីការទទូលយក្ភាពមិនរបរក្ែីតែមួយរបនភទ នយើងអាចទទួលយក្ភាពមិនរបរក្ែីជា

នរចើនរបនភទឆ្លស់ោន នដាយនធវើដូចខាងនរកាមននោះ៖

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឣណឞោះ។")

except (ArithmeticError, NameError) :
print("ភាឡឣិឞរសរករាឞណក
ី ើរមាឞណឡើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

except (ArithmeticError, NameError) : េឺ ជាបញ្


ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ នៅនពល

តដលមានភាពមិនរបរក្ែីរបនភទ ArithmeticError ឬ NameError នក្ើែមាននឡើង។

នយើងអាចទទួលយក្ភាពមិនរបរក្ែីានជានរចើនរបនភទឆ្លស់ោន និងភាាប់ន្មោះណាមួយនៅ

នឹងវែថុថ្នភាពមិ នរបរក្ែីន ោះ នដាយសរនសរក្មមវ ិធីដូចខាងនរកាមននោះ៖

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឹឣណឞោះ។")

except (ArithmeticError, NameError) as កំហុស :

print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

ទំព័រ 264

ំ ុ ស : េឺ ជាបញ្
except (ArithmeticError, NameError) as កហ ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុង

ន ោះ និងភាាប់ ន្មោះ ក្ំហុស នៅនឹងវែថុថ្នភាពមិនរបរក្ែី ក្នុងក្រណ្ីភាពមិនរបរក្ែីមាន

របនភទជា ArithmeticError ឬ NameError ។

នរៅពីការនរបើរាស់បញ្
ា except តែមួយ នយើងអាចនរបើបញ្
ា except ជានរចើននដើមបីែរមូវឲ្យ

ា នផេងៗោន អាស្រស័យនៅតមរបនភទថ្នភាពមិនរបរក្ែី។ ពិនិែយក្មមវ ិធីខាង


អនុវែតរក្រមបញ្

នរកាមននោះ៖

try :
5/0

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឣណឞោះ។")

except (ArithmeticError, NameError) as កំហុស :

print("ភាឡឣិឞរសរករាឞណក
ី ើរមាឞណឡើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

except MemoryError as កំហុស :

print("កំហុសមាឞរសណអវជា MemoryError ាឞណករមាឞណឡ


ើ ើង។")

ំ ុ ស : េឺ ជាបញ្
except (ArithmeticError, NameError) as កហ ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុង

ន ោះ និងភាាប់ ន្មោះ ក្ំហុស នៅនឹងវែថុថ្នភាពមិ នរបរក្ែី ក្នុងក្រណ្ីភាពមិនរបរក្ែីមាន

របនភទជា ArithmeticError ឬ NameError ។

ំ ុ ស : េឺជាបញ្
except MemoryError as កហ ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងភាាប់

ន្មោះ ក្ំហុស នៅនឹងវែថុថ្នភាពមិនរបរក្ែី ក្នុងក្រណ្ីភាពមិនរបរក្ែីមានរបនភទជា

MemoryError ។
ទំព័រ 265

បញ្ជ
ា try/except/else

try/except/else េឺជាបញ្
ា ែរមូវឲ្យាក្លបងអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា try និងែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា except ក្នុងក្រណ្ីមានភាពមិនរបរក្ែីនក្ើែនឡើង។ តែនបើ

ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា try ោមននរឿងអវីនក្ើែនឡើងនទ រក្រមបញ្
ា នៅក្នុងបញ្
ា except

នឹងរែូវរ ំលងនចាល នហើយរក្រមបញ្ ា else នឹងរែូវយក្នៅអនុវែត។ ពិនិែយក្មមវ ិធី


ា នៅក្នុងបញ្

ខាងនរកាមននោះ៖

try :
5/2
print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឹឣណឞោះ។")
except :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

else :
print("ោមឞភាឡឣិឞរសរករណក
ី ើរណឡើងណវ។")

try : េឺ ជាបញ្
ា ែរមូវឲ្យាក្លបងអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ។

except : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រមបញ្
ា នៅ

ក្នុងបញ្
ា try បងករឲ្មានភាពមិនរបរក្ែីនក្ើែមាននឡើង។

else : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ ក្នុងក្រណ្ីការអនុវែតន៍រក្រមបញ្
ា នៅក្នុង

បញ្
ា try មិនានបងករឲ្យមានភាពមិនរបរក្ែីនក្ើែមាននឡើងនទ។

នដាយក្ននាមរបមាណ្វ ិធី 5/2 ផតល់លទធផល 2.5 ដូចននោះការអនុវែតន៍រក្រមបញ្


ា នៅក្នុងបញ្

try រែូវានបញ្ចប់នៅតមសរមួលនដាយមិនបងករឲ្យមានភាពមិនរបរក្ែីនក្ើែមាននឡើងនឡើយ

។ ជាផលវ ិាក្ រក្រមបញ្


ា នៅក្នុង else រែូវានយក្នៅអនុវែត។
ទំព័រ 266

បញ្ជ
ា try/except/finally

try/except/finally េឺ ជាបញ្
ា ែរមូវឲ្យាក្លបងអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា try និងែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា except ក្នុងក្រណ្ីមានភាពមិនរបរក្ែីនក្ើែនឡើង និងែរមូវឲ្យ

អនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា finally នទោះបី ជាមានឬោមនភាពមិនរបរក្ែីនក្ើែនឡើងក្៍ នដាយ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

try :
5/2

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឣណឞោះ។")

except :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

finally :
print("ររូឧឤកណៅអឞុ ឧរោណទោះសជាមាឞឬោ
ី ម ឞភាឡឣឞរសរករ
ិ ណក
ី រណឡ
ើ ើងក៍ណ ឤ។")

finally : េឺ ជាបញ្
ា ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ នទោះជាមានឬោមនភាពមិនរបរក្ែីនក្ើង

នឡើងក្៍នដាយ។

បញ្ជ
ា try/except/else/finally

try/except/else/finally េឺជាបញ្
ា ែរមូវឲ្យាក្លបងអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា try និង

ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា except ក្នុងក្រណ្ីមានភាពមិនរបរក្ែីនក្ើែនឡើង និង

ែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា else ក្នុងក្រណ្ីោមនភាពមិនរបរក្ែីនក្ើែនឡើង និងែរមូវ

ឲ្យអនុវែតរក្រមនៅក្នុងបញ្
ា finally នទោះបីជាមានឬោមនភាពមិនរបរក្ែីនក្ើែនឡើងក្៍នដាយ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖
ទំព័រ 267

try :
5/2

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា try ររូឧចស់ររឹឣណឞោះ។")
except :
print("ភាឡឣឞរសរករ
ិ ាឞណក
ី រមាឞណឡ
ើ ើង។")

print("កាឥអឞុ ឧរោឞរ៍ ករឣសញ្ហ


ា ណៅកនុងសញ្ហ
ា except ររូឧចស់ររឣណឞោះ។")

else :
print("ោមឞភាឡឣិឞរសរករាឞណក
ី ើរណឡើងណវ។")
finally :
print("ររូឧឤកណៅអឞុ ឧរោណទោះសជាមាឞឬោ
ី ម ឞភាឡឣឞរសរករ
ិ ណក
ី រណឡ
ើ ើងក៍ណ ឤ។")

នដាយក្ននាមរបមាណ្វ ិធី 5/2 ផតល់លទធផលជានលខ្ 2.5 ដូចននោះការអនុវែតន៍រក្រមបញ្ានៅក្នុង

បញ្
ា try មិនបណា
ត លឲ្យភាពមិនរបរក្ែីនក្ើែនឡើងនឡើយ។ មូលនហែុននោះនធវើឲ្យរក្រមបញ្
ា នៅ

ក្នុងបញ្
ា else រែូវានយក្នៅអនុវែត។ ចំតណ្ក្ឯរក្រមបញ្ ា finally វ ិញរែូវាន
ា នៅក្នុងបញ្

យក្នៅអនុវែតជានិចនច ទោះជាមានឬោមនភាពមិនរបរក្ែីនក្ើែនឡើងក្៍ នដាយ។

បញ្ជ
ា raise

raise េឺជាបញ្
ា ែរមូវឲ្យបនងកើែភាពមិនរបរក្ែី ពីនរពាោះនៅនពលខ្លោះ នយើងរែូវបនងកើែភាពមិន

របរក្ែីនដាយខ្លួននយើងផ្ទទល់។ ពិនិែយក្មមវ ិធី ខាងនរកាមននោះ៖

try :
ា ខុស។")
raise SyntaxError("សឥណសឥសញ្ហ

except SyntaxError as កំហុស :

print(កំហុស)

raise SyntaxError("សឥណសឥសញ្ហ
ា ខុស។") េឺជាការនរបើបញ្
ា raise នដើមបីបនងកើែភាពមិនរបរក្ែី

របនភទ SyntaxError ។
ទំព័រ 268

នរៅពីការបនងកើែភាពមិនរបរក្ែីមានរបនភទជា SyntaxError នយើងអាចបនងកើែភាពមិនរបរក្ែី

របនភទណាក្៍ានតដរនដាយនរបើរាស់បញ្
ា raise ននោះ។

បញ្ជ
ា assert

assert េឺជាបញ្
ា ែរមូវឲ្យបនងកើែភាពមិនរបរក្ែីរបនភទ AssertionError ក្នុងក្រណ្ីក្ននាម

របមាណ្វ ិធី មួយផតល់លទធផលជាែក្កវែថុ False ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 800

ថ្លលវិញ = 900
try :
assert ថ្លលឦក់ > ថ្លលវិញ
except AssertionError :
print("ភាឡឣឞរសរករ
ិ រសណអវ
ី AssertionError ាឞណករមាឞណឡ
ើ ើង។")

ល ក់ > ថ្លវ
assert ថ្លឦ ល ិញ េឺជាបញ្
ា ែរមូវឲ្យបនងកើែភាពមិនរបរក្ែីរបនភទ AssertionError ក្នុង

ក្រណ្ីក្ននាមរបមាណ្វ ិធី ថ្ងល > ថ្ងលទិញ ផតល់លទធផលជាែក្កវែថុ False ។

នដាយវែថុន្មោះ ថ្ងលលក្់ ជានលខ្ 800 និងវែថុន្មោះ ថ្ងលទិញ ជានលខ្ 900 ដូចននោះក្ននាម

របមាណ្វ ិធី ថ្ងលលក្់ > ថ្ងលទិញ ផតលល


់ ទធផលជាែក្កវែថុ False តដលនធវើឲ្យភាពមិនរបរក្ែី

របនភទ AssertionError រែូវនក្ើែមាននឡើង។

ការបឈងកើត្ ថ្នែក់ ននភាពមិន ម្បម្កត្ី

នរៅពីភាពមិនរបរក្ែីតដលជាសិសេថ្នថានក្់មានស្រាប់ មួយចំនួនដូចខាងនលើននោះ នយើងអាច

បនងកើែថានក្់ថ្នភាពមិនរបរក្ែីមួយចំនួននទៀែ នដើមបីបនងកើែភាពមិនរបរក្ែីរបនភទនផេងៗនទៀែ
ទំព័រ 269

។ យា៉ ងណាមិញ ថានក្់ថ្នភាពមិនរបរក្ែី ក្៍ដូចជាថានក្់ធមមតឯនទៀែៗតដរ ដូចននោះ ការបនងកើែ

ថានក្់ថ្នភាពមិនរបរក្ែី ោមនការខ្ុសតបលក្អវីពីការបនងកើែថានក្់ធមមតដថ្ទនទៀែនឡើយ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

class កំហុសលមី(Exception) :

def __str__(សិសស) :

return "ភាឡឣឞរសរករ
ិ រសណអវ
ី កំហុសលមី។"

try :
raise កំហុសលមី()

except កំហុសលមី as កំហុស :

print(កំហុស)

ំ ុ សលី(ម Exception) : េឺ ជាការបនងកើែថានក្់ន្មោះ ក្ំហុសងមី បនតភាាប់នៅនឹងថានក្់មាន


class កហ

ស្រាប់ន្មោះ Exception ។

ជារួម នេនិយមបនងកើែថានក្់ថ្នភាពមិនរបរក្ែីងីម នដាយបនតភាាប់ នៅនឹងថានក្់ មានស្រាប់ ន្មោះ

Exception ។

ក្នុងក្រណ្ីតដលថានក្់ ថ្នភាពមិនរបរក្ែីមួយរែូវានបនងកើែនឡើងនដាយបនតភាាប់នៅនឹងថានក្់នម

នផេងៗនទៀែ តមរយៈថានក្់នម នយើងអាចទទួលយក្ភាពមិនរបរក្ែីតដលជាសិសេថ្នថានក្់រង

ាន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class កំហុសលមី(Exception) :

def __str__(សិសស) :

return "ភាឡឣឞរសរករ
ិ រសណអវ
ី កំហុសលមី។"

try :
ទំព័រ 270

raise កំហុសលមី()

except Exception as កំហុស :

print(កំហុស)

ំ ុ ស : េឺ ជាបញ្
except Exception as កហ ា ែរមូវឲ្យទទួលយក្ភាពមិនរបរក្ែីមានរបនភទជា

Exception ឬថានក្់រងថ្នថានក្់ន្មោះ Exception ននោះ។

នដាយភាពមិនរបរក្ែីតដលរែូវានបនងកើែនឡើងជាសិសេថ្នថានក្់ន្មោះ ក្ំហុសងមី តដលជា

ថានក្់រងថ្នថានក្់ ន្មោះ Exception ដូចននោះភាពមិនរបរក្ែីននោះរែូវានទទូលយក្ដូចជាសិសេ

ថ្នថានក្់នមន្មោះ Exception ន ោះតដរ។


ទំព័រ 271

បដចចក្ដទសជាន់ខ្ស
ព ់

នរៅពីបញ្
ា និងក្បួនខានែមួយចំនួនតដលនយើងាននរបើរាស់ក្នលងមក្សរមាប់នដាោះស្រាយ

ា នផេងៗ នៅមាន បនចចក្នទសជាន់ ខ្ពស់ (advanced feature) មួយចំនួននទៀែតដលនយើង


បញ្

អាចយក្មក្នរបើរាស់បតនថមនៅនលើក្បូនខានែទំងអស់ន ោះ។ បនចចក្នទសជាន់ខ្ពស់ទំងន ោះ

មានដូចែនៅននោះ៖

កបួនអនាមិក

ក្បួនអ មិក្ (lambda) េឺជាក្បួនោមនន្មោះ មានតែដំណាងនផេង និងក្ននាមរបមាណ្វ ិធី

មួយតែប៉ុនណាណោះ។ ក្បួនអ មិក្បញ្ូា នវែថុតដលជាលទធផលានមក្ពីក្ននាមរបមាណ្វ ិធីនៅ

ក្នុងន ោះនៅកាន់ ក្តនលងណាតដលក្បួនអ មិក្រែូវានយក្នៅនរបើ ។ នដើមបីបនងកើែក្បួនអ មិក្

នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

រាក់ចណំ ណញ = lambda ថ្លលឦក់, ថ្លលវិញ : ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ(1000, 900))

រាក់ចណំ ណញ = lambda ថ្លឦ


ល ក់, ថ្លវ ល ក់ - ថ្លវ
ល ិញ : ថ្លឦ ល ិញ េឺ ជាការនរបើបញ្
ា lambda

នដើមបីបនងកើែក្បួនអ មិក្មួយតដលមាន ថ្ងលលក្់ និង ថ្ងលទិញ ជាដំណាង និង ថ្ងលលក្់ - ថ្ងលទិញ

ជាក្ននាមរបមាណ្វ ិធី។

នៅក្នុងក្មមវ ិធីខាងនលើននោះ នៅនពលតដលបញ្


ា lambda រែូវានយក្នៅអនុ វែត វែថុតដល

ជាក្បួនអែ់ន្មោះមួយរែូវានបនងកើែនឡើង។ ក្បួនន ោះមានន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ ជា

ដំណាង និងក្ននាមរបមាណ្វ ិធី ថ្ងលលក្់ - ថ្ងលទិញ ជាែួ ក្បួន។ ក្បួនននោះរែូវនៅថាក្បួន


ទំព័រ 272

អ មិក្នរពាោះវាជាក្បួនោមនន្មោះ។ ងវិែបិែតែនៅក្នុងក្បួនអ មិក្ោមនបញ្


ា return ក្៍ពិែតមន

តែក្បួនអ មិក្នឹងបញ្ូា នវែថុតដលជាលទធផលានមក្ពី ក្ននាមរបមាណ្វ ិធី តដលជាែួ ក្បួន

នៅកាន់ ក្តនលងណាតដលក្បួនអ មិក្រែូវានយក្នៅនរបើ។ ម៉ាងនទៀែ នដាយក្បួនអ មិក្ជា

ក្បួនអែ់ន្មោះ ដូចននោះនយើងរែូវតែយក្ន្មោះ ណាមួយនៅភាាប់នឹងក្បួនន ោះ នដើមបីអាចយក្

វាមក្នរបើការាន នបើ ពុំន ោះនាែនទ វានឹងរែូវលុបនចាលនៅវ ិញ នដាយយនតការនាសសំអាែ

ការបនងកើែក្បួនអ មិក្ដូចខាងនលើននោះ សមមូលនឹងការបនងកើែក្បួមធមមតដូចខាងនរកាមននោះ៖

def រាក់ចណំ ណញ(ថ្លលឦក់, ថ្លលវិញ) :

return ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ(1000, 900))

ផលរបនយាជន៍ថ្នការបនងកើែក្បួនអ មិក្េឺ ថា ក្បួនអ មិ ក្មានលក្ខណ្ៈជាក្ននាមរបមាណ្

វ ិធី ដូចននោះនៅក្តនលងណាតដលក្ននាមរបមាណ្វ ិធី អាចរែូវបនងកើែ ក្បួនអ មិក្ក្៍អាចរែូវ

បនងកើែនៅទីន ោះានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = (100, True, lambda ថ្លលឦក់, ថ្លលវិញ : ថ្លលឦក់ - ថ្លលវិញ)

print(ករឣងចរឣរោះ)

ល ក,់ ថ្លវ
ករឣងចរឣរោះ = (100, True, lambda ថ្លឦ ល ក់ - ថ្លវ
ល ិញ : ថ្លឦ ល ិ ញ) េឺជាការបនងកើែក្រមង

នងរមានន្មោះថា ក្រមងចរមរោះ មួយតដលនៅក្នុងន ោះមានក្បួនអ មិក្មួយជាធ្លែុមាន

នលខ្នរៀង 2 ។

វឌ្ឍនករ
ទំព័រ 273

វឌឍនក្រ (iterator) េឺ ជាវែថុតដលជាលទធផលានមក្ពីការយក្ក្បួនមានស្រាប់ន្មោះ iter មក្

នរបើ នដាយផតល់ដំណ្ឹងជាសមាសវែថុណាមួយឲ្យវា។ នដើមបីបនងកើែវឌឍនក្រ នយើងរែូវនធវើដូចខាង

នរកាមននោះ៖

ករឣងណដើឣ = (100, "រាក់ចណំ ណញ", True)

ឧឌឍឞករឣងណដើឣ = iter(ករឣងណដើឣ)

print(ឧឌឍឞករឣងណដើឣ)

ឧឌឍឞករឣងណដើឣ = iter(ករឣងណដើឣ) េឺ ជាការយក្ក្បួនមានស្រាប់ន្មោះ iter មក្នរបើ នដើមបី

បនងកើែវឌឍនក្រន្មោះ វឌឍនក្រមងនដើម មួយ។ ដំណ្ឹងសរមាប់ក្បួនន្មោះ iter េឺ ជាក្រមង

នងរមានន្មោះថា ក្រមងនដើម ។

នបើសិនជានយើងយក្ក្បួនមានស្រាប់ន្មោះ next មក្នរបើ នដាយផតល់ដំណ្ឹងជាវឌឍនក្រណាមួយ

ឲ្យនៅក្បួនន ោះ នយើងនឹងានលទធផលដូចខាងនរកាមននោះ៖

ើ = (100, "រាក់ចណំ ណញ", True)


ករឣងណដឣ

ឧឌឍឞករឣងណដឣ
ើ = iter(ករឣងណដឣ
ើ )

print(next(ឧឌឍឞករឣងណដើឣ))

print(next(ឧឌឍឞករឣងណដើឣ))

print(next(ឧឌឍឞករឣងណដើឣ))

print(next(ឧឌឍឞករឣងណដឣ
ើ ))

print(next(ឧឌឍឞករឣងណដើឣ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់

ន្មោះ next មក្នរបើជានលើក្ទី មួយ នដាយផតល់វឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ជាដំណ្ឹងឲ្យ

នៅក្បួនន ោះ។ ជាលទធផល ធ្លែុមាននលខ្នរៀង 0 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម រែូវ

ានយក្មក្ពិនិែយនមើល។
ទំព័រ 274

print(next(ឧឌឍឞករឣងណដើឣ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់

ន្មោះ next មក្នរបើជានលើក្ទី ពីរ នដាយផតល់វឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ជាដំណ្ឹងឲ្យនៅ

ក្បួនន ោះ។ ជាលទធផល ធ្លែុមាននលខ្នរៀង 1 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម រែូវាន

យក្មក្ពិនិែយនមើល។

print(next(ឧឌឍឞករឣងណដើឣ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់

ន្មោះ next មក្នរបើជានលើក្ទី បី នដាយផតល់វឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ជាដំណ្ឹងឲ្យនៅ

ក្បួនន ោះ។ ជាលទធផល ធ្លែុមាននលខ្នរៀង 2 នៅក្នុងក្រមងនងរន្មោះ ក្រមងនដើម រែូវាន

យក្មក្ពិនិែយនមើល។

print(next(ឧឌឍឞករឣងណដើឣ)) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់

ន្មោះ next មក្នរបើជានលើក្ទី បួន នដាយផតល់វឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ជាដំណ្ឹងឲ្យ

នៅក្បួនន ោះ។ ជាលទធផល ភាពមិនរបរក្ែីរបនភទ StopIteration រែូវានបនងកើែនឡើង។

ដូចននោះនយើងន ើញថា រេប់ការយក្ក្បួនមានស្រាប់ន្មោះ next មក្នរបើនដាយផតល់ដំណ្ឹងជា

វឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ឲ្យនៅក្បួនន ោះ ធ្លែុណាមួយនៅក្នុងក្រមងនងរន្មោះ

ក្រមងនដើម រែូវយក្មក្ពិនិែយ។ នហើយក្រមងនងន ោះេឺវែថុតដលរែូវានផតល់ជាដំណ្ឹងសរមាប់

ក្បួនមានស្រាប់ ន្មោះ iter នៅនពលបនងកើែវឌឍនក្រន្មោះ វឌឍនក្រមងនដើម ន ោះ។ នហើយ

ការយក្ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើនលើក្នរកាយៗនទៀែ នធវើឲ្យធ្លែុជាបនតប ទ ប់

នៅក្នុងក្រមងនងរន ោះ រែូវយក្មក្ពិនិែយជាហូរតហរ។ នៅនពលតដលធ្លែុនៅក្នុងក្រមងនងរ

ន ោះរែូវានពិនិែយអស់នហើយ ការយក្ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើជាបនតនទៀែ នធវើឲ្យ

ភាពមិនរបរក្ែីរបនភទ StopIteration នក្ើែមាននឡើង។


ទំព័រ 275

ដូចននោះវឌឍនក្រេឺជាវែថុម៉ាងតដលតមរយៈវា នយើងអាចយក្ធ្លែុនៅក្នុងសមាសវែថុណាមួយ

មក្ពិនិែយនមើលមួយមតងៗជាហូរតហររហូែដល់អស់ធ្លែុ។ ានន័យថា វឌឍនក្រេឺជាវែថុម៉ាង

តដលមាន ទី ជាាពនសរមាប់ចមលងពីធ្លែុ មួយនៅធ្លែុ មួយនទៀែនៅក្នុងសមាសវែថុណាមួយ

ការតសវងយល់ដឹងពី វឌឍនក្រមានារៈសំខាន់ណាស់ក្ុងការយល់
ន ដឹងពី យនតការរបស់បញ្

for ។ ពីនរពាោះនៅនពលតដលបញ្
ា for រែូវយក្មក្នរបើជាមួយនឹងសមាសវែថុណាមួ យ ក្បួន

មានស្រាប់ន្មោះ iter រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ នហើយសមាសវែថុន ោះនឹងរែូវផតល់ជា

ដំណ្ឹងឲ្យនៅក្បួនមានស្រាប់ ន្មោះ iter ន ោះ។ របការននោះនធវើឲ្យវឌឍនក្រមួយរែូវបនងកើែនឡើង

។ ប ទ ប់មក្នទៀែក្បួនមានស្រាប់ ន្មោះ next ក្៍ រែូវយក្មក្នរបើជាសវ័យរបវែតិតដរ នហើយ

វឌឍនក្រតដលនទើបរែូវានបនងកើែន ោះ ក្៍រែូវផតល់ជាដំណ្ឹងឲ្យនៅក្បួនមានស្រាប់ន្មោះ next

ន ោះតដរ។ នហើយការយក្ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើ ជាសវ័យរបវែតិ រែូវរបរពឹែនត ៅជា

នរចើននលើក្នរចើនាររហូែដល់ធ្លែុនៅក្នុងសមាសវែថុតដលរែូវានផតល់ជាដំណ្ឹងសរមាប់

ក្បួនមានស្រាប់ ន្មោះ iter រែូវានពិនិែយអស់។ នៅនពលតដលធ្លែុនៅក្នុងសមាសវែថុរែូវ

ានពិនិែយអស់ ភាពមិនរបរក្ែីរបនភទ StopIteration រែូវនក្ើែមាននឡើង។

សរុបមក្ ការយក្បញ្
ា for មក្នរបើ បណា
ត លឲ្យក្បួនមានស្រាប់ ន្មោះ iter និង next រែូវយក្

មក្នរបើ ជាសវ័យរបវែតិជាបនតប ត ប់នដើមបីបនងកើែវឌឍនក្រមួយនិងនដើមបីពិនិែយនមើលធ្លែុនៅក្នុង

សមាសវែថុតដលរែូវានផតល់ជាដំណ្ឹងសរមាប់ក្បួនមានស្រាប់ ន្មោះ iter ។ នហើយនៅនពល

តដលការពិនិែយនមើលធ្លែុ នៅក្នុងសមាសវែថុន ោះរែូវានចប់សពវរេប់នហើយ ភាពមិនរបរក្ែី

របនភទ StopIteration រែូវនក្ើែមាននឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ើ = (100, "រាក់ចណំ ណញ", True)


ករឣងណដឣ

for ឧរថុ in ករឣងណដឣ


ើ :
ទំព័រ 276

print(ឧរថុ)

for ឧរុ ថ in ករឣងណដើឣ : េឺ ជាការនរបើបញ្


ា for នដើមបីពិនិែយនមើលរេប់ធ្លែុទំងអស់នៅក្នុងក្រមង

នងរន្មោះ ក្រមងនដើម ។ របការននោះនធវើឲ្យក្បួនមានស្រាប់ ន្មោះ iter រែូវានយក្មក្នរបើជា

សវ័យរបវែតិនដាយទទួលានក្រមងនងន្មោះ ក្រមងនដើម ជាដំណ្ឹងសរមាប់បនងកើែវឌឍនក្រមួយ

។ ប ទ ប់មក្នទៀែ ក្បួនមានស្រាប់ ន្មោះ next ក្៍រែូវានយក្មក្នរបើជាសវ័យរបវែតិតដរ នហើយ

វឌឍនក្រតដលនទើបរែូវានបនងកើែន ោះ រែូវានផតល់ជាដំណ្ឹងសរមាប់ក្បួនន ោះ។ ការយក្

ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើរែូវរបរពឹែនត ៅជានរចើននលើក្នរចើនាររហូែដល់ធ្លែុនៅ

ក្នុងក្រមងនងរន្មោះ ក្រមងនដើម រែូវានពិនិែយអស់។

កបួនផលិត្ករ និង ផលិត្ករ

ក្បួនផលិែក្រ (generator function) េឺជាក្បួនទំងឡាយណាតដលមានបញ្


ា yield នៅក្នុង

ន ោះ។ នដើមបីបនងកើែក្បួនផលិែក្រ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

def ហឦិរកឣម(ករឣង) :


print("ដត ក់កាឥវីឣួ ឤ")

yield ករឣង[0] + 10


print("ដត ក់កាឥវីឡីឥ")

yield ករឣង[1] + 10


print("ដត ក់កាឥវីស")

yield ករឣង[2] + 10

ឡុ ឣព = ហឦិរកឣម([1, 2, 3])

print(ឡុ ឣ)ព
ទំព័រ 277

def ហឦិរកឣ(ម ករឣង) : េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្បួនផលិែក្រន្មោះ ផលិែក្មម មួយតដល

មានបញ្
ា yield ជានរចើននៅក្នុងន ោះ។

ឡុឣព = ហឦិរកឣ(ម [1, 2, 3]) េឺ ជាការយក្ក្បួនផលិែក្រន្មោះ ផលិែក្មម មក្នរបើ តដល ំឲ្យវែថុ

ន្មោះ ពុមព មួយរែូវានបនងកើែនឡើង។

ដូចននោះនយើងន ើញថា ការយក្ក្បួនផលិែក្រមក្នរបើ មិនបណា


ត លឲ្យបញ្
ា នៅក្នុងក្បួនន ោះ

រែូវយក្នៅអនុវែតនទ ផទុយនៅវ ិញ វែថុមួយនៅថា ផលិែក្រ (generator) រែូវានបនងកើែនឡើង។

នបើនយើងយក្ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើនដាយផតល់ដំណ្ឹងជាផលិែក្រណាមួយឲ្យវា

នយើងនឹងានលទធផលដូចខាងនរកាមននោះ៖

def ហឦិរកឣម(ករឣង) :


print("ដត ក់កាឥវីឣួ ឤ")

yield ករឣង[0] + 10


print("ដត ក់កាឥវីឡីឥ")

yield ករឣង[1] + 10


print("ដត ក់កាឥវីស")

yield ករឣង[2] + 10

ឡុ ឣព = ហឦិរកឣម([1, 2, 3])

print(next(ឡុ ឣ)ព )

print(next(ឡុ ឣ)ព )

print(next(ឡុ ឣ)ព )

print(next(ឡុ ឣ)ព )
ទំព័រ 278

print(next(ឡុឣ)ព ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់ន្មោះ next

មក្នរបើ ជានលើក្ទី មួយនដាយផតល់ផលិែក្រន្មោះ ពុមព ជាដំណ្ឹងឲ្យនៅក្បួនន ោះ។ របការននោះ

បណា
ត លឲ្យរក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រន្មោះ ផលិែក្មម រែូវយក្មក្អនុវែតជាបនតប ទ ប់

រហូែដល់បញ្
ា yield ដំបួងនេនទើបផ្ទអក្មួយរយៈសិន។

print(next(ឡុឣ)ព ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់ន្មោះ next

មក្នរបើ ជានលើក្ទី ពីរនដាយផតល់ផលិែក្រន្មោះ ពុមព ជាដំណ្ឹងឲ្យនៅក្បួនន ោះ។ របការននោះ

បណា
ត លឲ្យរក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រន្មោះ ផលិែក្មម រែូវយក្មក្អនុវែតជាបនតប ទ ប់

រហូែដល់បញ្
ា yield ទីពីរនទើបផ្ទអក្មួយរយៈនទៀែ។

print(next(ឡុឣ)ព ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់ន្មោះ next

មក្នរបើ ជានលើក្ទី បីនដាយផតល់ផលិែក្រន្មោះ ពុមព ជាដំណ្ឹងឲ្យនៅក្បួនន ោះ។ របការននោះ

បណា
ត លឲ្យរក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រន្មោះ ផលិែក្មម រែូវយក្មក្អនុវែតជាបនតប ទ ប់

រហូែដល់បញ្
ា yield ទីបីនទើបផ្ទអក្មួយរយៈនទៀែ។

print(next(ឡុឣ)ព ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់ន្មោះ next

មក្នរបើ ជានលើក្ទី បួននដាយផតល់ផលិែក្រន្មោះ ពុមព ជាដំណ្ឹងឲ្យនៅក្បួនន ោះ។ របការននោះ

នធវើឲ្យភាពមិនរបរក្ែីរបនភទ StopIteration រែូវនក្ើែនឡើង នរពាោះរក្រមបញ្


ា នៅក្នុងក្បួន

ផលិែក្រន្មោះ ផលិែក្មម រែូវានយក្មក្អនុវែតានចប់សពវរេប់អស់នហើយ។

សរុបមក្ ក្បួនផលិែក្រេឺជាក្បួនតដលមានបញ្
ា yield នៅក្នុងន ោះ នហើយការយក្ក្បួន

ផលិែក្រមក្នរបើ មិ នបណា
ត លឲ្យរក្រមបញ្
ា នៅក្នុងន ោះរែូវយក្នៅអនុវែតនទ តែផទុយនៅវ ិញ

វែថុតដលជាផលិែក្រមួយរែូវបនងកើែនឡើង។ នដើមបីឲ្យរក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្ររែូវយក្នៅ

អនុវែត នយើងរែូវយក្ក្បួនមានស្រាប់ន្មោះ next មក្នរបើនដាយផតល់ផលិែក្រជាដំណ្ឹង


ទំព័រ 279

សរមាប់ក្បួនននោះ។ ក្៍ប៉ុតនត ការអនុែតន៍រក្រមបញ្


ា នៅក្នុងក្បួនផលិែក្ររែូវផ្ទអក្នៅក្តនលងតដល

មានបញ្
ា yield ដំបួងនេ នហើយនបើនយើងចង់ឲ្យការអនុវែតន៍រក្រមបញ្
ា ន ោះមានដំនណ្ើរការជា

បនតនៅនទៀែរហូែដល់បញ្
ា yield ប ទ ប់មក្នទៀែ នយើងរែូវយក្ក្បួនមានស្រាប់ ន្មោះ next

មក្នរបើ តមរនបៀបដតដលននោះជាងមីមតងនទៀែ។ លុោះដល់ការអនុវែតន៍រក្រមបញ្


ា នៅក្នុងក្បួន

ផលិែក្រានចប់សពវរេប់នហើយ ការាក្លបងយក្ក្បួនមានស្រាប់ ន្មោះ next មក្នរបើតម

រនបៀបដតដលននោះនទៀែ នឹងបងករឲ្យមានភាពមិនរបរក្ែីរបនភទ StopIteration នក្ើែមាននឡើង។

បញ្
ា yield មានមុខ្ងារស្រសនដៀងនឹងបញ្
ា return តដរ នពាលេឺវាជាបញ្
ា តដលែរមូវឲ្យបញ្ូា ន

វែថុណាមួយនៅកាន់ ក្តនលងណាតដលផលិែក្រនក្ើែនចញពីក្បួនននោះរែូវយក្នៅនរបើជាដំណ្ឹង

សរមាប់ក្បួនមានស្រាប់ ន្មោះ next ។ ក្៍ ប៉ុតនត បញ្


ា yield ខ្ុសពីបញ្
ា return នៅរែង់ថា

បញ្
ា yield មិនែរមូវឲ្យបញ្ចប់ការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រនទ េឺ បញ្
ា yield

រោន់តែែរមូវឲ្យផ្ទអក្ការអនុវែតន៍រក្រមបញ្
ា ន ោះមួយរយៈតែប៉ុនណាណោះ នហើយការអនុវែតន៍រក្រម

បញ្
ា ន ោះ នឹងរែូវនធវើនឡើងជាបនតនៅនទៀែនៅនពលណាតដលផលិែក្ររែូវយក្នៅនរបើ ជា

ដំណ្ឹងសរមាប់ក្បួនមានស្រាប់ ន្មោះ next ជាងមីមតងនទៀែ។

ដូចននោះនយើងន ើញថា ផលិែក្រេឺ ជាវែថុមួយតដលតមរយៈវា បញ្


ា នៅក្នុងក្បួនផលិែក្ររែូវ

យក្នៅអនុវែត។

នបើសិនណាជានយើងយក្បញ្
ា for មក្នរបើ ជាមួយនឹងផលិែក្រណាមួ យ ក្បួនមានស្រាប់ ន្មោះ

next នឹងរែូវយក្មក្នរបើជាសវ័យរបវែតិជានរចើននលើក្នរចើនាររហូែដល់រក្រមបញ្
ា នៅក្នុងក្បួន

ផលិែក្រតដលបនងកើែផលិែក្រន ោះ រែូវយក្នៅអនុវែតានចប់សពវរេប់ តដលជារបការនធវើឲ្យ

ភាពមិនរបរក្ែីរបនភទ StopIteration រែូវនក្ើែមាននឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ហឦិរកឣម(ករឣង) :
ទំព័រ 280


print("ដត ក់កាឥវីឣួ ឤ")

yield ករឣង[0] + 10


print("ដត ក់កាឥវីឡីឥ")

yield ករឣង[1] + 10


print("ដត ក់កាឥវីស")

yield ករឣង[2] + 10

for ឧរថុ in ហឦិរកឣម([1, 2, 3]) :

print(ឧរថុ)

for ឧរុ ថ in ហឦិរកឣ(ម [1, 2, 3]) : េឺជាការយក្បញ្


ា for មក្នរបើ ជាមួយនឹងផលិែក្រតដលជា

លទធផលានមក្ពី ការយក្ក្បួនផលិែក្រន្មោះ ផលិែក្មម មក្នរបើ។ របការននោះ បណា


ត លឲ្យ

ក្បួនមានស្រាប់ ន្មោះ next រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ នហើយផលិែក្រតដលនទើបរែូវាន

បនងកើែនឡើង រែូវានផតល់ជាដំណ្ឹងសរមាប់ក្បួនមានស្រាប់ ន្មោះ next ន ោះ។ ការយក្ក្បួន

ចុងនរកាយននោះមក្នរបើ រែូវនធវើនឡើងជានរចើននលើក្នរចើនាររហូែដល់ការអនុវែតន៍រក្រមបញ្

នៅក្នុងក្បួនផលិែក្រន្មោះ ផលិែក្មម រែូវចប់សពវរេប់ តដលជារបការនធវើឲ្យភាពមិនរបរក្ែី

របនភទ StopIteration រែូវានបនងកើែនឡើងនិងទទួលយក្។

នដាយនហែុថា ក្បួនផលិែក្រមានសមែថភាពអាចបញ្ូា នវែថុជានរចើនរបនភទខ្ុសៗោនតមរយៈ

បញ្
ា yield ដូចននោះ នយើងអាចនរបើក្បួនផលិែក្រជាពុមស
ព រមាប់បនងកើែវែថុជានរចើនខ្ុសៗោន

អាស្រស័យនៅតមរូបមនតតដលជារក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រន ោះ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

def ហឦិរកឣម() :

yield 1000
ទំព័រ 281

yield "ថ្លលឦក់"

yield 900

yield "រាក់ចណំ ណញ"


yield True

for ឧរថុ in ហឦិរកឣម() :

print(ឧរថុ)

for ឧរុ ថ in ហឦិរកឣ(ម ) : េឺ ជាការយក្បញ្


ា for មក្នរបើជាមួយនឹងផលិែក្រតដលជាលទធផល

ានមក្ពីការយក្ក្បួនផលិក្រន្មោះ ផលិែក្មម មក្នរបើ ។ របការននោះនធវើឲ្យវែថុមួយចំនួនខ្ុសៗ

ោនរែូវានបនងកើែនឡើង អាស្រស័យនៅតមរូបមនតតដលជារក្រមបញ្
ា នៅក្នុងក្បួនផលិែក្រន្មោះ

ផលិែក្មម ន ោះ។

នយើងន ើញថា ការយក្ផលិែក្រមក្នរបើជាមួយនឹងបញ្


ា for បណា
ត លឲ្យវែថុជានរចើនរែូវបនងកើែ

នឡើង ដូចននោះក្បួនផលិែក្រក្៍មានលក្ខណ្ៈដូចជាសមាសវែថុដថ្ទនទៀែតដរ។ នពាលេឺ វែថុតដល

រែូវបនងកើែនឡើងទំងប៉ុ ម ន ហាក្់ ដូចជាធ្លែុនៅក្នុងក្បួនផលិែក្រន ោះតដរ។ ក្៍ប៉ុតនត ក្បួន

ផលិែក្រខ្ុសពីសមាសវែថុដថ្ទនទៀែនៅរែង់ ថា ធ្លែុរបស់ក្បួនផលិែក្រ េឺជាវែថុតដលមិនទន់

រែូវានបនងកើែនៅនឡើយ ធ្លែុទំងន ោះរែូវបនងកើែនឡើងតែនៅនពលតដលផលិែក្ររែូវយក្នៅ

នរបើជាមួយនឹងបញ្
ា for ឬក្បួនមានស្រាប់ ន្មោះ next តែប៉ុនណាណោះ។ ដូចននោះក្បួនផលិែក្រ

មានលក្ខណ្ៈជា សមាសវែថុអរូបី (iterable object) តដលមានធ្លែុជាវែថុមិនទន់ រែូវានបនងកើែ

នៅនឡើយ នហើយធ្លែុទំងន ោះនលចនចញមានរូបរាងនឡើងតែនៅនពលណាផលិែក្ររបស់វា

រែូវានយក្នៅនរបើ ជាមួយនឹងបញ្
ា for ឬក្បួនមានស្រាប់ន្មោះ next តែប៉ុនណាណោះ។ ដូចននោះ

ការបនងកើែក្បួនផលិែក្រ រែូវការសែិែិចជាងការបនងកើែសមាសវែថុធមមតនផេងៗនទៀែ តដល

អាចមានធ្លែុ មានចំនួននសមើោន។ ពីនរពាោះក្បួនផលិែក្រេឺជាសមាសវែថុអរូបីតដលោមនធ្លែុនៅ


ទំព័រ 282

នឡើយ។ ក្៍ប៉ុតនតផុយនៅវ
ទ ិញ ការយក្ក្បួនផលិែក្រមក្នរបើ ជំនួសឲ្យសមាសវែថុនផេងៗនទៀែ នធវើ

ឲ្យនលបឿនចុោះយឺែ នរពាោះក្បួនផលិែក្ររែូវការរយៈដ៍ចាំាច់ណាមួយនដើមបីបនងកើែក្ធ្លែុរបស់វា

នបើសិនជានយើងយក្ថានក្់មានស្រាប់ន្មោះ dict តដលជាថានក្់ថ្នរេប់វែថុទំងឡាយណាតដល

ជាវច នុរក្ម មក្ពិនិែយនមើលមតងនទៀែ នយើងនឹងន ើញថា មានវ ិធីមួយចំនួននៅក្នុងថានក្់ន ោះ

ផតល់ទធផលជាសមាសវែថុអរូបីម៉ាងតដលមានលក្ខណ្ៈដូចជាក្បួនផលិែក្រតដរ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖

សងវិចរាក់ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "ណោហុ ឤ":25, "រាក់ចណំ ណញ":100}

ធារុ គូអឥូសី = សងវិចរាក់.items()

កូ ឞណោឥអឥូសី = សងវច
ិ រាក់.keys()

រថ្ឣលអឥូសី = សងវិចរាក់.values()

for ឧរថុ in ធារុ គូអឥូសី :

print(ឧរថុ)

for ឧរថុ in កូ ឞណោឥអឥូសី :

print(ឧរថុ)

for ឧរថុ in រថ្ឣលអឥូសី :

print(ឧរថុ)

វ រាក់.items() េឺជាការយក្វ ិធីន្មោះ items នៅក្នុងថានក្់មានស្រាប់ ន្មោះ


ធារុគូអឥូសី = សងិច

dict មក្នរបើនដើមបីបនងកើែសមាសវែថុអរូបីមួយមានន្មោះថា ធ្លែុេូអរូបី តដលមានធ្លែុជាធ្លែុេូ

នៅក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ ។


ទំព័រ 283

វ រាក់.keys() េឺជាការយក្វ ិធីន្មោះ keys នៅក្នុងថានក្់មានស្រាប់ ន្មោះ


កូឞណោឥអឥូសី = សងិច

dict មក្នរបើនដើមបីបនងកើែសមាសវែថុអរូបីមួយមានន្មោះថា ក្ូននារអរូបី តដលមានធ្លែុជា

ក្ូននារនៅក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ ។

រថ្ឣអ វ រាក់.values() េឺជាការយក្វ ិធី ន្មោះ values នៅក្នុងថានក្់មានស្រាប់ ន្មោះ


ល ឥូសី = សងិច

dict មក្នរបើនដើមបីបនងកើែសមាសវែថុអរូបីមួយមានន្មោះថា ែថ្មលអរូបី តដលមានធ្លែុជាែថ្មលនៅ

ក្នុងវច នុរក្មន្មោះ បងវិចរាក្់ ។

កម្មង អឈេរ រ ូបមនត

ក្រមងអនងររូបមនត (list comprehension) េឺជាក្រមងអនងរតដលមានទរមង់ជារូបមនតសរមាប់

បនងកើែក្រមងអនងរងមីមួយនទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងលមី = [ឧរថុ + 10 for ឧរថុ in (1, 2, 3)]

print(ករឣងលម)ី

ករឣងលី ម = [ឧរុ ថ + 10 for ឧរុ ថ in (1, 2, 3)] េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអនងរន្មោះ ក្រមងងមី

មួយនដាយនរបើ ក្រមងអនងររូបមនត [វែថុ + 10 for វែថុ in (1, 2, 3)] ។

នៅក្នុងក្រមងអនងររូបមនតខាងនលើននោះ ឧរុ ថ + 10 for ឧរុ ថ in (1, 2, 3) េឺ ជារូបមនតសរមាប់បនងកើែ

ក្រមងអនងរងមីនផេងៗនទៀែ។ ក្ននាមរបមាណ្វ ិធី ឧរុ ថ + 10 េឺ ជាក្ននាមរបមាណ្វ ីធីតដលផតល់

លទធផលជាធ្លែុមួយសរមាប់ក្រមងអនងរងមី។ នហើយបញ្
ា for នៅក្នុងន ោះ េឺជាបញ្
ា នរបើ

សរមាប់ពិនិែយនមើលធ្លែុថ្នក្រមងនងរ (1, 2, 3) ។ នហើយរេប់ការពិនិែយនមើលធ្លែុណាមួយនៅ


ទំព័រ 284

ក្នុងក្រមងនងរ (1, 2, 3) ំឲ្យានធ្លែុ មួយសរមាប់ក្រមងអនងរងមី។ ធ្លែុន ោះេឺ ជាលទធផល

ានមក្ពីក្ននាមរបមាណ្វ ិធី ឧរុ ថ + 10 ។

ក្មមវ ិធីខាងនលើននោះអាចរែូវសរនសរតមរនបៀបម៉ាងនទៀែដូចខាងនរកាមននោះ៖

ករឣងលមី = [ ]

for ឧរថុ in (1, 2, 3) :

ករឣងលម.ី append(ឧរថុ + 10)

print(ករឣងលម)ី

នៅក្នុងក្រមងអនងររូបមនត នរៅពី ក្ននាមរបមាណ្វ ិធី នយើងក្៍ អាចនរបើ ក្បួននផេងៗនទៀែាន

តដរសរមាប់បនងកើែក្រមងអនងរងមី។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def ហឦសូ ក(ឧរថុ) :

return ឧរថុ + 10

ករឣងលមី = [ហឦសូ ក(ឧរថុ) for ឧរថុ in (1, 2, 3)]

print(ករឣងលម)ី

ករឣងលី ម = [ហឦសូក(ឧរុ )ថ for ឧរុ ថ in (1, 2, 3)] េឺជាការនរបើរាស់ក្រមងអនងររូបមនតមួយនដើមបី

បនងកើែក្រមងអនងរន្មោះ ក្រមងងមី មួយ។ នៅក្នុងក្រមងអនងររូបមនតន ោះ មានការយក្ក្បួន

ន្មោះ ផលបូក្ មក្នរបើនដើមបីបនងកើែធ្លែុសរមាប់ក្រមងអនងរងមី។

នលើសពី ននោះនទៀែ នយើងអាចនរបើ បញ្


ា if មួយនទៀែនៅក្នុងក្រមងអនងររូបមនតនដើមបីនធវើ

ការនរជើសនរ ើសនផេងៗនៅក្នុងការបនងកើែធ្លែុសរមាប់ក្រមងអនងរងមី។ ពិនិែយក្មមវ ិធីខាងនរកាម

ននោះ៖
ទំព័រ 285

def ហឦសូ ក(ឧរថុ) :

return ឧរថុ + 10

ករឣងលមី = [ហឦសូ ក(ឧរថុ) for ឧរថុ in (1, 2, 3) if ឧរថុ != 2]

print(ករឣងលម)ី

ករឣងលី ម = [ហឦសូក(ឧរុ )ថ for ឧរុ ថ in (1, 2, 3) if ឧរុ ថ != 2] េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមងអនង

ន្មោះ ក្រមងងមី មួយនដាយនរបើក្រមងអនងររូបមនតមួយតដលមានបញ្


ា if នៅក្នុងន ោះសរមាប់

នធវើការនរជើសនរ ើសយក្ធ្លែុ នៅក្នុងក្រមងនងរ (1, 2, 3) ។

មួយវ ិញនទៀែ សមាសវែថុតដលនយើងយក្មក្នរបើ ជាមួយនឹងបញ្


ា for នៅក្នុងក្រមងអនងរ

រូបមនត អាចជាសមាសវែថុរបនភទណាក្៍ានតដរ វាអាចជាសមាសវែថុអរូបីក្៍ានតដរ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

def ហឦសូ ក(ឧរថុ) :

return ឧរថុ + 10

def ហឦិរកឣម() :

for ឧរថុ in (1, 2, 3) :

yield ឧរថុ

ករឣងលមី = [ហឦសូ ក(ឧរថុ) for ឧរថុ in ហឦិរកឣម() if ឧរថុ != 2]

print(ករឣងលម)ី

ករឣងលី ម = [ហឦសូក(ឧរុ )ថ for ឧរុ ថ in ហឦិរកឣ(ម ) if ឧរុ ថ != 2] េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែក្រមង

អនងរន្មោះ ក្រមងងមី មួយនដាយនរបើក្រមងអនងររូបមនតមូយតដលនៅក្នុងន ោះមានការ


ទំព័រ 286

នរបើរាស់សមាសវែថុអរូបី តដលលទធផលានមក្ពីការយក្ក្បួនផលិែក្រន្មោះ ផលិែក្មម

មក្នរបើ ។

កឈនោម ផលិត្ករ

ក្ននាមផលិែក្រ (generator expression) េឺ ជាក្ននាមមួយតដលផតល់លទធផលជាវែថុ

តដលមានរបនភទជាផលិែក្រ។ បញ្
ា ទំងឡាយនៅក្នុងក្ននាមផលិែក្រ េឺជារូបមនតសរមាប់

បនងកើែវែថុមួយចំនួន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ឡុ ឣព = (ឧរថុ + 10 for ឧរថុ in [1, 2, 3])

print(ឡុ ឣ)ព

ឡុឣព = (ឧរុ ថ + 10 for ឧរុ ថ in [1, 2, 3]) េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែវែថុមួយតដលជាផលិែក្រមាន

ន្មោះថា ពុមព នដាយយក្ក្ននាមផលិែក្រ (វែថុ + 10 for វែថុ in [1, 2, 3]) មក្នរបើ។

នបើសិនណាជានយើងយក្ផលិែក្រតដលរែូវានបនងកើែនឡើងនដាយក្ននាមផលិែក្រ មក្នរបើ

ជាមួយនឹងបញ្
ា for នយើងនឹងានលទធផលដូចខាងនរកាមននោះ៖

ឡុ ឣព = (ឧរថុ + 10 for ឧរថុ in [1, 2, 3])

for ឧរថុ in ឡុ ឣព :

print(ឧរថុ)

for ឧរុ ថ in ឡុឣ ព : េឺ ជាការយក្ផលិែក្រន្មោះ ពុ មព មក្នរបើ ជាមួ យនឹ ងបញ្


ា for ។ របការននោះ

បណា
ត លឲ្យវែថុមួយចំនួនតដលរែូវចាែ់ ទុក្ថាជាធ្លែុរបស់ក្ននាមផលិែក្រ រែូវានបនងកើែ

នឡើង។
ទំព័រ 287

នយើងន ើញថា ធ្លែុទំងអស់តដលរែូវានបនងកើែនឡើងនដាយការយក្ផលិែក្រមក្នរបើជាមួយ

នឹងបញ្
ា for េឺ រែូវានបនងកើែនឡើងនៅតមរូបមនតតដលមាននៅក្នុងក្ននាមផលិែក្រតដល

ានបនងកើែផលិែក្រន ោះ។

សរុបមក្ នយើងសនងកែន ើញថា ក្ននាមផលិែក្រនិងក្រមងអនងររូបមនតមានទរមង់ដូចោន

នបោះបិទ។ នពាលេឺ នៅក្នុងវែថុទំងពីរននោះ សុទតធ ែមានក្ននាមរបមាណ្វ ិធី មួយនិងបញ្


ា for

មួយដូចោន។ ក្៍ប៉ុតនត ភាពខ្ុសោនរវាងក្ននាមផលិែក្រនិងក្រមងអនងររូបមនតេឺសិែ


ថ នៅរែង់ ថា

ក្រមងអនងររូបមនតផតល់លទធផលជាក្រមងអនងរងមីមួយ ចំតណ្ក្ឯក្ននាមផលិែក្រវ ិញ ផតល់

លទធផលជាផលិែក្រមួយតដលអាចរែូវយក្នៅនរបើជាមួយនឹងបញ្
ា for នដើមបីបនងកើែវែថុនផេងៗ

នទៀែ។

ដូចននោះ នបើសិនណាជានយើងចង់ បនងកើែក្រមងអនងរងមីមួយ នយើងរែូវនរបើ រាស់ក្រមងអនងរ

រូបមនត តែនបើនយើងចង់ បនងកើែផលិែក្រណាមួយវ ិញ នយើងរែូវនរបើ រាស់ក្ននាមផលិែក្រ។

វិធី ពិឈសស

ក្នលងមក្នយើងានយក្ថានក្់មានស្រាប់មួយចំនួនមក្ពិនិែយនមើល នហើយនយើងានន ើញថា

នៅក្នុងថានក្់ទំងន ោះ មានវ ិធី មួយចំនួនតដលជាន្មោះមានសញ្ដ _ ននោះពីរនៅអមសងខាង។

វ ិធី ទំងន ោះេឺជា វ ិធីពិនសស (special method) តដលរែូវយក្នៅនរបើជាសវ័យរបវែតិនៅក្នុង

កាលៈនទសៈដ៍ ជាក្់លាក្់ណាមួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)
ទំព័រ 288

ល ក់ = 1000 េឺការបនងកើែចំនួនេែ់នលខ្ 1000 មួយមានន្មោះថា ថ្ងលលក្់ តដលជាសិសេ


ថ្លឦ

ត លឲ្យាថបនិក្តដលជាវ ិធីពិនសសន្មោះ
ថ្នថានក្់មានស្រាប់ ន្មោះ int ។ របការននោះបណា

__init__ នៅក្នុងថានក្់ន ោះរែូវយក្មក្នរបើជាសវ័យរបវែតិ។

ថ្លវ
ល ិញ = 900 េឺការបនងកើែចំនួនេែ់នលខ្ 900 មួយមានន្មោះថា ថ្ងលទិញ តដលជាសិសេថ្ន

ត លឲ្យាថបនិក្តដលជាវ ិធី ពិនសសន្មោះ


ថានក្់មានស្រាប់ ន្មោះ int ។ របការននោះបណា

__init__ នៅក្នុងថានក្់ន ោះរែូវយក្មក្នរបើជាសវ័យរបវែតិ។

រាក់ចណំ ណញ = ថ្លឦ
ល ក់ - ថ្លវ
ល ិ ញ េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្

វ ិធី ដក្រវាងវែថុន្មោះ ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ ។ របការននោះបណា


ត លឲ្យវ ិធី ពិនសសន្មោះ

__sub__ នៅក្នុងថានក្់មានស្រាប់ន្មោះ int រែូវយក្មក្នរបើជាសវ័យរបវែតិ នហើយវែថុន្មោះ

ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ រែូវានផតល់ជាដំណ្ឹងនរៀងោនឲ្យនៅវ ិធីពិនសសន ោះ។ លទធផល

ានមក្ពីការយក្វ ិធីពិនសសន ោះមក្នរបើ េឺ ជាវែថុន្មោះ រាក្់ចំនណ្ញ តដលជាផលដក្រវាង

វែថុន្មោះ ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ ។

print(រាក់ចណំ ណញ) េឺជាការយក្ក្បួនមានស្រាប់ ន្មោះ print មក្នរបើ នដើ មបីសរនសរវែថុន្មោះ

ត លឲ្យវ ិធី ពិនសសន្មោះ __str__ នៅក្នុង


រាក្់ចំនណ្ញ នៅនលើបងអួចបឋម។ របការននោះ បណា

ថានក្់មានស្រាប់ ន្មោះ int រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ នហើយវែថុន្មោះ រាក្់ចំនណ្ញ រែូវ

ផតល់ជាដំណ្ឹងសរមាប់វ ិធី ពិនសសន ោះ។ ជាលទធផល វែថុន្មោះ រាក្់ចំនណ្ញ រែូវានតក្ឲ្យ

នៅជាក្រមងអក្េរតដលរែូវយក្នៅសរនសនៅនលើបងអួចបឋម។
ទំព័រ 289

នយើងន ើញថា វ ិធីពិនសសទំងប៉ុ ម នខាងនលើននោះរែូវយក្នៅនរបើ ជាសវ័យរបវែតិនៅក្នុង

កាលៈនទសៈណាមួយដ៍ជាក្់លាក្់។ ក្៍ ប៉ុតនត នលើសពីននោះនទៀែ នយើងក្៍ អាចយក្វ ិធី ពិនសសទំង

ន ោះមក្នរបើនដាយផ្ទទល់ានតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ថ្លលឦក់ = 1000

ថ្លលវិញ = 900

រាក់ចណំ ណញ = int.__sub__(ថ្លលឦក់, ថ្លលវិញ)

ឦវធហឦ = រាក់ចណំ ណញ.__str__()

print(ឦវធហឦ)

រាក់ចណំ ណញ = int.__sub__(ថ្លឦ
ល ក់, ថ្លវ
ល ិញ) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យ

យក្វ ិធីពិនសសន្មោះ __sub__ នៅក្នុងថានក្់មានស្រាប់ន្មោះ int មក្នរបើ នដើមបីនធវើរបមាណ្វ ិធី

ដក្រវាងចំនួនេែ់ន្មោះ ថ្ងលលក្់ និង ថ្ងលទិញ ។

ធ ឦ = រាក់ចណំ ណញ.__str__() េឺ ជាការយក្វ ិធីពិនសសន្មោះ __str__ នៅក្នុងថានក្់មាន


ឦវហ

ស្រាប់ន្មោះ int មក្នរបើ នដើមបីតក្ចំនួនេែ់ន្មោះ រាក្់ចំនណ្ញ ឲ្យនៅជាក្រមងអក្េរ។

ដូចោនតដរ នបើ សិនជានយើងបនងកើែថានក្់មួយតដលនៅក្នុងន ោះមានវ ិធីពិនសសដូចខាងនលើននោះ

នៅនពលតដលនយើងយក្សិសេថ្នថានក្់ ទំងន ោះនៅនរបើនៅក្នុងកាលៈនទសៈដូចខាងនលើននោះ

វ ិធី ពិនសសទំងន ោះនឹងរែូវយក្នៅនរបើជាសវ័យរបវែតិតមរនបៀបដូចខាងនលើននោះតដរ។ ពិនិែយ

ក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់
ទំព័រ 290

def __sub__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ - សិសសោោ ំ.រាក់

return ឦវធហឦ

def __str__(សិសស) :

return str(សិសស.រាក់)

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលវិញ = វឹករាក់(900)

រាក់ចណំ ណញ = ថ្លលឦក់ - ថ្លលវិញ

print(រាក់ចណំ ណញ)

def __init__(សិសស, រាក់=0) : េឺ ជាការបនងកើែាថបនិ ក្តដលជាវ ិធី ពិនសសមានន្មោះថា

__init__ ក្នុងនោលបំណ្ងបនងកើែសមបែតិន្មោះ រាក្់ ទុក្នៅក្នុងសិសេតដលនឹងរែូវបនងកើែ

នឡើងនៅនពលតដលថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្នៅនរបើ។

វ , សិសសោោ)ំ : េឺជាការបនងកើែវ ិធីពិនសសន្មោះ __sub__ តដលនឹងរែូវ


def __sub__(សិសសណឆង

យក្នៅនរបើជាសវ័យរបវែតិនៅនពលណាតដលមានការនធវើរបមាណ្វ ិធី ដក្រវាងសិសេថ្នថានក្់

ន្មោះ ទឹក្រាក្់ ។

def __str__(សិសស) : េឺ ជាការបនងកើែវ ិធីពិនសសន្មោះ __str__ តដលនឹ ងរែូវយក្នៅនរបើជា

សវ័យរបវែតិនៅនពលតដលសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្នៅនរបើជាដំណ្ឹងសរមាប់

ក្បួនមានស្រាប់ ន្មោះ print ។


ទំព័រ 291

ល ក់ = វឹករាក់(1000) េឺ ជាការយក្ថានក្់ន្មោះ ទឹក្រាក្់ មក្នរបើនដើមបីបនងកើែសិសេ


ថ្លឦ

ន្មោះ ថ្ងលលក្់ មានក្់។ របការននោះ បណា


ត លឲ្យាថបនិក្ថ្នថានក្់ន្មោះ ទឹក្រាក្់ រែូវានយក្

មក្នរបើ ជាសវ័យរបវែតិ តដលនធវើឲ្យសមបែតិន្មោះ រាក្់ តដលជានលខ្ 1000 មួយរែូវានបនងកើែ

នឡើងនិងទុក្នៅក្នុងសិសេន្មោះ ថ្ងលលក្់ ន ោះ។

ល ិញ = វឹករាក់(900) េឺជាការយក្ថានក្់ន្មោះ ទឹក្រាក្់ មក្នរបើនដើមបីបនងកើែសិសេន្មោះ


ថ្លវ

ថ្ងលទិញ មានក្់នទៀែ។ របការននោះ បណា


ត លឲ្យាថបនិក្ថ្នថានក្់ន្មោះ ទឹក្រាក្់ រែូវានយក្មក្

នរបើជាសវ័យរបវែតិ តដលនធវើឲ្យសមបែតិន្មោះ រាក្់ តដលជានលខ្ 900 មួយរែូវានបនងកើែនឡើង

និងទុក្នៅក្នុងសិសេន្មោះ ថ្ងលទិញ ន ោះ។

រាក់ចណំ ណញ = ថ្លឦ
ល ក់ - ថ្លវ
ល ិ ញ េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្

វ ិធី ដក្រវាងវែថុន្មោះ ថ្ងលលក្់ និងវែថុន្មោះ ថ្ងលទិញ តដលជាសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។

ត លឲ្យវ ិធី ន្មោះពិនសសន្មោះ __sub__ រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ នហើយ


របការននោះបណា

វែថុទំងពីរន ោះរែូវានផតល់ជាដំណ្ឹងសរមាប់វ ិធី ពិនសសន ោះនរៀងោន។

print(រាក់ចណំ ណញ) េឺជាការយក្ក្បួនមានស្រាប់ ន្មោះ print មក្នរបើនដាយផតល់វែថុន្មោះ

រាក្់ចំនណ្ញ ជាដំណ្ឹងសរមាប់ក្បួនន ត លឲ្យវ ិធី ពិនសសន្មោះ __str__


ោះ។ របការននោះបណា

ថ្នថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើជាសវ័យរបវែតិ នហើយក្រមងអក្េរតដលជាលទធផល

ានមក្ពីវ ិធីននោះ រែូវយក្នៅសរសរនៅនលើបងអួចបឋម។

នរៅពីវ ិធីពិនសសទំងប៉ុ ម នខាងនលើននោះ នៅមានវ ិធីពិនសសជានរចើននទៀែ តដលនយើងអាច

បនងកើែនឡើងសរមាប់នរបើនៅក្នុងកាលៈនទសៈនផេងៗនទៀែ។ វ ិធី ពិនសសទំងន ោះមានដូចែនៅ

ននោះ៖
ទំព័រ 292

វិ ធីព្ិបសសសរមាប់ររមាណវិ ធីនព្វនត

វ ិធី ពិនសសសំខាន់នរបើសរមាប់នធវើរបមាណ្វ ិធី នពវនមា


ត ន៖

__add__(សិសសណឆវង, សិសសោោ ំ)

__sub__(សិសសណឆវង, សិសសោោ ំ)

__mul__(សិសសណឆវង, សិសសោោ ំ)

__truediv__(សិសសណឆវង, សិសសោោ ំ)

__floordiv__(សិសសណឆវង, សិសសោោ ំ)

__mod__(សិសសណឆវង, សិសសោោ ំ)

__pow__(សិសសណឆវង, សិសសោោ ំ)

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

def __add__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ + សិសសោោ ំ.រាក់

return ឦវធហឦ

def __sub__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ - សិសសោោ ំ.រាក់

return ឦវធហឦ
ទំព័រ 293

def __mul__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ * សិសសោោ ំ.រាក់

return ឦវធហឦ

def __truediv__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ / សិសសោោ ំ.រាក់

return ឦវធហឦ

def __floordiv__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ // សិសសោោ ំ.រាក់

return ឦវធហឦ

def __mod__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ % សិសសោោ ំ.រាក់

return ឦវធហឦ

def __pow__(សិសសណឆវង, សិសសោោ ំ) :

ឦវធហឦ = វឹករាក់()

ឦវធហឦ.រាក់ = សិសសណឆវង.រាក់ ** សិសសោោ ំ.រាក់

return ឦវធហឦ

def __str__(សិសស) :

return str(សិសស.រាក់)
ទំព័រ 294

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលវិញ = វឹករាក់(900)

print(ថ្លលឦក់ + ថ្លលវិញ)

print(ថ្លលឦក់ - ថ្លលវិញ)

print(ថ្លលឦក់ * ថ្លលវិញ)

print(ថ្លលឦក់ / ថ្លលវិញ)

print(ថ្លលឦក់ // ថ្លលវិញ)

print(ថ្លលឦក់ % ថ្លលវិញ)

print(ថ្លលឦក់ ** ថ្លលវិញ)

ល ក់ + ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីបូក្រវាង

សិសេថ្នថានក្់ ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __add__ នៅក្នុងថានក្់

ន ោះរែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ល ក់ - ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីដក្រវាង

សិសេថ្នថានក្់ ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __sub__ នៅក្នុងថានក្់ន ោះ

រែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ល ក់ * ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីេុនរវាង

សិសេថ្នថានក្់ ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __mul__ នៅក្នុងថានក្់

ន ោះរែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។
ទំព័រ 295

ល ក់ / ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីតចក្រវាង

សិសេថ្នថានក្់ ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __truediv__ នៅក្នុងថានក្់

ន ោះរែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ល ក់ // ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីតចក្បនថយ

រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __floordiv__ នៅក្នុង

ថានក្់ន ោះរែូវយក្មក្នរបើ នដាយសវ័យរបវែតិ។

ល ក់ % ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីតចក្យក្

សំណ្ល់រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __mod__

នៅក្នុងថានក្់ន ោះរែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ល ក់ ** ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធីស័យ
វ េុន

រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __pow__ នៅក្នុង

ថានក្់ន ោះរែូវយក្មក្នរបើ នដាយសវ័យរបវែតិ។

ផទុយមក្វ ិញ នបើនៅក្នុងថានក្់ណាមួយោមនវ ិធីពិនសសទំងអស់ន ោះនទ រាល់ការាក្លបងយក្

សិសេថ្នថានក្់ ន ោះមក្នធវើរបមាណ្វ ិធី នពវនត នឹងបណា


ត លឲ្យភាពមិនរបរក្ែីនក្ើែមាននឡើង។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

def __str__(សិសស) :
ទំព័រ 296

return str(សិសស.រាក់)

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលវិញ = វឹករាក់(900)

print(ថ្លលឦក់ + ថ្លលវិញ)

ល ក់ + ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការាក្លបងយក្សិសេថ្នថានក្់

ន្មោះ ទឹក្រាក្់ មក្នធវើរបមាណ្វ ិធីបូក្។ នដាយនៅក្នុងថានក្់ន ោះោមនវ ិធីពិនសសន្មោះ

__add__ ដូនចនោះការាក្លបងយក្សិសេថ្នថានក្់ន ោះមក្នធវើរបមាណ្វ ិធី បូក្បងកឲ្យមានភាព

មិនរបរក្ែីនក្ើែនឡើង។

វិ ធីព្ិបសសសរមាប់ររមាណវិ ធីបររៀបបធៀប

វ ិធី ពិនសសនរបើ សរមាប់នធវើរបមាណ្វ ិធីនរបៀបនធៀបមាន៖

__lt__(សិសសណឆវង, សិសសោោ ំ)

__le__(សិសសណឆវង, សិសសោោ ំ)

__eq__(សិសសណឆវង, សិសសោោ ំ)

__ne__(សិសសណឆវង, សិសសោោ ំ)

__gt__(សិសសណឆវង, សិសសោោ ំ)

__ge__(សិសសណឆវង, សិសសោោ ំ)

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់
ទំព័រ 297

def __lt__(សិសសណឆវង, សិសសោោ ំ) :

return (សិសសណឆវង.រាក់ < សិសសោោ ំ.រាក់)

def __le__(សិសសណឆវង, សិសសោោ)ំ :

return (សិសសណឆវង.រាក់ > សិសសោោ ំ.រាក់)

def __eq__(សិសសណឆវង, សិសសោោ ំ) :

return (សិសសណឆវង.រាក់ == សិសសោោ ំ.រាក់)

def __ne__(សិសសណឆវង, សិសសោោ ំ) :

return (សិសសណឆវង.រាក់ != សិសសោោ ំ.រាក់)

def __gt__(សិសសណឆវង, សិសសោោ)ំ :

return (សិសសណឆវង.រាក់ > សិសសោោ ំ.រាក់)

def __ge__(សិសសណឆវង, សិសសោោ ំ) :

return (សិសសណឆវង.រាក់ >= សិសសោោ ំ.រាក់)

def __str__(សិសស) :

return str(សិសស.រាក់)

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលវិញ = វឹករាក់(900)

print(ថ្លលឦក់ > ថ្លលវិញ)

print(ថ្លលឦក់ < ថ្លលវិញ)

print(ថ្លលឦក់ == ថ្លលវិញ)

print(ថ្លលឦក់ != ថ្លលវិញ)

print(ថ្លលឦក់ >= ថ្លលវិញ)


ទំព័រ 298

print(ថ្លលឦក់ <= ថ្លលវិញ)

ល ក់ > ថ្លវ
print(ថ្លឦ ល ិញ) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ > រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __gt__ នៅក្នុងថានក្់ ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើជាសវ័យរបវែតិ។

ល ក់ < ថ្លវ
print(ថ្លឦ ល ិញ) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ < រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __lt__ នៅក្នុងថានក្់ ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើជាសវ័យរបវែតិ។

ល ក់ == ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ == រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __eq__ នៅក្នុងថានក្់ ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ។

ល ក់ != ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ != រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __ne__ នៅក្នុងថានក្់ ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ។

ល ក់ >= ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ >= រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __ge__ នៅក្នុងថានក្់ ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ ជាសវ័យរបវែតិ។

ល ក់ <= ថ្លវ
print(ថ្លឦ ល ិ ញ) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នរបៀបនធៀបនដាយនរបើរបមាណ្សញ្ដ <= រវាងសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __le__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើជាសវ័យរបវែតិ។


ទំព័រ 299

វិ ធីព្ិបសសសរមាប់សមាសវតថុ

វ ិធី ពិនសសសំខាន់ៗសរមាប់សមាសវែថុមាន៖

__len__(សិសស)

__getitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ)

__setitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ, ធារុ ឬរថ្ឣល)

__delitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ)

__iter__(សិសស)

__contain__(សិសស, ឧរថុ)

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

សងវិចរាក់ = {"ថ្លលឦក់":1000, "ថ្លលវិញ":900, "ណោហុ ឤ":25}

class សំណុំរាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

def __len__(សិសស) :

return len(សិសស.រាក់)

def __getitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ) :

return សិសស.រាក់[ណឦខណឥៀងឬកូ ឞណោឥ]

def __setitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ, ធារុ ឬរថ្ឣល) :

សិសស.រាក់[ណឦខណឥៀងឬកូ ឞណោឥ] = ធារុ ឬរថ្ឣល

def __delitem__(សិសស, ណឦខណឥៀងឬកូ ឞណោឥ) :


ទំព័រ 300

del សិសស.រាក់[ណឦខណឥៀងឬកូ ឞណោឥ]

def __iter__(សិសស) :

return iter(សិសស.រាក់)

def __contains__(សិសស, ឧរថុ) :

return (ឧរថុ in សិសស.រាក់)

def __str__(សិសស) :

return str(សិសស.រាក់)

សំណុំរាក់ឥកសុ ី = សំណុំរាក់(សងវិចរាក់)

print(len(សំណុំរាក់ឥកសុ ))

print(សំណុំរាក់ឥកសុ ី["ថ្លលឦក់"])

សំណុំរាក់ឥកសុ ី["ថ្លលឦក់"] = 5000

print(សំណុំរាក់ឥកសុ ី)

del សំណុំរាក់ឥកសុ ី["ណោហុ ឤ"]

print(សំណុំរាក់ឥកសុ ី)

for ឧរថុ in សំណុំរាក់ឥកសុ ី :

print(ឧរថុ)

print("ណោហុ ឤ" in សំណុំរាក់ឥកសុ )ី

ំ ុ ំ រាក់ឥកសុី)) េឺជាបញ្
print(len(សណ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់

ន្មោះ len មក្នរបើ នដាយផតល់វែថុន្មោះ សំណ្ុំរាក្់រក្សុី តដលជាសិសេថ្នថានក្់ន្មោះ

សំណ្ុំរាក្់ ឲ្នៅក្បួនន ោះ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __len__ នៅក្នុងថានក្់ន្មោះ

សំណ្ុំរាក្់ ន ោះរែូវយក្មក្នរបើជាសវ័យរបវែតិ។
ទំព័រ 301

ំ ុ ំ រាក់ឥកសុី["ថ្លឦ
print(សណ ល ក់"]) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យនធវើរបមាណ្វ ិធី

នលខ្នរៀងជាមួយនឹងសិសេន្មោះ សំណ្ុំរាក្់រក្សុី ។ របការននោះនធវើឲ្យវ ិធី ពិនសសន្មោះ

__getitem__ នៅក្នុងថានក្់ន្មោះ សំណ្ុំរាក្់ រែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ំ ុ ំ រាក់ឥកសុី["ថ្លឦ
សណ ល ក់"] = 5000 េឺជាបញ្
ា ែរមូវឲ្យនធវើរបមាណ្វ ិធីនលខ្នរៀងជាមួយនឹង

សិសេន្មោះ សំណ្ុំរាក្់រក្សុី នដើមបីផ្ទលស់បូរែថ្មល


ត ជាប់នឹងក្ូននារ ថ្ងលលក្់ ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __setitem__ នៅក្នុងថានក្់ន្មោះ សំណ្ុំរាក្់ រែូវានយក្មក្នរបើនដាយ

សវ័យរបវែតិ។

ំ ុ ំ រាក់ឥកសុី["ណោហុ ឤ"] េឺជាការនរបើបញ្


del សណ ា del ជាមួយនឹងសិសេន្មោះ

សំណ្ុំរាក្់រក្សុី នដើមបីលុបែថ្មលជាប់ នឹងក្ូននារ នាហ៊ុយ ។ របការននោះនធវើឲ្យវ ិធីពិនសស

ន្មោះ __delitem__ នៅក្នុងថានក្់ន្មោះ សំណ្ុំរាក្់ រែូវយក្មក្នរបើនដាយសវ័យរបវែតិ។

ំ ុ ំ រាក់ឥកសុី : េឺ ជាការនរបើបញ្
for ឧរុ ថ in សណ ា for ជាមួយនឹងសិសេន្មោះ សំណ្ុំរាក្់រក្សុី

។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __iter__ នៅក្នុងថានក្់ន្មោះ សំណ្ុំរាក្់ រែូវយក្មក្នរបើ

នដាយសវ័យរបវែតិ។

ំ ុ ំ រាក់ឥកសុី) េឺ ជាបញ្
print("ណោហុ ឤ" in សណ ា តដលនៅក្នុងន ោះមានការនធវើរបមាណ្វ ិធីរក្

ធ្លែុនដាយនរបើ របមាណ្សញ្ដ in ជាមួយនឹងសិសេន្មោះ សំណ្ុំរាក្់រក្សុី ។ របការននោះនធវើ

ឲ្យវ ិធីពិនសសន្មោះ __contains__ នៅក្នុងថានក្់ន្មោះ សំណ្ុំរាក្់ រែូវយក្មក្នរបើនដាយ

សវ័យរបវែតិ។

វិ ធីព្ិបសសសរមាប់សិសស

វ ិធី ពិនសសសំខាន់ៗសរមាប់សិសេមានដូចខាងនរកាមននោះ៖
ទំព័រ 302

__call__(សិសស)

__getattribute__(សិសស, សឣបរោ)ិ

__setattr__(សិសស, សឣបរោ,ិ ឧរថុ)

__delattr__(សិសស, សឣបរោ)ិ

__dir__(សិសស)

__del__(សិសស)

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

def __call__(សិសស) :

print("សិសសថ្ឞថានក់ណ្មោះ វឹករាក់ ររូឧាឞឤកណៅណរសដូ


ើ ចជាកបួឞ។")

def __getattribute__(សិសស, សឣបរោិ) :

print("កាឥស៉ាុឞស៉ាងឤកសឣបរោណ្
ិ ម ោះ", សឣបរោ,ិ "ណៅណរស")

def __setattr__(សិសស, សឣបរោ,ិ ឧរថុ) :

print("កាឥស៉ាុឞស៉ាងសណងកើរសឣបរោណ្
ិ ម ោះ", សឣបរោ,ិ "កដឦជា", ឧរថុ)

def __delattr__(សិសស, សឣបរោ)ិ :

print("កាឥស៉ាុឞស៉ាងឦុ សសឣបរោណ្
ិ ម ោះ", សឣបរោ)ិ

def __dir__(សិសស) :

return [1, 2, 3]
ទំព័រ 303

def __del__(សិសស) :

print("សិសសថ្ឞថានក់ណ្មោះ វឹករាក់ ររូឧាឞឦុ សណចាឦ។")

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលឦក់()

ថ្លលឦក់.រាក់

del ថ្លលឦក់.រាក់

print(dir(ថ្លលឦក់))

ថ្លលឦក់ = 2000

ល ក់ = វឹករាក់(1000) េឺ ជាការបនងកើែសិសេន្មោះ ថ្ងលលក្់ នដាយយក្ថានក្់ន្មោះ


ថ្លឦ

ទឹក្រាក្់ មក្នរបើ ។ របការននោះនធវើឲ្យាថបនិក្ថ្នថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ តដលជា

ក្តតែរមូវឲ្យអនុវែតបញ្
ា សិសេ.រាក្់ = រាក្់ តដលជាបញ្
ា ែរមូវឲ្យបនងកើែសមបែតិន្មោះ

រាក្់ ទុក្នៅក្នុងសិសេន្មោះ ថ្ងលលក្់ ន ោះ។ នដាយនៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ មានវ ិធី

ពិនសសន្មោះ __setattr__ ដូចននោះរេប់ការបនងកើែសមបែតិសិសេែរមូវឲ្យវ ិធី ពិនសសននោះរែូវ

ា សិសេ.រាក្់ = រាក្់ នធវើឲ្យវ ិធីពិនសស


យក្មក្នរបើជាសវ័យរបវែតិ។ ានន័យថា ការនរបើបញ្

ន្មោះ __setattr__ រែូវយក្មក្នរបើជាសវ័យរបវែតិ។

ល ក(់ ) េឺ ជាបញ្
ថ្លឦ ា ែរមូវឲ្យយក្សិសេន្មោះ ថ្ងលលក្់ មក្នរបើដូចជាក្បួនឬវ ិធី នផេងៗ។ របការ

ននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __call__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ ជា

សវ័យរបវែតិ។

ល ក.់ រាក់ េឺជាបញ្


ថ្លឦ ា ែរមូវឲ្យយក្សមបែតិន្មោះ រាក្់ មក្នរបើតមរយៈសិសេន្មោះ

ថ្ងលលក្់ ។ របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __getattribute__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់

រែូវានយក្មក្នរបើ នដាយសវ័យរបវែតិ។
ទំព័រ 304

ល ក.់ រាក់ េឺជាការនរបើបញ្


del ថ្លឦ ា del នដើមបីលុបសមបែតិន្មោះ រាក្់ ។ របការននោះនធវើឲ្យវ ិធី

ពិនសសន្មោះ __delattr__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ រែូវានយក្មក្នរបើនដាយ

សវ័យរបវែតិ។

ល ក)់ ) េឺ ជាបញ្
print(dir(ថ្លឦ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្ក្បួនមានស្រាប់ ន្មោះ dir

មក្នរបើ នដាយផតល់វែថុន្មោះ ថ្ងលលក្់ តដលជាសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ឲ្យនៅក្បួនន ោះ។

របការននោះនធវើឲ្យវ ិធីពិនសសន្មោះ __dir__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ រែូវយក្មក្នរបើ ជា

សវ័យរបវែតិ។

ល ក់ = 2000 េឺជាការយក្ន្មោះ ថ្ងលលក្់ នៅភាាប់ជាមួយនឹងវែថុងមីតដលជានលខ្ 2000 វ ិញ


ថ្លឦ

មតង។ ក្តតននោះនធវើឲ្យវែថុជាប់នឹងន្មោះ ថ្ងលលក្់ ចាស់រែូវានលុបនចាលនរពាោះវារែូវានាែ់

ន្មោះ។ នដាយវែថុចាស់ន ោះជាសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ដូចននោះនៅនពលតដលសិសេ

ន ោះរែូវលុបនចាល វ ិធីពិនសសន្មោះ __del__ រែូវានយក្មក្នរបើ ជាសវ័យរបវែតិ។

សមបត្តិ ពិឈសស

នបើនយើងយក្ថានក្់និងឬសិសេណាមួយមក្ពិនិែយនមើលនដាយនរបើក្បួនមានស្រាប់ ន្មោះ help

នយើងនឹងន ើញថានៅក្នុងវែថុទំងន ោះមានវែថុមួយចំនួនតដលជាសមបែតិអាចរែូវយក្មក្នរបើ

តមរយៈសិសេឬថានក្់ន ោះាន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

ថ្លលឦក់ = វឹករាក់(1000)
ទំព័រ 305

help(វឹករាក់)

help(វឹករាក)់ េឺជាការយក្ក្បួនមានស្រាប់ ន្មោះ help មក្នរបើនដើ មបីពិនិែយនមើ លសមបែតិ

ទំងឡាយតដលអាចរែូវយក្មក្នរបើតមរយៈថានក្់ ន្មោះ ទឹក្រាក្់ ។ នៅក្នុងចំនណាមសមបែតិ

ទំងន ោះ នរកាពី ាថបនិក្តដលនយើងានបនងកើែនឡើងនដាយខ្លួននយើងផ្ទទល់ នៅមានវែថុមួយ

ចំនួននទៀែតដលរែូវានបនងកើែនឡើងជាសវ័យរបវែតិ។ វែថុទំងន ោះេឺជា សមបែតិពិនសស

(special attribute) នរពាោះវាមានសញ្ដ _ ននោះពីរនៅអមសងខាង។

សម្បតតិព្ិបសសប្មោះ __dict__

សមបែតិពិនសសន្មោះ __dict__ េឺជាវែថុតដលជាវច នុរក្មមួយតដលនៅក្នុងន ោះមាន

ក្ូននារជាន្មោះរបស់សមបែតិនផេងៗ និងែថ្មលេឺជាវែថុតដលជាសមបែតិទំងន ោះផ្ទទល់តែមតង។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

ថ្លលឦក់ = វឹករាក់(1000)

print(វឹករាក់.__dict__)

print(ថ្លលឦក់.__dict__)

print(វឹករាក់.__dict__) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិពិនសស

ន្មោះ __dict__ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ មក្សរនសរនៅនលើបងអួចបឋម។ នយើងន ើញថា

វច នុរក្មតដលជាសមបែតិពិនសសន្មោះ __dict__ ន ោះមានក្ូននារជាន្មោះថ្នសមបែតិ

នផេងៗនៅក្នុងថានក្់ន ោះ និងែថ្មលជាសមបែតិទំងន ោះផ្ទទល់តែមតង។


ទំព័រ 306

ល ក.់ __dict__) េឺ ជាបញ្


print(ថ្លឦ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិពិនសសន្មោះ

__dict__ នៅក្នុងសិសេន្មោះ ទឹក្រាក្់ មក្សរនសរនៅនលើបងអួចបឋម។ នយើងន ើញថា

វច នុរក្មតដលជាសមបែតិពិនសសន្មោះ __dict__ ន ោះមានក្ូននារជាន្មោះថ្នសមបែតិ

នផេងៗរបស់សិសេន ោះ និងែថ្មលជាសមបែតិទំងន ោះផ្ទទល់តែមតង។

ដូចននោះនយើងអាចនធវើការសននិដាានានថា សមបែតិពិនសសន្មោះ __dict__ េឺ ជាតដនក្ំណ្ែ់

របស់ថានក្់ឬសិសេណាមួយ នរពាោះវាជាវច នុរក្មតដលមានធ្លែុេូជាសមបែតិរបស់វែថុទំង

ន ោះ។

នដាយនហែុថាសមបែតិពិនសសន្មោះ __dict__ េឺ វច នុរក្មតដលនៅក្នុងន ោះមានសមបែតិ

របស់សិសេឬថានក្់ណាមួយ ដូចននោះនយើងអាចយក្សមបែតិទំងន ោះមក្នរបើតមរយៈ

វច ា អវីនឡើយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖


នុរក្មន្មោះ __dict__ ននោះាននដាយោមនបញ្

class វឹករាក់() :

រាក់ = 2000

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

ថ្លលឦក់ = វឹករាក់(1000)

print(វឹករាក់.__dict__["រាក់"])

print(ថ្លលឦក់.__dict__["រាក់"])

print(វឹករាក.់ __dict__["រាក់"]) េឺ ជាបញ្


ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិ

ន្មោះ រាក្់ នៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ មក្នរបើការ។ ការយក្សមបែតិននោះមក្នរបើ រែូវាន

នធវើនឡើងតមរយៈវច នុរក្មតដលជាសមបែតិពិនសសន្មោះ __dict__ ។


ទំព័រ 307

ល ក.់ __dict__["រាក់"]) េឺជាបញ្


print(ថ្លឦ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិ

ន្មោះ រាក្់ របស់សិសេន្មោះ ថ្ងលលក្់ មក្នរបើការ។ ការយក្សមបែតិននោះមក្នរបើរែូវាន

នធវើនឡើងតមរយៈវច នុរក្មតដលជាសមបែតិពិនសសន្មោះ __dict__ ។

សម្បតតិព្ិបសសប្មោះ __doc__

នៅក្នុងថានក្់មួយ និងនៅក្នុងខាងនលើនេបងអស់ នបើសិនជានយើងបនងកើែក្រមងអក្េរោមនន្មោះ

ណាមួយ ន្មោះ __doc__ របស់សមបែតិពិនសសនៅក្នុងថានក្់ន ោះ នឹងរែូវយក្នៅភាាប់ នៅនឹង

ក្រមងអក្េរន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

"""គជាថា
ឺ ន ក់ណរសសរមាស់
ើ សណងកើរឧរថុកដឦជាវឹករាក់។"""

រាក់ = 2000

def __init__(សិសស, រាក់=0) :

សិសស.រាក់ = រាក់

ថ្លលឦក់ = វឹករាក់(1000)

print(វឹករាក់.__doc__)

ឺ ន ក់ណរសសរមាស
"""គជាថា ើ ់សណងើរ
ក ឧរុ កដឦជាវ
ថ ឹ ករាក់។""" េឺជាការបនងកើែក្រមងអក្េរោមនន្មោះ

មួយនៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ និងនៅខាងនលើនេបងអស់។ របការននោះនធវើឲ្យន្មោះ __doc__

តដលជាន្មោះរបស់សមបែតិពិនសសនៅក្នុងថានក្់ន ោះ រែូវានយក្នៅភាាប់នឹងក្រមងអក្េរ

ន ោះ។

ជាទូនៅ នេនរចើននរបើសមបែតិន្មោះ __doc__ ននោះជាឯក្ារសរមាប់ក្ែ់រតទុក្នូវក្ំណ្ែ់

ពនយល់នផេងៗនៅក្នុងថានក្់ ណាមួយ។
ទំព័រ 308

ដូចោនតដរ នបើសិនជានយើងបនងកើែក្រមងអក្េរោមនន្មោះណាមួយនៅក្នុងក្បួនណាមួយ និងនៅ

ខាងនលើនេបងអស់ សមបែតិពិនសសន្មោះ __doc__ នៅក្នុងក្បួនន ោះ នឹងរែូវយក្នៅភាាប់នឹង

ក្រមងអក្េរន ោះនដាយសវ័យរបវែតិ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

def សងាាញឡ័រ៌មាឞ() :

សងាាញឡ័រ៌មាឞ។"""
"""កបួឞណរសសរមាស់

print("ឡ័រ៌មាឞទ ំងឡាឤឞឹងររូឧសងាាញណៅវីណនាោះ។")

print(សងាាញឡ័រ៌មាឞ.__doc__)

"""កបួឞណរសសរមាស
ើ ់ ងាាញឡ័រ៌មាឞ។""" េឺជាការបនងកើែក្រមងអក្េរោមនន្មោះមួយនៅខាង

នលើនេបងអស់នៅក្នុងក្បួនន្មោះ បងាាញព័ែ៌មាន ។ របការននោះនធវើឲ្យន្មោះ __doc__ តដលជា

ន្មោះរបស់សមបែតិពិនសសនៅក្នុងក្បួនន ោះ រែូវយក្នៅភាាប់នឹងក្រមងអក្េរន ោះ។

សម្បតតិព្ិបសសប្មោះ __slots__

នបើសិនជានយើងចង់ ក្ំណ្ែ់ ពីចំនួននិងន្មោះថ្នសមបែតិរបស់សិសេថ្នថានក្់ ណាមួយន ោះ នយើង

រែូវបនងកើែក្រមងអនងរមួយមានន្មោះថា __slots__ តដលមានធ្លែុជាន្មោះរបស់សមបែតិ

សិសេថ្នថានក្់ ន ោះ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

__slots__ = ["ថ្លលឦក់", "ថ្លលវិញ", "ណោហុ ឤ"]

def __init__(សិសស, ថ្លលឦក់=0, ថ្លលវិញ=0, ណោហុ ឤ=0) :

សិសស.ថ្លលឦក់ = ថ្លលឦក់

សិសស.ថ្លលវិញ = ថ្លលវិញ

សិសស.ណោហុ ឤ = ណោហុ ឤ
ទំព័រ 309

រាក់ឥកសុ ី = វឹករាក់(1000, 900, 25)

print(រាក់ឥកសុ ី.ថ្លលឦក់)

print(រាក់ឥកសុ ី.ថ្លលវិញ)

print(រាក់ឥកសុ ី.ណោហុ ឤ)

ល ក់", "ថ្លវ
__slots__ = ["ថ្លឦ ល ិញ", "ណោហុ ឤ"] េឺជាការបនងកើែសមបែតិពិនសសតដលជាក្រមង

អនងរន្មោះ __slots__ ។ ធ្លែុទំងឡាយនៅក្នុងក្រមងអនងរននោះេឺជាសមបែតិរបស់សិសេថ្ន

ថានក្់ន្មោះ ទឹក្រាក្់ ។ នហើយការបនងកើែសមបែតិសិសេតដលមានន្មោះខ្ុសពី ន្មោះតដលជា

ធ្លែុនៅក្នុងក្រមងអនងរន្មោះ __slots__ ននោះ នឹងបណា


ត លឲ្យភាពមិនរបរក្ែីនក្ើែមាននឡើង។

សមបត្តិ ឯកជ្ន

នៅក្នុងថានក្់មួយ នបើសិនជាមានសមបែតិមួយចំនួនមានសញ្ដ _ ននោះពីរនៅពី មុខ្ សមបែតិទំង

ន ោះនឹងមិនអាចរែូវយក្នៅនរបើនៅខាងនរៅថានក្់ នដាយនរបើន្មោះដូចន ោះាននឡើយ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.__រាក់ = រាក់

def សងាាញឡ័រ៌មាឞ(សិសស) :

print(សិសស.__រាក់)

ថ្លលឦក់ = វឹករាក់(1000)

ថ្លលឦក់.សងាាញឡ័រ៌មាឞ()

print(ថ្លលឦក់.__រាក់)
ទំព័រ 310

សិសស.__រាក់ = រាក់ េឺជាបញ្


ា ែរមូវឲ្យបនងកើែសមបែិន្មោះ __រាក្់ មួយទុក្នៅក្នុងសិសេ

ន្មោះ សិសេ នៅក្នុងាថបនិក្។

print(សិសស.__រាក់) េឺ ជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិន្មោះ __រាក្់

របស់សិសេន្មោះ សិសេ មក្នរបើនៅក្នុងវ ិធី ន្មោះ បងាាញព័ែ៌មាន ។ របការននោះអាចនធវើនៅ

ាននដាយោមនបញ្
ា អវីនឡើយ នរពាោះសមបែតិន ោះរែូវានយក្នៅនរបើ នៅក្នុងថានក្់ របស់សិសេ

តដលមានសមបែតិន ោះ។

ល ក.់ __រាក់) េឺ ជាបញ្


print(ថ្លឦ ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិន្មោះ

__រាក្់ របស់សិសេន្មោះ ថ្ងលលក្់ មក្នរបើនៅខាងនរៅថានក្់របស់សិសេន ោះ។ របការននោះមិន

អាចនធវើនៅាននឡើយ ក្ំហុសមួយាននក្ើែមាននឡើង។

រេប់សមបែតិនៅក្នុងថានក្់តដលមានសញ្ដ _ ននោះពីរនៅពីមុខ្េឺ ជា សមបែតិឯក្ជន (private

attribute) ពីនរពាោះវាមិនអាចរែូវយក្នៅនរបើនៅខាងនរៅថានក្់របស់វាាននឡើយ។ ក្៍ប៉ុតនត នបើ

នយើងពិែជាចង់យក្សមបែតិឯក្ជនទំងន ោះនៅនរបើនៅខាងនរៅថានក្់ តមន នយើងរែូវនធវើដូច

ខាងនរកាមននោះ៖

class វឹករាក់() :

def __init__(សិសស, រាក់=0) :

សិសស.__រាក់ = រាក់

def សងាាញឡ័រ៌មាឞ(សិសស) :

print(សិសស.__រាក់)

ថ្លលឦក់ = វឹករាក់(1000)
ទំព័រ 311

ថ្លលឦក់.សងាាញឡ័រ៌មាឞ()

print(ថ្លលឦក់._វឹករាក់__រាក់)

ល ក.់ _វឹករាក_
print(ថ្លឦ ់ _រាក់) េឺជាបញ្
ា តដលនៅក្នុងន ោះមានការែរមូវឲ្យយក្សមបែតិ

ន្មោះ __រាក្់ របស់សិសេន្មោះ ថ្ងលលក្់ មក្សរនសរនៅនលើបងអួចបឋម។ របការននោះអាចនធវើ

នៅាននដាយោមនបញ្
ា អវីនឡើយ។

ដូនចនោះ នដើមបីអាចយក្សមបែតិឯក្ជនរបស់សិសេណាមានក្់មក្នរបើនៅខាងនរៅថានក្់ាន នយើង

រែូវសរនសរសញ្ដ _ ននោះរួមផេំនឹងន្មោះរបស់ថានក្់បតនថមនៅនលើន្មោះរបស់សមបែតិឯក្ជន

ន ោះ។

លកខណៈសមបត្តិ

នយើងានដឹងរួចមក្នហើយថា នៅក្នុងថានក្់មួយ នបើ សិនជានយើងបនងកើែវ ិធី ពិនសសន្មោះ

__setattr__ និងវ ិធីពិនសសន្មោះ __getattribute__ នៅនពលតដលនយើងបនងកើែនិងឬយក្

សមបែតិរបស់សិសេថ្នថានក្់ ន ោះនៅនរបើ វ ិធីទំងន ោះនឹងរែូវយក្មក្នរបើ ជាសវ័យរបវែតិ។

ម៉ាងនទៀែ សមបែតិថានក្់េឺជាវែថុតដលនធវើឲ្យថានក្់និមួយៗមានលក្ខណ្ៈខ្ុសៗោន ពីនរពាោះរេប់

ថានក្់ទំងឡាយណាតដលមានសមបែតិមានលក្ខណ្ៈខ្ុសោន នឹងបនងកើែសិសេតដលមានសមបែតិ

មានលក្ខណ្ៈខ្ុសៗោនតដរ។ នដាយនហែុ ថា វ ិធី ពិនសសន្មោះ __setattr__ និងវ ិធីពិនសស

ន្មោះ __getattribute__ ជាវ ិធីតដលមានមុខ្ងារជាអនក្បនងកើែឬយក្សមបែតិសិសេមក្នរបើ

ដូចននោះ វ ិធីទំងពីរននោះមានែួ ទីសំខាន់ណាស់ក្ុងការក្ំ


ន ណ្ែ់ពីលក្ខណ្ៈថ្នសមបែតិរបស់

សិសេ។
ទំព័រ 312

ទនទឹមោនននោះតដរ នៅក្នុងថានក្់មួយ នបើសិនជានយើងយក្ថានក្់មានស្រាប់ ន្មោះ property មក្នរបើ

នយើងនឹងទទូលានវែថុម៉ាងតដលរែូវនៅថា លក្ខណ្ៈសមបែតិ (property attribute) តដលមាន

ែួ ទីសំខាន់ណាស់ក្ុងការក្ំ
ន ណ្ែ់ពីលក្ខណ្ៈថ្នសមបែតិរបស់សិសេ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

class វឹករាក់() :

def សណងកើរសឣបរោិសិសស(សិសស, សឣបរោ)ិ :

print("សឣបរោស
ិ ិសសកដឦជា", សឣបរោ,ិ "ររូឧាឞសណងករ
ើ ណឡើង។")

សិសស.សឣបរោិ = សឣបរោិ

def ឤកសឣបរោិសិសស(សិសស) :

print("សឣបរោស
ិ ិសសកដឦជា", សិសស.សឣបរោ,ិ "ររូឧាឞឤកណៅណរស។")

return សិសស.សឣបរោិ

def ឦុ សសឣបរោស
ិ ិសស(សិសស) :

print("សឣបរោស
ិ ិសសកដឦជា", សិសស.សឣបរោ,ិ "ររូឧាឞឦុ សណចាឦ។")
del សិសស.សឣបរោិ

គុ ណឦកខណៈ = property(ឤកសឣបរោស
ិ ិសស, សណងកើរសឣបរោស
ិ ិសស, ឦុ សសឣបរោស
ិ ិសស)

រាក់ឥកសុ ី = វឹករាក់()

រាក់ឥកសុ .គុ
ី ណឦកខណៈ = 1000

រាក់ឥកសុ .គុ
ី ណឦកខណៈ

del រាក់ឥកសុ ី.គុ ណឦកខណៈ

គុណឦកណ
ខ ៈ = property(ឤកសឣបរស
ិ ោ ិ សស, សណងើរ
ក សឣបរស
ិោ ិ សស, ឦុសសឣបរស
ិ ោ ិ សស) េឺជា

ការយក្ថានក្់មានស្រាប់ ន្មោះ property មក្នរបើ នដាយផតល់វែថុតដលជាវ ិធីចំនួនបីឲ្យនៅ


ទំព័រ 313

ាថបនិក្ថ្នថានក្់ន ោះ។ ជាលទធផល វែថុមួយមានន្មោះថា េុណ្លក្ខណ្ៈ រែូវានបនងកើែនឡើង

រាក់ឥកសុី.គុណឦកណ
ខ ៈ = 1000 េឺជាការបនងកើែសមបែតិសរមាប់សិសេន្មោះ រាក្់រក្សុី

នដាយយក្វែថុតដលជាលក្ខណ្ៈសមបែតិន្មោះ េុណ្លក្ខណ្ៈ មក្នរបើ ។ របការននោះនធវើឲ្យ

វ ិធី ន្មោះ បនងកើែសមបែតិសិសេ រែូវានយក្មក្នរបើ និងសិសេន្មោះ រាក្់រក្សុី ន ោះរែូវាន

ផតល់ជាដំណ្ឹងសរមាប់ដំណាង សិសេ នហើយនលខ្ 1000 រែូវានផតល់ជាដំណ្ឹងសរមាប់

ដំណាង សមបែតិ នៅក្នុងវ ិធី ន្មោះ បនងកើែសមបែតិសិសេ ន ោះ។

រាក់ឥកសុី.គុណឦកណ
ខ ៈ េឹ ជាការយក្សមបែតិរបស់សិសេន្មោះ រាក្់រក្សុី មក្នរបើនដាយ

យក្វែថុតដលជាលក្ខណ្ៈសមបែតិន្មោះ េុណ្សមបែតិ មក្នរបើ។ របការននោះនធវើឲ្យវ ិធីន្មោះ

យក្សមបែតិសិសេ រែូវយក្មក្នរបើជាសវ័យរបវែតិ និងសិសេន្មោះ រាក្់រក្សុី ន ោះរែូវាន

ផតល់ជាដំណ្ឹងសរមាប់ដំណាង សិសេ នៅក្នុងវ ិធី ន ោះ។

del រាក់ឥកសុី.គុណឦកណ
ខ ៈ េឺ ជាការលុបសមបែតិរបស់សិសេន្មោះ រាក្់រក្សុី នដាយយក្

វែថុតដលជាលក្ខណ្ៈសមបែតិន្មោះ េុណ្លក្ខណ្ៈ មក្នរបើ។ របការននោះនធវើឲ្យវ ិធី ន្មោះ

លុបសមបែតិសិសេ រែូវយក្មក្នរបើជាសវ័យរបវែតិ និងសិសេន្មោះ រាក្់រក្សុី ន ោះរែូវផតល់ជា

ដំណ្ឹងសរមាប់ដំណាង សិសេ នៅក្នុងវ ិធីន ោះ។

វិធី ឯឈកា

វ ិធីឯនកា (static method) េឺជាវ ិធីទំងឡាយណាតដលមិនរែូវការសិសេសរមាប់ដំណាងទីមួយ

។ នដើមបីបនងកើែវ ិធី ឯនកា នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

class វឹករាក់() :
ទំព័រ 314

def សងាាញឡ័រ៌មាឞ() :

print("ឡ័រ៌មាឞររូឧសងាាញណៅវីណឞោះ។")

សងាាញឡ័រ៌មាឞ = staticmethod(សងាាញឡ័រ៌មាឞ)

រាក់ឥកសុ ី = វឹករាក់()

វឹករាក់.សងាាញឡ័រ៌មាឞ()

រាក់ឥកសុ ី.សងាាញឡ័រ៌មាឞ()

សងាាញឡ័រ៌មាឞ = staticmethod(សងាាញឡ័រ៌មាឞ) េឺ ជាការយក្ក្បួនមានស្រាប់ន្មោះ

staticmethod មក្នរបើនដើមបីតក្វ ិធីន្មោះ បងាាញព័ែ៌មាន ឲ្យនៅជាវ ិធី តដលតលងរែូវការសិសេ

សរមាប់ដំណាងទី មួយ។ វ ិធី ននោះរែូវនៅថាវ ិធីឯនកា។

វឹករាក.់ សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្វ ិធីឯនកាន្មោះ បងាាញព័ែ៌មាន មក្នរបើ តមរយៈ

ថានក្់របស់វា នដាយមិនចាំាច់ផតល់ដំណ្ឹងជាសិសេណាមានក្់ឲ្យនៅវានឡើយ។

នយើងេួររ ំលឹក្នឡើងវ ិញថា ការយក្វ ិធីនផេងៗមក្នរបើតមរយៈថានក្់ មិនទមទរឲ្យនយើងចាំាច់

រែូវតែផតល់ដំណ្ឹងជាសិសេឲ្យនៅវ ិធីន ោះនទ តែរបការតដលចាំាច់េឺនយើងរែូវផតល់ដំណ្ឹងឲ្យ

មានចំនួនរេប់រោន់សរមាប់ដំណាងនៅក្នុងវ ិធីទំងន ោះ។ ក្៍ប៉ុតនតមានវ ិធី ខ្លោះរែូវការដំណ្ឹងជា

សិសេនដើមបីយក្សមបែតិនៅក្នុងន ោះនៅនរបើការនផេងៗ ដូនចនោះ នយើងចាំាច់រែូវតែផតល់ដំណ្ឹង

ជាសិសេឲ្យនៅវ ិធី ន ោះ នទោះបីជានយើងយក្វាមក្នរបើតមរយៈថានក្់ក្៍នដាយ។

រាក់ឥកសុី.សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្វ ិធីឯនកាន្មោះ បងាាញព័ែ៌មាន មក្នរបើតមរយៈ

សិសេន្មោះ រាក្់រក្សុី ។ ក្នុងក្រណ្ីននោះ សិសេន្មោះ រាក្់រក្សុី មិនរែូវានផតល់ជា

ដំណ្ឹងឲ្យនៅវ ិធីន្មោះ បងាាញព័ែ៌មាន សរមាប់ដំណាងទីមួយនៅក្នុងន ោះនឡើយ នរពាោះវ ិធី

ននោះានកាលយនៅជាវ ិធី ឯនការួចនៅនហើយ។ ានន័យថា ការយក្វ ិធី ឯនកាមក្នរបើតម


ទំព័រ 315

រយៈសិសេ មិននធវើឲ្យសិសេន ោះរែូវផតល់ជាដំណ្ឹងឲ្យនៅវ ិធី ន ោះនឡើយ នរពាោះវ ិធី ឯនកាមិន

រែូវការសិសេ។

សរុបមក្ វ ិធីឯនកាមានសណា
ា នដូចជាក្បួធមមតតដលជាក្បួននៅខាងនរៅថានក្់ នទោះជាវារែូវ

ានបនងកើែនឡើងនៅក្នុងថានក្់ក្៍នដាយ។ នហើយនដាយារតែវ ិធីឯនការែូវានបនងកើែនឡើងនៅ

ក្នុងថានក្់ ដូចននោះរេប់ការយក្វ ិធី ឯនកាមក្នរបើ រែូវតែនធវើនឡើងតមថានក្់ឬសិសេថ្នថានក្់ របស់វា។

វិធី ម្បច ថ្ន


ាំ ែ ក់

វ ិធីរបចាំថានក្់ (class method) េឺជាវ ិធីទំងឡាយណាតដលរែូវការថានក្់សរមាប់ដំណាងទីមួយ

នៅក្នុងន ោះ។ នដើមបីបនងកើែវ ិធី របចាំថានក្់ នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

class វឹករាក់() :

def សងាាញឡ័រ៌មាឞ(ថានក់) :

print("ឡ័រ៌មាឞររូឧសងាាញណៅវីណឞោះ។")

សងាាញឡ័រ៌មាឞ = classmethod(សងាាញឡ័រ៌មាឞ)

រាក់ឥកសុ ី = វឹករាក់()

វឹករាក់.សងាាញឡ័រ៌មាឞ()

រាក់ឥកសុ ី.សងាាញឡ័រ៌មាឞ()

សងាាញឡ័រមា
៌ ឞ = classmethod(សងាាញឡ័រ៌មាឞ) េឺ ជាការយក្ក្បួនមានស្រាប់ ន្មោះ

classmethod មក្នរបើនដើមបីតក្វ ិធីន្មោះ បងាាញព័ែ៌មាន ឲ្យនៅជាវ ិធី របចាំថានក្់ តដលជាវ ិធីរែូវ

ការថានក្់ ណាមួយសរមាប់ដំណាងទីមួយនៅក្នុងន ោះ។


ទំព័រ 316

វឹករាក.់ សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្វ ិធីរបចាំថានក្់ន្មោះ បងាាញព័ែ៌មាន មក្នរបើតម

រយៈថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះបណា


ត លឲ្យថានក្់ន្មោះ ទឹក្រាក្់ ន ោះរែូវានផតល់ជា

ដំណ្ឹងសរមាប់ដំណាងទី មួយនៅក្នុងវ ិធីន ោះជាសវ័យរបវែតិ។

រាក់ឥកសុី.សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្វ ិធីរបចាំថានក្់ន្មោះ បងាាញព័ែ៌មាន មក្នរបើ តម

រយៈសិសេន្មោះ រាក្់រក្សុី តដលជាសិសេថ្នថានក្់ន្មោះ ទឹក្រាក្់ ។ របការននោះបណា


ត លឲ្យ

ថានក្់ន្មោះ ទឹក្រាក្់ ន ោះរែូវានផតល់ជាដំណ្ឹងសរមាប់ដំណាងទី មួយនៅក្នុងវ ិធីន ោះជា

សវ័យរបវែតិ។

សរុបមក្ រេប់ការយក្វ ិធី របចាំថានក្់ណាមួយមក្នរបើ បណា


ត លឲ្យថានក្់ណាមួយរែូវផតល់ឲ្យនៅ

វ ិធី ន ោះជាសវ័យរបវែតិ នទោះចង់ឬចង់មិនចង់ក្ីត។

រចនាករ

រច ក្រ (decorator) េឺជាវែថុទំងឡាយណាតដលមានសមថភាពអាចយក្ក្បួនឬវ ិធីណាមួយមក្

តក្លមអឲ្យនៅជាវែថុនផេងនទៀែ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def កកឲ្យណៅជាឧឝ
ិ ឯណកា(ឧ
ី ឝិ )ី :

ឧឝ
ិ ី = staticmethod(ឧឝ
ិ )ី

return ឧឝ
ិ ី

def កកឲ្យណៅជាឧឝ
ិ រសចា
ី ំថានក់(ឧឝ
ិ )ី :

ឧឝ
ិ ី = classmethod(ឧឝ
ិ ី)

return ឧឝ
ិ ី
ទំព័រ 317

@កកឲ្យណៅជាឧឝ
ិ រសចា
ី ំថានក់

def សណងកើរវិឞនឞ័ឤគរឣូ(ថានក់, វិឞនឞ័ឤ) :

ថានក់.វិឞនឞ័ឤ = វិឞនឞ័ឤ

@កកឲ្យណៅជាឧឝ
ិ ឯណកា

def សងាាញឡ័រ៌មាឞ() :

print(វឹករាក់.វិឞនឞ័ឤ)

រាក់ឥកសុ ី = វឹករាក់()

ើរវិឞនឞ័ឤគរឣូ(1000)
រាក់ឥកសុ .សណងក

ា ញឡ័រ៌មាឞ()
រាក់ឥកសុ .សងា

@កកឲ្យណៅជាឧឝ
ិ រសចា
ី ំ ន ក់ េឺ ជាបញ្
ថា ា ែរមូវឲ្យយក្វ ិធី ន្មោះ តក្ឲ្យនៅជាវ ិធី របចាំថានក្់ មក្នរបើ

ជារច ក្រនដើមបីតក្វ ិធីន្មោះ បនងកើែទិននន័យេរមូ នៅខាងនរកាមន ោះឲ្យនៅជាវ ិធីរបចាំថានក្់។

@កកឲ្យណៅជាឧឝ
ិ ីឯណកា េឺ ជាបញ្
ា ែរមូវឲ្យយក្វ ិធី ន្មោះ តក្ឲ្យនៅជាវ ិធី ឯនកា មក្នរបើជា

រច ក្រនដើមបីតក្វ ិធី ន្មោះ បងាាញព័ែ៌មាន នៅខាងនរកាមន ោះឲ្យនៅជាវ ិធីឯនកា។

រាក់ឥកសុី.សណងើរ ន ័ឤគរឣូ(1000) េឺជាការយក្វ ិធី ន្មោះ បនងកើែទិនន


ក វិឞឞ ន ័យេរមូ មក្នរបើតម

រយៈសិសេន្មោះ រាក្់រក្សុី ។ របការននោះនធវើឲ្យថានក្់របស់សិសេន ោះរែូវានផតល់ជាដំណ្ឹង

សរមាប់ដំណាងទី មួយនៅក្នុងន ោះ នរពាោះវ ិធី ន ោះរែូវានតក្ឲ្យនៅជាវ ិធីរបចាំថានក្់រច


នៅនហើយ។
ទំព័រ 318

រាក់ឥកសុី.សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្វ ិធីន្មោះ បងាាញព័ែ៌មាន មក្នរបើតមរយៈសិសេ

ន្មោះ រាក្់រក្សុី ។ របការននោះមិនាននធវើឲ្យសិសេន ោះរែូវផតល់ជាដំណ្ឹងសរមាប់ដំណាងទី

មួយនៅក្នុងន ោះ នរពាោះវ ិធី ន ោះរែូវានតក្ឲ្យនៅជាវ ិធីឯនការួចនៅនហើយ។

ថ្នែក់ ឈមអរ ូបី

ថានក្់នមអរូបី (abstract superclass) េឺជាថានក្់នមទំងឡាយណាតដលទមទរឲ្យនយើងបនងកើែវ ិធី

មួយចំនួននៅក្នុងថានក្់រងរបស់វា នដើមបីឲ្យវ ិធីមួយចំនូននៅក្នុងថានក្់នមន ោះអាចរែូវយក្នរបើការ

ាន។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class វឹករាក់() :

def សងាាញរាក់ចណំ ណញ(សិសស) :

សិសស.ឥករាក់ចណំ ណញ()

class រាក់ឥកសុ ី(វឹករាក់) :

def __init__(សិសស, ថ្លលឦក់, ថ្លលវិញ) :

សិសស.ថ្លលឦក់ = ថ្លលឦក់

សិសស.ថ្លលវិញ = ថ្លលវិញ

def ឥករាក់ចណំ ណញ(សិសស) :

print(សិសស.ថ្លលឦក់ - សិសស.ថ្លលវិញ)

រាក់ឥកសុ ីឦក់អងកឥ = រាក់ឥកសុ ី(1000, 900)

រាក់ឥកសុ ីឦក់អងកឥ.សងាាញរាក់ចណំ ណញ()


ទំព័រ 319

សិសស.ឥករាក់ចណំ ណញ() េឺជាការយក្វ ិធី មិនទន់រែូវានបនងកើែន្មោះ រក្រាក្់ចំនណ្ញ

មក្នរបើ នៅក្នុងវ ិធីន្មោះ បងាាញរាក្់ចំនណ្ញ តដលជាវ ិធីនៅក្នុងថានក្់ន្មោះ ទឹក្រាក្់ ។

នយើងេួររ ំលឹក្នឡើងវ ិញជាងមីមតងនទៀែថា ការយក្វែថុមិនទន់រែូវានបនងកើែមក្នរបើនៅនពល

បនងកើែក្បួននិងឬវ ិធី ណាមួយ អាចនធវើនៅាន ពីនរពាោះរក្រមបញ្


ា នៅក្នុងក្បួននិងឬវ ិធី ទំងន ោះ

មិនទន់ រែូវយក្នៅអនុវែតនៅនឡើយនទ នៅនពលតដលក្បួននិងឬវ ិធី ទំងន ោះរែូវាន

បនងកើែនឡើង។ រក្រមបញ្
ា ទំងន ោះរែូវយក្នៅអនុវែតតែនៅនពលណាតដលក្បួននិងឬវ ិធី

ទំងន ោះរែូវយក្នៅនរបើ តែប៉ុនណាណោះ។

def ឥករាក់ចណំ ណញ(សិសស) : េឺ ជាការបនងកើែវ ិធី ន្មោះ រក្រាក្់ ចំនណ្ញ នៅក្នុងថានក្់ រង

ន្មោះ រាក្់រក្សុី ។

រាក់ឥកសុីឦក់អងឥក .សងាាញរាក់ចណំ ណញ() េឺជាការយក្វ ិធីន្មោះ បងាាញរាក្់ចំនណ្ញ

នៅក្នុងថានក្់នមន្មោះ ទឹក្រាក្់ មក្នរបើ តមរយៈសិសេថ្នថានក្់ រងន្មោះ រាក្់រក្សុីលក្់អងករ

។ របការននោះនធវើឲ្យវ ិធីន្មោះ រក្រាក្់ចំនណ្ញ នៅក្នុងថានក្់រងក្៍រែូវយក្មក្នរបើ តដរ។ នដាយ

នហែុថាវ ិធីន្មោះ រក្រាក្់ចំនណ្ញ ននោះរែូវានបនងកើែរួចនហើយ ដូចននោះ ការយក្វ ិធីន្មោះ

បងាាញរាក្់ចំនណ្ញ នៅក្នុងថានក្់នមន្មោះ ទឹក្រាក្់ មក្នរបើ មិនបងករឲ្យមានបញ្


ា អវីនឡើយ។

សរុបមក្ ថានក្់នមន្មោះ ទឹក្រាក្់ េឺជាថានក្់នមអរូបី នរពាោះវាទមទរឲ្យនយើងបនងកើែវ ិធី មួយ

ន្មោះ រក្រាក្់ចំនណ្ញ នៅក្នុងរងរបស់វានដើមបីអាចឲ្យវ ិធីរបស់វាន្មោះ

បងាាញរាក្់ចំនណ្ញ អាចរែូវយក្នៅនរបើការាន។

សែយ
័ ឈសវា
ទំព័រ 320

សវ័យនសវា (recursion) េឺជាការយក្ក្បួនឬវ ិធីណាមួយមក្នរបើនៅក្នុងក្បួនឬវ ិធីដតដលន ោះ។

ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ស៉ាុនាមឞដង = 0

def សងាាញឡ័រ៌មាឞ() :

global ស៉ាុនាមឞដង

ស៉ាុនាមឞដង += 1

print("កបួឞណ្មោះសងាាញឡ័រ៌មាឞររូឧាឞឤកណៅណរសចំ
ើ ឞួឞ {0} ដង".format(ស៉ាុនាមឞដង))

if ស៉ាុនាមឞដង < 10 :

សងាាញឡ័រ៌មាឞ()

ា ណឞោះររូឧាឞវុ កណចាឦជាណឦើកវី {0}".format(ស៉ាុនាមឞដង))


print("សញ្ហ

ស៉ាុនាមឞដង -= 1

សងាាញឡ័រ៌មាឞ()

សងាាញឡ័រ៌មាឞ() េឺ ជាការយក្ក្បួនន្មោះ បងាាញព័ែ៌មាន មក្នរបើ នៅក្នុងក្បួនន្មោះ

បងាាញព័ែ៌មាន ដតដលន ោះ។ ដូចននោះ នៅនពលតដលរក្រមបញ្


ា នៅក្នុងក្បួនន ោះរែូវានយក្

នៅអនុវែតជាបនតប ទ ប់រហូែដល់ក្តនលងតដលមានបញ្
ា បងាាញព័ែ៌មាន() ក្បួនដតដលន ោះក្៍

រែូវានយក្មក្នរបើ តដលជារបការនធវើឲ្យបញ្
ា នៅខាងនរកាមន ោះរែូវានទុក្នចាល នហើយ

រក្រមបញ្
ា នៅក្នុងក្បួនដតដលន ោះ ក្៍ រែូវានយក្មក្អនុវែតារជាងមីមតងនទៀែ។ ទនងវើរនបៀប

ននោះ រែូវានរបរពឹែនត ៅជាដតដលៗរហូែដល់បញ្


ា បងាាញព័ែ៌មាន() តលងរែូវានយក្មក្

អនុវែត តដលជារបការនធវើឲ្យបញ្
ា តដលរែូវានទុក្នចាលន ោះរែូវានយក្មក្
ទំព័រ 321

អនុវែតវ ិញមតង។ នហើយការអនុវែតន៍បញ្


ា តដលរែូវានទុក្នចាលន ោះ រែូវរបរពឹែនត ៅជានរចើន

នលើក្នរចើនារ។ នពាលេឺ នបើបញ្


ា ទំងន ោះរែូវានទុក្នចាលចំនួន n ដង ការអនុវែតន៍បញ្

ទំងន ោះក្៍រែូវនធវើនឡើងចំនួន n ដងតដរ។

ការចមលង សោស វត្ថុ

កា ចម្លងបសើបេើ

នយើងអាចយក្សមាសវែថុនផេងៗតដលមានធ្លែុជាសមាសវែថុមួយចំនួននទៀែមក្ចមលងបនងកើែ

ជាសមាសវែថុងមី នដាយនធវើដូចខាងនរកាមននោះ៖

ករឣងចរឣរោះ = [(1, 2, 3), [4, 5, 6], {"ណ្នោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}]

ករឣងលម១
ី = list(ករឣងចរឣរោះ)

ករឣងលម២
ី = ករឣងចរឣរោះ[:]

print(ករឣងចរឣរោះ)

print(ករឣងលម១
ី )

print(ករឣងលម២
ី )

ករឣងល១
ី ម = list(ករឣងចរឣរោះ) េឺជាការយក្ក្រមងអនងរន្មោះ ក្រមងចរមរោះ មក្ចមលងបនងកើែជា

ក្រមងអនងងមីមួយនទៀែមានន្មោះថា ក្រមងងមី១ នដាយនរបើថានក្់ មានស្រាប់ ន្មោះ list ។

ករឣងល២
ី ម = ករឣងចរឣរោះ[:] េឺជាការយក្ក្រមងអនងរន្មោះ ក្រមងចរមរោះ មក្ចមលងបនងកើែជា

ក្រមងអនងងមីមួយនទៀែមានន្មោះថា ក្រមងងមី២ នដាយនធវើរបមាណ្វ ិធីកាែ់ចមលង។

ការយក្សមាសវែថុមក្ចមលងបនងកើែជាសមាសវែថុងមីតមរនបៀបដូចខាងនលើននោះ មិនតមនជា

ការបនងកើែសមាសវែថុងមីនដាយតឡក្នផេងនទៀែនឡើយ េឺ វារោន់តែជាការបនងកើែសមាសវែថុងមី
ទំព័រ 322

តដលមានធ្លែុ ជាធ្លែុរបស់សមាសវែថុចាស់តែប៉ុនណាណោះ។ ជាក្់តសតង នៅក្នុងក្មមវ ិធីខាងនលើ

ននោះ ក្រមងអនងរន្មោះ ក្រមងចរមរោះ ក្រមងងមី១ និង ក្រមងងមី២ មានធ្លែុ ទំងឡាយជាសមាស

វែថុតែមួយដូចោន នពាលេឺធ្លែុបស់ក្រមងអនងរទំងបី ន ោះេឺជាក្រមងនងរ (1, 2, 3) ក្រមងអនងរ

[4, 5, 6] និងវច នុរក្ម {"ន្នោះ":"ក្ុសល", "អាយុ":35, "នភទ":"របរស"} តែមួយដូចោន។

ក្រមងងមី១
[ ]

ក្រមងចរមរោះ [(1, 2, 3), [4, 5, 6], {"ន្នោះ":"ក្ុ សល", "អាយុ":35, "នភទ":"របរស"}]


]

ក្រមងងមី១
[ ]

ការចមលងបនងកើែសមាសវែថុងមីតមរនបៀបដូចខាងនលើននោះនៅថា ការចមលងនសើនលើ (shallow

copy) ពីនរពាោះវាជាការចមលងតដលបនងកើែវែថុងមីនផេងនទៀែតដលមានធ្លែុជាធ្លែុរបស់សមាសវែថុ

ចាស់តដលរែូវានយក្មក្ចមលង។ មួយវ ិញនទៀែ នបើសិនជាធ្លែុ ទំងន ោះរែូវានតក្តរប ធ្លែុ

នៅក្នុងសមាសវែថុតដលទក្់ទងទំងអស់ក្៍រែូវានតក្តរបតដរ នរពាោះធ្លែុ ទំងន ោះជាវែថុតែ

មួយ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

ករឣងចរឣរោះ = [(1, 2, 3), [4, 5, 6], {"ណ្នោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}]

ករឣងលម១
ី = list(ករឣងចរឣរោះ)

ករឣងលម២
ី = ករឣងចរឣរោះ[:]

ករឣងចរឣរោះ[1][1] = True

ករឣងលម១
ី [2]["ណ្មោះ"] = "សុ ខ"

ករឣងលម២
ី [2]["អាឤុ "] = 34
ទំព័រ 323

print(ករឣងចរឣរោះ)

print(ករឣងលម១
ី )

print(ករឣងលម២
ី )

ករឣងចរឣរោះ[1][1] = True េឺ ជាការផ្ទលស់បូរធ្លែុ


ត មាននលខ្នរៀង 1 នៅក្នុងក្រមងអនងរ [4, 5, 6]

តដលជាធ្លែុមាននលខ្នរៀង 1 នៅក្នុងក្រមងអនងរន្មោះ ក្រមងចរមរោះ ។ របការននោះាននធវើឲ្យ

ធ្លែុនៅក្នុងក្រមងអនងរន្មោះ ក្រមងងមី១ និងក្រមងអនងរន្មោះ ក្រមងងមី២ ក្៍រែូវានផ្ទលស់បូរត

តដរ ពីនរពាោះក្រមងអនងរទំងន ោះមានធ្លែុជាក្រមងអនងរ [4, 5, 6] តែមួយដូចោន។

ករឣងល១
ី ម [2]["ណ្មោះ"] = "សុខ" េឺ ជាការផ្ទលស់បូរែថ្មល
ត ជាប់នឹងក្ូននារ ន្មោះ នៅក្នុង

វច នុរក្ម {"ណ្នោះ":"កុសឦ", "អាឤុ":35, "ណអវ":"រសរស"} តដលជាធ្លែុមាននលខ្នរៀង 2

នៅក្នុងក្រមងអនងរន្មោះ ក្រមងងមី១ ។ របការននោះាននធវើឲ្យធ្លែុនៅក្នុងក្រមងអនងរន្មោះ

ក្រមងចរមរោះ និងក្រមងអនងរន្មោះ ក្រមងងមី២ ក្៍ រែូវានផ្ទលស់បូរតដរ


ត ពីនរពាោះក្រមងអនងរទំង

ន ោះមានធ្លែុជាវច នុរក្ម {"ណ្នោះ":"កុសឦ", "អាឤុ":35, "ណអវ":"រសរស"} តែមួយដូចោន

ករឣងល២
ី ម [2]["អាឤុ"] = 34 េឺជាការផ្ទលស់បូរែថ្មល
ត ជាប់នឹងក្ូននារ អាយុ នៅក្នុងវច នុរក្ម

{"ណ្នោះ":"កុសឦ", "អាឤុ":35, "ណអវ":"រសរស"} តដលជាធ្លែុមាននលខ្នរៀង 2 នៅក្នុង

ក្រមងអនងរន្មោះ ក្រមងងមី២ ។ របការននោះាននធវើឲ្យធ្លែុនៅក្នុងក្រមងអនងរន្មោះ

ក្រមងចរមរោះ និងក្រមងអនងរន្មោះ ក្រមងងមី១ ក្៍ រែូវានផ្ទលស់បូរតដរ


ត ពីនរពាោះក្រមងអនងរទំង

ន ោះមានធ្លែុជាវច នុរក្ម {"ណ្នោះ":"កុសឦ", "អាឤុ":35, "ណអវ":"រសរស"} តែមួយដូចោន


ទំព័រ 324

ក្៍ប៉ុតនត នយើងរែូវនធវើការក្ែ់សំោល់ផងតដរថា នបើសិនជានយើងនធវើការផ្ទលស់បូរធ្លែុ


ត ទំងមូលនៅ

ក្នុងក្រមងអនងរណាមួយ ក្រមងអនងរដថ្ទនទៀែនឹងមិនទទូលរងនូវផលប៉ោះពាល់អីវនឡើយ

ពីនរពាោះការផ្ទលស់បូរធ្លែុ
ត ទំងមូល មិនតមនជាការយក្ធ្លែុមក្តក្តរបនទ។ ពិនិែយក្មមវ ិធីខាង

នរកាមននោះ៖

ករឣងចរឣរោះ = [(1, 2, 3), [4, 5, 6], {"ណ្នោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}]

ករឣងលម១
ី = list(ករឣងចរឣរោះ)

ករឣងលម២
ី = ករឣងចរឣរោះ[:]

ករឣងចរឣរោះ[1] = True

ករឣងលម១
ី [2] = "សុ ខ"

ករឣងលម២
ី [2] = 34

print(ករឣងចរឣរោះ)

print(ករឣងលម១
ី )

print(ករឣងលម២
ី )

ករឣងចរឣរោះ[1] = True េឺជាការផ្ទលស់បូរធ្លែុ


ត មាននលខ្នរៀង 1 នៅក្នុងក្រមងអនងរន្មោះ

ក្រមងចរមរោះ ។ របការននោះមិនាននធវើឲ្យមានផលប៉ោះពាល់ដល់ក្រមងអនងរន្មោះ ក្រមងងមី១

និង ក្រមងងមី២ នឡើយ។

ករឣងល១
ី ម [2] = "សុខ" េឺជាការផ្ទលស់បូរធ្លែុ
ត មាននលខ្នរៀង 2 នៅក្នុងក្រមងអនងរន្មោះ

ក្រមងងមី១ ។ របការននោះមិនាននធវើឲ្យមានផលប៉ោះពាល់ដល់ក្រមងអនងរន្មោះ ក្រមងចរមរោះ

និង ក្រមងងមី២ នឡើយ។


ទំព័រ 325

ករឣងល២
ី ម [2] = 34 េឺជាការផ្ទលស់បូរធ្លែុ
ត មាននលខ្នរៀង 2 នៅក្នុងក្រមងអនងរន្មោះ

ក្រមងងមី២ ។ របការននោះមិនាននធវើឲ្យមានផលប៉ោះពាល់ដល់ក្រមងអនងរន្មោះ ក្រមងចរមរោះ

និង ក្រមងងមី១ នឡើយ។

កា ចម្លងទំងរសុង

ផទុយនៅវ ិញ នបើសិនជានយើងចង់ យក្សមាសវែថុនផេងៗមក្ចមលងបនងកើែជាសមាសវែថុងមីនទៀែ

តដលមានធ្លែុ ដាច់នដាយតឡក្នរៀងៗខ្លួន នយើងរែូវនធវើដូចខាងនរកាមននោះ៖

from copy import deepcopy as ចឣលងទ ំងរសុង

ករឣងចរឣរោះ = [(1, 2, 3), [4, 5, 6], {"ណ្នោះ":"កុ សឦ", "អាឤុ ":35, "ណអវ":"រសរស"}]

ី = ចឣលងទ ំងរសុង(ករឣងចរឣរោះ)
ករឣងលម១

ី = ចឣលងទ ំងរសុង(ករឣងចរឣរោះ)
ករឣងលម២

print(ករឣងចរឣរោះ)

print(ករឣងលម១
ី )

print(ករឣងលម២
ី )

from copy import deepcopy as ចឣង ំ


ល ទងរសុ ង េឺ ជាការចមលងយក្ក្បួនន្មោះ deepcopy នៅ

ក្នុងាស្ត្ាតន្មោះ copy មក្ដាក្់ ន្មោះថាជាភាាតខ្មរថា ចមលងទំងស្រសរង ។ ាស្ត្ាតន្មោះ

copy េឺជាាស្ត្ាតតដលសថិែនៅក្នុងបណាណល័យមជឍឹម។

ករឣងល១
ី ម = ចឣង ំ
ល ទងរសុ ង(ករឣងចរឣរោះ) េឺ ជាការយក្ក្បួនន្មោះ ចមលងទំងស្រសរង ឬ

deepcopy នៅក្នុងាស្ត្ាតន្មោះ copy មក្នរបើនដើមបីយក្ក្រមងអនងរន្មោះ ក្រមងចរមរោះ មក្

ចមលងបនងកើែជាក្រមងអនងរងមីន្មោះ ក្រមងងមី១ តដលមានធ្លែុ ដាច់នដាយតឡក្តែឯង។


ទំព័រ 326

ករឣងល២
ី ម = ចឣង ំ
ល ទងរសុ ង(ករឣងចរឣរោះ) េឺ ជាការយក្ក្បួនន្មោះ ចមលងទំងស្រសរង ឬ

deepcopy នៅក្នុងាស្ត្ាតន្មោះ copy មក្នរបើនដើមបីយក្ក្រមងអនងរន្មោះ ក្រមងចរមរោះ មក្

ចមលងបនងកើែជាក្រមងអនងរងមីន្មោះ ក្រមងងមី២ តដលមានធ្លែុ ដាច់នដាយតឡក្តែឯង។

ក្រមងចរមរោះ [(1, 2, 3), [4, 5, 6], {"ន្នោះ":"ក្ុ សល", "អាយុ":35, "នភទ":"របរស"}]


]

ក្រមងងមី១ [(1, 2, 3), [4, 5, 6], {"ន្នោះ":"ក្ុ សល", "អាយុ":35, "នភទ":"របរស"}]


]

ក្រមងងមី២ [(1, 2, 3), [4, 5, 6], {"ន្នោះ":"ក្ុ សល", "អាយុ":35, "នភទ":"របរស"}]


]

នៅក្នុងក្រណ្ីមានការយក្សមាសវែថុមក្ចមលងបនងកើែជាសមាសវែថងម
ុ ី តដលមានធ្លែុដាច់ នដាយ
តឡក្តែឯង ការយក្ធ្លែុនៅក្នុងសមាសវែថុណាមួយមក្តក្តរប មិននធវើឲ្យធ្លែុដូចោននៅក្នុង

សមាសវែថនផេងនទៀែរែូ
ុ វានតក្តរបនឡើយ ពីនរពាោះធ្លែុទំងន ោះជាវែថុខ្ុសៗោន។ ម៉ាងនទៀែ

ការយក្សមាសវែថមក្ចមល
ុ ងនដាយនរបើ ក្បួនន្មោះ ចមលងទំងស្រសរង ឬ deepcopy ននោះ នៅថា

ការចមលងទំងស្រសរង (deepcopy) ពីនរពាោះធ្លែុទំងឡាយនៅក្នុងសមាសវែថុនដើមរែូវានចមលង

ទំងស្រសរងនដើមបីបនងកើែសមាសវែថុងមី។

អាណាពាបាល និង បញ្ជ


ា with

អាណាព្ាបាេ

អាណាពាាល (cotext manager) េឺជាវែថុម៉ាងតដលជាសិសេថ្នថានក្់ទំងឡាយណាតដល

នៅក្នុងន ោះមានវ ិធីពិនសសន្មោះ __enter__ និងវ ិធី ពិនសសន្មោះ __exit__ ។ ពិនិែយក្មមវ ិធី

ខាងនរកាមននោះ៖
ទំព័រ 327

class កាឥរា៉ា ស់ឥង() :

def __enter__(សិសស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __enter__ ររូឧាឞឤកណៅណរស។")

def __exit__(សិសស, រសណអវថ្ឞកំហុស, កំហុស, ឡ័រ៌មាឞសោីឡីកំហុស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __exit__ ររូឧាឞឤកណៅណរស។")

print(រសណអវថ្ឞកំហុស)

print(កំហុស)

print(ឡ័រ៌មាឞសោីឡីកំហុស)

ធានារា៉ា ស់ឥង១ = កាឥរា៉ា ស់ឥង()

def __enter__(សិសស) : េឺ ជាការបនងកើែវ ិធីពិនសសន្មោះ __enter__ តដលជាវ ិធី មិនរែូវការ

ដំណ្ឹងណានផេងនរៅពី សិសេថ្នថានក្់ របស់វានឡើយ។

ំ ុ ស, កហ
def __exit__(សិសស, រសណអវថ្ឞកហ ំ ុ ស, ឡ័រ៌មាឞសី ឡ ំ ុ ស) : េឺជាការបនងកើែវ ិធី
ោ ី កហ

ពិនសសន្មោះ __exit__ តដលជាវ ិធីរែូវការដំណ្ឹងបី នផេងនទៀែនរៅពី សិសេថ្នថានក្់ របស់វា។

ធានារា៉ាស់ឥង១ = កាឥរា៉ាស់ឥង() េឺ ជាការបនងកើែសិសេថ្នថានក្់ន្មោះ ការរា៉ ប់ រង មានក្់មានន្មោះ

ថា ធ្ល រា៉ ប់រង១ ។ នដាយនហែុថានៅក្នុងថានក្់ន្មោះ ការរា៉ ប់រង មានវ ិធីពិនសសន្មោះ

__enter__ និងវ ិធីពិនសសន្មោះ __exit__ ដូចននោះសិសេថ្នថានក្់ន ោះរែូវនៅថា

អាណាពាាល។ ដូចននោះវែថុន្មោះ ធ្ល រា៉ ប់រង េឺជាអាណាពាាលមានក្់។


ទំព័រ 328

បញ្ញា with

បញ្
ា with េឺ ជាបញ្
ា តដលរែូវយក្នៅនរបើជាមួយនឹងអាណាពាាលណាមួយ ក្នុង

នោលបំណ្ងែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងបញ្
ា with ន ោះ។ នហើយនៅនពលតដលរក្រម

បញ្ ា with រែូវយក្នៅអនុ វែត វ ិធីពិនសនសន្មោះ __enter__ នៅក្នុងថានក្់របស់


ា នៅក្នុងបញ្

អាណាពាាលនឹងរែូវយក្មក្នរបើជាសវ័យរបវែតិ។ នហើយលុោះដល់រក្រមបញ្
ា នៅក្នុងបញ្

with រែូវានអនុវែតានចប់សពវរេប់អស់នហើយ វ ិធីពិនសសន្មោះ __exit__ នៅក្នុងថានក្់

របស់អាណាពាាលក្៍ រែូវយក្នរបើជាសវ័យរបវែតិតដរ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class កាឥរា៉ា ស់ឥង() :

def __enter__(សិសស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __enter__ ររូឧាឞឤកណៅណរស។")

def __exit__(សិសស, រសណអវថ្ឞកំហុស, កំហុស, ឡ័រ៌មាឞសោីឡីកំហុស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __exit__ ររូឧាឞឤកណៅណរស។")

print(រសណអវថ្ឞកំហុស)

print(កំហុស)

print(ឡ័រ៌មាឞសោីឡីកំហុស)

ធានារា៉ា ស់ឥង១ = កាឥរា៉ា ស់ឥង()

with ធានារា៉ា ស់ឥង១ :

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា with ររូឧាឞឤកណៅអឞុ ឧរោ។")

with ធានារា៉ាស់ឥង១ : េឺ ជាការនរបើបញ្


ា with ជាមួយនឹងអាណាពាាលន្មោះ ធ្ល រា៉ ប់រង១

តដលជាសិសេថ្នថានក្់ន្មោះ ការរា៉ ប់រង ។


ទំព័រ 329

នយើងន ើញថា ការនរបើបញ្


ា with មិនែរមូវឲ្យមានលក្ខខ្័ណ្ឌអវីទំងអស់ ដូចននោះការអនុវែត

បញ្
ា with នឹងរែូវនធវើនឡើងនៅក្នុងក្រណ្ីទំងអស់ ដូចោននៅនឹងការអនុវែតន៍បញ្
ា class និងឬ

ា with រែូវយក្នៅអនុ វែត វ ិធីពិនសសន្មោះ


def តដរ។ ម៉ាងនទៀែនៅនពលតដលបញ្

__enter__ នៅក្នុងថានក្់ន្មោះ ការរា៉ ប់រង រែូវយក្មក្នរបើជាសវ័យរបវែតិ តមរយៈ

អាណាពាាលន្មោះ ធ្ល រា៉ ប់រង១ ។ ប ទ ប់មក្នទៀែ នៅនពលតដលរក្រមបញ្


ា នៅក្នុង

ា with រែូវានអនុវែតានចប់សពវរេប់អស់នហើយ វ ិធីពិនសសន្មោះ __exit__ នៅក្នុង


បញ្

ថានក្់ន្មោះ ការរា៉ ប់រង ក្៍រែូវយក្មក្នរបើជាសវ័យរបវែតិតមរយៈអាណាពាាលន្មោះ

ធ្ល រា៉ បរង១ ន ោះតដរ នហើយដំណ្ឹងតដលជានមា ៈវែថុ None ចំ នួនបីរែូវផតល់ឲ្យនៅដំណាង

តដលមិនតមនជា សិសេ នៅក្នុងវ ិធីន ោះ។

មួយវ ិញនទៀែ ការយក្វ ិធីពិនសសន្មោះ __exit__ មក្នរបើក្៍រែូវនធវើនឡើងជាសវ័យរបវែតិតដរ នៅ

នពលណាតដលការអនុវែតន៍រក្រមបញ្
ា នៅក្នុងបញ្
ា with បណា
ត លឲ្យមានភាពមិនរបរក្ែីនក្ើែ

មាននឡើង។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class កាឥរា៉ា ស់ឥង() :

def __enter__(សិសស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __enter__ ររូឧាឞឤកណៅណរស។")

return សិសស

def __exit__(សិសស, រសណអវថ្ឞកំហុស, កំហុស, ឡ័រ៌មាឞសោីឡីកំហុស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __exit__ ររូឧាឞឤកណៅណរស។")

print(រសណអវថ្ឞកំហុស)

print(កំហុស)

print(ឡ័រ៌មាឞសោីឡីកំហុស)
ទំព័រ 330

ធានារា៉ា ស់ឥង១ = កាឥរា៉ា ស់ឥង()

with ធានារា៉ា ស់ឥង១ :


raise SyntaxError()
print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា with ររូឧាឞឤកណៅអឞុ ឧរោ។")

raise SyntaxError() េឺ ជាបញ្


ា ែរមូវឲ្យបនងកើែភាពមិនរបរក្ែីរបនភទ SyntaxError ។ ដូចននោះ

នៅនពលតដលរក្រមបញ្
ា នៅក្នុៃបញ្
ា with រែូវយក្នៅអនុវែត ភាពមិនរបរក្ែីរបនភទ

ត លឲ្យវ ិធី ពិនសសន្មោះ __exit__ ថ្នថានក្់


SyntaxError រែូវនក្ើែមាននឡើង។ របការននោះបណា

ន្មោះ ការរា៉ ប់រង រែូវយក្មក្នរបើជាសវ័យរបវែតិតមរយៈអាណារពាលន្មោះ ធ្ល រា៉ ប់រង១

នហើយរបនភទថ្នភាពមិនរបរក្ែី វែថុថ្នភាពមិនរបរក្ែី និងវែថុតដលជាសិសេថ្នថានក្់ន្មោះ

traceback នឹងរែូវផតល់ជាដំណ្ឹងនរៀងោនសរមាប់ដំណាងនៅក្នុងវ ិធីន្មោះ __exit__ ន ោះ។

ម៉ាងនទៀែ នយើងសនងកែន ើញថា នៅនពលភាពមិនរបរក្ែីនក្ើែមាននឡើង វ ិធីពិនសសន្មោះ

__exit__ រែូវយក្មក្នរបើជាសវ័យរបវែតិតមន តែភាពមិនរបរក្ែីមិនរែូវានទទួលយក្នឡើយ។

ត លឲ្យក្មមវ ិធីរែូវឈប់តលងដំនណ្ើរការនៅរែឹមន
របការននោះបណា ោះ។ ក្នុងក្រណ្ីននោះ នដើមបីឲ្យ

ភាពមិនរបរក្ែីរែូវទទូលយក្ វ ិធីពិនសសន្មោះ __exit__ រែូវតែបញ្ូា នែក្កវែថុ True នៅកាន់

ក្តនលងណាតដលវារែូវានយក្នៅនរបើ ។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class កាឥរា៉ា ស់ឥង() :

def __enter__(សិសស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __enter__ ររូឧាឞឤកណៅណរស។")

return សិសស

def __exit__(សិសស, រសណអវថ្ឞកំហុស, កំហុស, ឡ័រ៌មាឞសោីឡីកំហុស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __exit__ ររូឧាឞឤកណៅណរស។")

print(រសណអវថ្ឞកំហុស)
ទំព័រ 331

print(កំហុស)

print(ឡ័រ៌មាឞសោីឡីកំហុស)
return True

ធានារា៉ា ស់ឥង១ = កាឥរា៉ា ស់ឥង()

with ធានារា៉ា ស់ឥង១ :


raise SyntaxError()
print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា with ររូឧាឞឤកណៅអឞុ ឧរោ។")

return True េឺ ជាការបញ្ូា នែក្កវែថុ True នៅកាន់ក្តនលងតដលវ ិធី ពិនសសន្មោះ __exit__ រែូវ

យក្នៅនរបើជាសវ័យរបវែតិ។ របការននោះនធវើឲ្យភាពមិនរបរក្ែីរែូវទទួលយក្ នហើយក្មមវ ិធីរែូវ

ចប់នៅនដាយសរមួល។

បញ្ញា with/as

បញ្
ា with/as េឺ ជាបញ្
ា តដលរែូវយក្នៅនរបើជាមួយនឹងអាណាពាាលណាមួយ ក្នុង

នោលបំណ្ងែរមូវឲ្យអនុវែតរក្រមបញ្
ា នៅក្នុងន ោះ និងភាាប់ ន្មោះណាមួយនៅនឹងវែថុតដលវ ិធី

ពិនសសន្មោះ __enter__ បញ្ូា នមក្។ ពិនិែយក្មមវ ិធីខាងនរកាមននោះ៖

class កាឥរា៉ា ស់ឥង() :

def __enter__(សិសស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __enter__ ររូឧាឞឤកណៅណរស។")

return "ឧរថុកបូឞ __enter__ សញ្ាូ ឞឣក។"

def __exit__(សិសស, រសណអវថ្ឞកំហុស, កំហុស, ឡ័រ៌មាឞសោីឡីកំហុស) :

print("ឧឝ
ិ ីឡិណសសណ្មោះ __exit__ ររូឧាឞឤកណៅណរស។")

print(រសណអវថ្ឞកំហុស)

print(កំហុស)
ទំព័រ 332

print(ឡ័រ៌មាឞសោីឡីកំហុស)
return True

ធានារា៉ា ស់ឥង១ = កាឥរា៉ា ស់ឥង()

with ធានារា៉ា ស់ឥង១ as ឧរថុ :

print("រករឣសញ្ហ
ា ណៅកនុងសញ្ហ
ា with ររូឧាឞឤកណៅអឞុ ឧរោ។")

print(ឧរថុ)

with ធានារា៉ាស់ឥង១ as ឧរុ ថ : េឺ ជាការនរបើបញ្


ា with/as ជាមួយនឹងអាណាពាាលន្មោះ

ធ្ល រា៉ ប់រង១ នដើមបីែរមូវរឲ្អនុវែតរក្រមបញ្


ា នៅក្នុងន ោះ និងភាាប់ន្មោះ វែថុ នៅនឹងវែថុតដល

វ ិធី ពិនសសន្មោះ __enter__ បញ្ូា នមក្។


ទំព័រ 333

ពាក្យបដចចក្ដទស
ក្ញ្ចប់ ................................................. 251 ក្បួនអ មិក្ ........................................ 271

ក្ននាមរបមាណ្វ ិធី .............................. 27 រក្រមបញ្


ា ............................................ 103

ក្ននាមផលិែក្រ................................. 286 ក្ំណ្ែ់ ពនយល់ ....................................... 53

ក្រមង ................................................... 45 ចំនួនពិែ................................................ 31

ក្រមងនងរ .............................................. 54 ចំនួនេែ់................................................ 25

ក្រមងអក្េរ ........................................... 40 ជាអបបបរ ិមា .......................................... 19

ក្រមងអនងរ ........................................... 63 ន្មោះ ................................................... 20

ក្រមងអនងររូបមនត ............................... 283 តដនក្ំណ្ែ់ សក្ល .............................. 140

ការចមលងទំងស្រសរង .............................. 326 តដនក្ំណ្ែ់ ......................................... 140

ការចមលងនសើនលើ .................................. 322 តដនក្ំណ្ែ់ចារ ឹក្ក្នុង ........................... 142

ការទទួលយក្ភាពមិនរបរក្ែី ............. 261 តដនក្ំណ្ែ់ចារ ឹក្នរៅ .......................... 142

ការបនតថានក្់ ......................................... 185 តដនក្ំណ្ែ់នដាយតឡក្ ....................... 141

ការបនតថានក្់រាងចែុនកាណ្នសមើ ............. 210 តដនក្ំណ្ែ់ទូនៅ ................................. 143

ការរបមូលផតំុដំណ្ឹង ............................ 136 ដំណាង ............................................... 128

ការបំតបក្ដំណ្ឹង ................................. 135 ដំណ្ឹង ................................................ 128

ការយក្ថានក្់មក្នរបើ ............................ 161 ដំណ្ឹងតមដំណាង ............................. 131

ការយក្ក្បួនមក្នរបើ ............................ 122 ដំណ្ឹងតមនលខ្នរៀង .......................... 130

ក្ូននារ ............................................... 73 ដំណ្ឹងមានស្រាប់ ............................... 132

តក្ ....................................................... 220 ដំនណ្ើរការ ............................................. 17

ក្ាលក្បួន .......................................... 119 ដំនណាោះស្រាយ ..................................... 14

ក្បួន .................................................... 119 ែក្កវែថុ .................................................... 32

ក្បួនផលិែក្រ ...................................... 276 ែថ្មល....................................................... 73

ក្បួនមានស្រាប់ ................................... 153 តមរនបៀបវច នុរក្ម .......................... 50


ទំព័រ 334

ែួក្បួន ................................................. 119 របមាណ្វ ិធី នពវនត ................................... 26

ថានក្់ .................................................... 158 របមាណ្វ ិធី បូក្ ...................................... 27

ថានក្់នមអរូបី ......................................... 318 របមាណ្វ ិធី បូក្បនត ................................ 43

ថានក្់មានស្រាប់ ................................... 217 របមាណ្វ ិធី របជុំ .................................... 80

ថានក្់នម ................................................ 186 របមាណ្វ ិធី របជុំធ្លែុខ្ុសោន .................. 83

ថានក្់រង ................................................ 186 របមាណ្វ ិធី នរបៀបនធៀប ......................... 36

ទិននន័យ ................................................. 19 របមាណ្វ ិធី រក្ធ្លែុ ................................ 52

ទិននន័យេំរូ .......................................... 159 របមាណ្វ ិធី នលខ្នរៀង ............................ 45

ធ្លែុ ...................................................... 44 របមាណ្វ ិធីរបសពវ ................................ 82

ធ្លែុេូ ................................................... 73 របមាណ្សញ្ដ ...................................... 26

បងអួចបឋម ............................................ 21 របមាណ្អងគ .......................................... 27

បនចចក្នទសជាន់ខ្ពស់ ........................... 271 ផលិែក្រ.............................................. 277

បញ្
ា ..................................................... 18 តផនក្ទន់បក្តរប...................................... 18

បញ្
ា ចាែ់តំង ....................................... 92 ពហុបនតថានក្់ ........................................ 202

បណាណល័យមជឍឹម ............................... 256 ពាក្យពិនសស ........................................ 20

ាំង .................................................... 198 ភាពមិនរបរក្ែី .................................... 258

របនភទ .................................................. 25 ភាាប់....................................................... 20

របមាណ្វ ិធី អែតសញ្ដណ្ ...................... 38 មិនអាចនដាោះដូរាន .............................. 70

របមាណ្វ ិធី កាែ់ចមលង ............................ 46 នមា ៈវែថុ .............................................. 39

របមាណ្វ ិធី េុន ..................................... 27 យនតការនាសសមាអែ ............................ 23

របមាណ្វ ិធី តចក្ .................................... 28 រច ក្រ ............................................... 316

របមាណ្វ ិធី តចក្បនថយ .......................... 28 នរាងជាង................................................ 15

របមាណ្វ ិធី តចក្យក្សំណ្ល់ ............... 28 លក្ខណ្ៈតរបរូប.................................... 199

របមាណ្វ ិធី ដក្ ..................................... 27 លក្ខណ្ៈសមបែតិ .................................. 312

របមាណ្វ ិធី ែក្កវ ិទា .............................. 33 នលខ្នរៀង .............................................. 44


ទំព័រ 335

វច នុរក្ម ........................................... 73 សមបែតិឯក្ជន ..................................... 310

វដតក្មម ................................................. 117 សមបែតិថានក្់ ......................................... 159

វដតក្មមជានិរនតន៍ ................................... 110 សមបែតិាស្ត្ាត .................................... 246

វឌឍនក្រ ............................................... 273 សមបែតិសិសេ ...................................... 177

វែថុ ......................................................... 19 ាស្ត្ាត ............................................... 244

វែថុមានស្រាប់ ...................................... 143 សិសេ .................................................. 162

វ ិធី ....................................................... 159 ាថបនិក្.............................................. 166

វ ិធី របចាំថានក្់ ........................................ 315 សវ័យរបមាណ្វ ិធី ................................... 96

វ ិធី ពិនសស .......................................... 287 សវ័យនសវា ........................................... 320

វ ិធី ឯនកា ............................................... 313 សំណ្ុំ .................................................... 79

វ ិធី រែូវនេាំង ...................................... 198 សំណ្ុំនម................................................ 86

វ ិធី ាំងនេ ............................................ 198 សំណ្ុំរង................................................ 86

សែិ ...................................................... 19 អនុវែត .................................................... 14

សមមូល ............................................... 35 អាចនដាោះដូរាន .................................... 70

សមាសវែថុ ............................................ 44 អាណាពាាល .................................. 326

សមាសវែថអរូ
ុ បី ................................... 281 អាទិភាពថ្នរបមាណ្សញ្ដ ................... 29

សមបែតិពិនសស ................................... 305


ទំព័រ 336

ឯក្ាររាវរជាវ
Mark Lutz, Learning Python, Sebastopol : O’Reilly Media, 2007

Tony Gasddis, Starting Out with Python, Boston : Addison Wesley, 2008

Magnus Lie Hetland, Beginning Python : From Novice to Professional, Apress, 2005

Wesley Chun, Core Python Programming, Prentice Hall, 2006

Stef Maruch, Aahz Maruch, Python For Dummies, For Dummies, 2006

Mark Pilgrim, Dive Into Python, Apress, 2004

Michael Dawson, Python Programming for the Absolute Beginner, Course Technology,
2003

Peter C. Norton, Alex Samuel, Dave Aitel, Eric Foster-Johnson, Beginning Python,
Wrox, 2005

Dave Brueck, Stephen Tanner, Python 2.1 Bible, Wiley, 2001

Michael H Goldwasser, David Letscher, Object-Oriented Programming in Python,


Prentice Hall, 2007

Alex Martelli, Anna Ravenscroft, David Ascher, Python Cookbook, O’Reilly Media,
2005

Alex Martelli, Python in a Nutshell, O’Reilli Media, 2006

David M. Beazley, Python Essential Reference, Sams, 2006

You might also like