Python Essentials Chapter (1)

in #python7 years ago (edited)

Programming ဆုိတာဘာလဲ


ကြ်န္ေတာ္တုိ႕ေန႕စဥ္အသုံးျပဳေနတ့ဲComputersေတြဟာထိေတြ႕ကုိင္တြယ္ေသာအရာHardwareနဲ႕ထိေတြ႕ကုိင္တြယ္မရတ့ဲSoftwareနဲ႕ဖြဲ႕စည္းထားပါတယ္။Hardwareမွာမွတ္ဉာဏ္ပဲရွိျပီး​​အသိဉာဏ္​မ႐ွိပါဘူး။ အဲ့ဒီအခါမွာေတာ့ ကြန္ပ်ဴတာႀကီး အသက္၀င္လာေအာင္၊ အလုပ္ေတြလုပ္လို႔ရေအာင္ သူ႔မွတ္ဥာဏ္ကို အားကိုးၿပီး အသိဥာဏ္နဲ႔တူတဲ့ Software ေတြကို Run ေပးရပါတယ္။ ဒီ Software ေတြေၾကာင့္ ကြန္ပ်ဴတာဟာ လုပ္ေဆာင္ခ်က္ေတြကို လုပ္ႏိုင္တာျဖစ္ၿပီး၊ Hardware ေတြကို ခိုင္းေစရန္အတြက္ Software ေတြလုိအပ္လာပါတယ္။
Software ဆိုတဲ့ေနရာမွာ အလြယ္ေျပာရရင္ေတာ့ Programming ဘာသာစကားေတြနဲ႔ ေရးထားတဲ့ အစုအေ၀းတစ္ခုကို ဆိုလိုပါတယ္။ ဥပမာအားျဖင့္ Adobe Pagemaker, Photoshop, Office, AutoCAD, etc… အားလံုးကို Software လို႔ေခၚဆိုႏိုင္ပါတယ္။ အဲ့ဒါေတြ ျဖစ္လာေအာင္ Programming Languages ေတြ နဲ႔ေရးၾကရပါတယ္။ အဲ့ဒီေတာ့ Programming ဆိုတာ Software ေရးနည္းလို႔ဆိုႏိုင္မွာျဖစ္ပါတယ္။
Computers​ေတြဟာ binary codes​ေတြျဖစ္​တ့ဲ 0နဲ႔1ပဲသိပါတယ္​။binary codes​ေတြနဲ႔သာ​ေရးရင္​႐ႈပ္​​ေထြး​ေစၿပီးအလုပ္​တြင္​က်ယ္​မွာမဟုတ္​သည္​့အတြက္​​ေၾကာင္​့English Like Code ​ေတြျဖစ္​တ့ဲhigh-level programming languageအထိတုိင္​​ေအာင္​တီထြင္​လာၾကပါတယ္​။
High-Level Programming Language​s​
Programmersေတြဟာ English Like Codesေတြေရးျပီးexecute(run)လုိက္တာနဲ႕English Like CodesေတြကေနMachine Codesျဖစ္တ့ဲ Binary Codesေတြအျဖစ္ေျပာင္းလဲသြားပါတယ္။အဲ့လုိေျပာင္းလဲေပးတ့ဲSoftwareနွစ္မ်ဴိးရွိပါတယ္။Compilerနဲ႕Interpreterလုိ႕ေခၚပါတယ္။Compiled Languageနဲ႕Interpreted Languageဆုိျပီးနွစ္မ်ဴိးခြဲျခားႏုိင္ပါတယ္။ကြ်န္ေတာ္တုိ႕ေရးတ့ဲCodesေတြကုိေတာ့Source Codeလုိ႕ေခၚပါတယ္။ကြ်န္ေတာ္တုိ႕ေရးတ့ဲProgrammingအေပၚမူတည္ျပီး CompilerေတြInterpreterေတြကြဲျပားျခားနားသြားပါတယ္။ကြ်န္ေတာ္တုိ႕ေလ့လာမ့ဲPythonဟာဆုိရင္Interpreted Languageပါ။Compilerအလုပ္လုပ္ပုံနဲ႕Interpreterအလုပ္လုပ္ပုံဟာမတူညီပါဘူး။

image

                       Interpreter အလုပ္လုပ္ပုံ

image

                       Compilerအလုပ္လုပ္ပုံ

Compiler က source codes​ေတြကုိExecutable File(Machine Codes)အျဖစ္ Compile လုပ္ပါတယ္။ရရွိလာတ့ဲ Executable file ကုိ hardware executor က execute လုပ္ပါတယ္။ ကိုယ့္Computer ရဲ႕ CPU Power ေပၚမူတည္ၿပီး Compiling Time အခ်ိန္ၾကာတယ္။ဒါေၾကာင့္ တစ္ခါ Compile ဖို႔ အေရး ေသခ်ာစဥ္းစား ေသခ်ာေရး၊ Errorရွိရင္ Error ရွာ၊ Error ေတြ႕ရင္ ျပန္ျပင္။ ဒီေတာ့ Product တစ္ခုထြက္ဖို႔အတြက္ အခ်ိန္ေပးရပါတယ္။ဒါက Compiled Language ေတြရဲ႕ အားနည္းခ်က္ေပါ့
Interpreter က ကိုယ္ေရးထားတဲ့ Code ေတြကို အေပၚကေနေအာက္ကို line by line တစ္ေၾကာင္းခ်င္းစီ ဖတ္သြားၿပီး ကိုယ္ေရးထားတဲ့ Source Code ရဲ႕ Result ကို ခ်က္ျခင္းေဖာ္ျပတယ္။ဒါေၾကာင့္ Production Time ျမန္တယ္။ Error ရွာရလြယ္တယ္။ Compile အတြက္ အခ်ိန္မေပးရေတာ့ဘူး။ ဒါေပမဲ့ Code ကိုတစ္ခါထဲ Translate ေရာ Interpret ေရာလုပ္သြားတ့ဲအတြက္ေၾကာင့္ Binary Executable File မထုတ္ေပးဘူး။ ဒီေတာ့ Program ကိုျပန္ဖြင့္ဖို႔ Interpret ျပန္ျပန္လုပ္ေပးရတယ္။ဒါေၾကာင့္Runtimeမွာၾကာသြားတယ္။Compiler က Binary Executable File ထုတ္ေပးထားေတာ့ Runtime အလုပ္လုပ္ခုိင္းတ့ဲအခ်ိန္မွာ ျမန္တယ္။ ျပန္ၿပီး Compile လုပ္ေနစရာမလိုေတာ့ဘူး။ ဒါေပမဲ့ Development Time မွာ ၾကာသြားတယ္ေပါ့ ။ Compiled Language နဲ႕ Interpreted Language ဟာ အားသာခ်က္ အားနည္းခ်က္ရွိၾကပါတယ္။

Syntax
Programming ေရးတ့ဲအခါမွာ Programming Language အလုိက္ ေရးထုံးေရးနည္း လုိက္နာရမ့ဲ စည္းမ်ည္းစည္းကမ္းေတြရွိပါတယ္။ ထုိစည္းမ်ည္းစည္းကမ္း rule ကုိ Syntax လုိ႕ေခၚပါတယ္။

Type Of Programming Languages
ေယဘုယ်အားျဖင့္ Programming Languages အမ်ဴိးအစားေလးမ်ဴိးရွိပါတယ္။
* Statically Type Language
* Dynamically Type Language
* Strongly Type Language
* Weakly Type Language

  • Statically Type Language
    variableတစ္ခုကုိ တည္ေဆာက္ေတာ့မယ္ဆုိရင္ သိမ္းဆည္းမ့ဲvalueေတြရဲ႕ data typeအလုိက္ ေၾကာ္ျငာေပးရပါတယ္။ဥပမာအေနနဲ႕Java C++ C တုိ႕ဟာ Statically Type Language ေတြပါ။
  • Dynamically Type Language
    Execution Timeက်မွ variableေတြရဲ႕data typeေတြကုိေဖာ္ထုတ္ေပးတ့ဲအမ်ဴိးအစားပါ။ကြ်န္ေတာ္တုိ႕ေလ့လာမ့ဲpythonဟာဆုိရင္Dynamically Type Languageပါ။
  • Strongly Type Language
    Data Typeေတြကုိ မလြဲမေသြလုိက္နာတ့ဲအမ်ဴိးအစားပါ။integer တစ္ခုကုိconvertမလုပ္မခ်င္း stringအျဖစ္ျပဳမူလုိ႕မရပါဘူး။Pythonနဲ႕ Javaဆုိရင္ Strongly Type Languageေတြပါ။

  • Weakly Type Language
    Data Typeေတြကုိ လ်စ္လ်ဴရႈတ့ဲအမ်ဴိးအစားပါ။VB Scriptဟာ Weakly Type Languageပါ။မတူညီတ့ဲData TypeေတြကုိConvertလုပ္စရာမလုိဘဲexecuteလုပ္လုိ႔ရပါတယ္။

Python
Python ဆိုတာ high-level programming language တစ္ခုပါ။ Guido van Rossum ကဖန္တီးခဲ့ၿပီးေတာ့ 1991 ခုႏွစ္မွာ စတင္မိတ္ဆက္ခဲ့ပါတယ္။

python က c, c++,java တို႔လို compiled language မဟုတ္ပဲ interpreter ေပၚမွာ အလုပ္လုပ္တဲ့ interpreted language တစ္ခုျဖစ္ပါတယ္ ၿပီးေတာ့ python က c,c++,java တို႔လို brackets, curly brackets ေတြကိုသံုးၿပီး code blocks မခြဲပါဘူး indentation ေတြကိုသံုးၿပီးေတာ့ code blocks ေတြခြဲပါတယ္

python နဲ႔ေရးတဲ့ program ေတြေတာ္ေတာ္မ်ားမ်ားက clean code ျဖစ္တ့ဲအတြက္ေၾကာင့္ high productivity ျဖစ္ပါတယ္။high productivity ကသူ႔ရဲ႕ အလုပ္လုပ္ႏိုင္တဲ့ ပမာဏ ကိုေျပာတာပါ။ဥပမာ java မွာ problem တစ္ခု solve လုပ္ဖို႔ coding line 30 ေရးရတယ္ဆိုရင္ python မွာ coding line ငါးေၾကာင္းေလာက္နဲ႔ၿပီးသြားတာမ်ိဳးကိုေျပာတာပါ

python က multiple programming paradigm ကုိ support ေပးပါတယ္, object oriented,functional programming, procedural programming, etc .... စတာေတြကို support လုပ္ေပးပါတယ္

Python က Dynamically type langauge အမ်ဴိးအစားပါ။ ထုိေၾကာင့္ auto memory management လုပ္ေပးပါတယ္။

Khant Si Thu