Wednesday, November 29, 2017

Python3 Lesson 4


Lesson 1  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Lesson 2  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Lesson 3  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ


Python Programming
.
Functions in Python
ဒီခါေတာ့ ဖန္ရွင္ေလးေတြကို အဓိက ေဆြးေႏြးသြားပါမယ္။
Function ဆိုတာဟာ ဆက္စပ္ action တစ္ခုခုကို လုပ္ေဆာင္ဖို႔အတြက္ reusable code ေတြကို ေပါင္းစပ္ထားတဲ့ block တစ္ခုပါ။
Function ေတြဟာ ကြ်န္ေတာ္တို႔ ေရးဆြဲမယ့္ application ေတြရဲ႕ module ေတြကို ပိုေကာင္းေအာင္ လုပ္ေပးသလိုပဲ ကုဒ္ေတြ ျပန္သံုးတဲ့အခါလည္း အဆင္ေျပေအာင္ လုပ္ေဆာင္ေပးပါတယ္။
Python မွာေတာ့built-in function ေတြ အမ်ားႀကီး ပါဝင္ျပီး အလြန္အသံုးဝင္တဲ့ဖန္ရွင္ေတြ ပါဝင္ပါတယ္။ နမူနာေျပာရရင္ေတာ့  print function လိုမ်ိဳး ဖန္ရွင္ေတြ ျဖစ္ပါတယ္။
ကဲ ဥပမာေလး စလိုက္ရေအာင္။ (IDLE 3  မွာ ေရးလိုက္တယ္ဆိုတာေတာ့ ေျပာစရာမလိုေတာ့ဘူးထင္ပါတယ္။)
...................
>>> print ("Happy Birthday to you!")
Happy Birthday to you!
>>> print ("Happy Birthday to you!")
Happy Birthday to you!
>>> print ("Happy Birthday, dear Emily.")
Happy Birthday, dear Emily.
>>> print ("Happy Birthday to you! \n")
Happy Birthday to you!

>>> print ("Hope you have a wonderful birthday!")
Hope you have a wonderful birthday!
>>>
..........
တစ္ေၾကာင္းစီ အေျဖကို ျမင္ရပါျပီ။ ဒါကေတာ့ print function ေလးပါ။ ေလးေၾကာင္းေျမာက္နဲ႔ ၅ေၾကာင္းေျမာက္ၾကားမွာ enter တစ္ေနရာစာ ျခားႏိုင္ဖို႔အတြက္ ေလးေၾကာင္းေျမာက္ လိုင္းရဲ႕ ေနာက္ဆံုးမွာ \n ဆိုတာေလး ထည့္ေရးထားတာ သတိျပဳမိမယ္ထင္ပါတယ္။ သီခ်င္းနဲ႔ မသက္ဆိုင္တဲ့ စာသားကို ျခားေပးလိုက္တာပါ။



Creating Functions (ဖန္ရွင္မ်ားကို ဖန္တီးျခင္း)
def ဆိုတဲ့ keyword နဲ႔  function block ေတြကို သတ္မွတ္ႏိုင္ပါတယ္။ သူ႔ရဲ႕ အသံုးျပဳပံုေလးကေတာ့ def name () : ပါ။ def ကိုအရင္ေရးရပါတယ္။ ျပီးရင္ space ျခားျပီး function name ကို သတ္မွတ္လို႔ ရပါတယ္။ ျပီးရင္ေတာ့ parentheses () နဲ႔ colon : တို႔ကို ထည့္သြင္းရပါမယ္။
e.g. def happyBirthdayEmily(): ေပါ့။
ခုန happy birthday သီခ်င္းေလးနဲ႔ ျပန္ျပီး ေပါင္းစပ္ရေအာင္။
နမူနာ ပရိုဂရမ္ေလးတစ္ခု ဆြဲဖို႔အတြက္ IDLE3 ကေန File>>>New ေလး ေခၚလိုက္ရေအာင္။
...........
#Simple print function

def happyBirthdayEmily ():
    print ("Happy Birthday to you!")
    print ("Happy Birthday to you!")
    print ("Happy Birthday, dear Emily.")
    print ("Happy Birthday to you! \n")
    print ("Hope you have a wonderful birthday!")
happyBirthdayEmily()
print ("Hope you have a wonderful birthday!")

...........
အထက္ပါအတိုင္း ကုဒ္ေလးေတြ ရိုက္ျပီးတဲ့အခါ day5 နာမည္နဲ႔ desktop ေပၚ Save ပါ။ RUN option ကေနပဲ RUN လိုက္ပါ။
ပံု၁ မွာ run ထားတဲ့ပံုစံ နမူနာ ျပထားပါေသးတယ္ဗ်။ RUN ျပီးလို႔ ေနာက္တစ္လိုင္းကူးသြားရင္ ဖန္ရွင္နာမည္ျဖစ္တဲ့ happyBirthdayEmily ကို ရိုက္ၾကည့္ပါဦး။ happy birthday သီခ်င္းစာသားေလးေတြ ျပန္ထြက္လာမွာျဖစ္ပါတယ္။
ကုဒ္ေတြကို ကူးမထည့္ပါနဲ႔ မိမိဘာသာ ရိုက္ပါ။ ကူးထည့္ျခင္းသည္ တတ္ေျမာက္မႈကို အေႏွာင့္အယွက္ေပးပါတယ္ခင္ဗ်။
..............
.............
Parameters in Functions
** Syntax
def functioname (parameters):
    "function-docstring"
    function-suite
    return [expression]
** return [expression] ဆိုတာကို ဖန္ရွင္ကို ေခၚသံုးသူအတြက္ ေဖာ္ျပခ်က္ကို ျပသျပီး ဖန္ရွင္ကေန ထြက္ခြာဖို႔ အသံုးျပဳပါတယ္။ သေဘာတရားကို ေျပာျပရတာက ခက္ပါတယ္။ လက္ေတြ႔ သံုးတဲ့အခါ နားလည္လာမွာပါ။

...........
Calling a Function
function တစ္ခုကို def သတ္မွတ္တဲ့ေနရာမွာ နာမည္ တစ္ခုပဲ အသံုးျပဳ သတ္မွတ္ေပးပါတယ္။ parameter ေတြမွာေတာ့ function, structures နဲ႔ blocks of code ေတြ ပါဝင္ႏိုင္ပါတယ္။ ဆိုလိုခ်င္တာက ဖန္ရွင္နာမည္တစ္ခု သတ္မွတ္တည္ေဆာက္ထားေပမယ့္ အထဲမွာ ပါဝင္တဲ့ parameter ေတြကေတာ့ အမ်ိဳးမ်ိဳး ကြဲျပားႏိုင္ပါတယ္။
ဖန္ရွင္တစ္ခုရဲ႕ အေျခခံ structure ကို finalized လုပ္တဲ့အခါ ဒီဖန္ရွင္ေတြကို အျခားဖန္ရွင္ေတြကေန တိုက္ရိုက္ ေခၚသံုးႏိုင္သလို pythom prompt ကေန ႀကံဳတဲ့အခါတိုင္း အလ်ဥ္းသင့္သလို ေခၚသံုးႏိုင္မွာ ျဖစ္ပါတယ္။ ကဲ printme() function ေလးကို ေခၚသံုးျပီး နမူနာ လုပ္ၾကည့္ရေအာင္ဗ်ာ.........
IDLE 3 မွာ new မေခၚဘဲ တိုက္ရိုက္ ေရးၾကည့္ရေအာင္
.........
>>> def printme(str):
"This prints a pased string into this function."
print (str)
return;

>>> printme("lm first call to user defined function!")
lm first call to user defined function!
>>> printme("Again second call to the same function!")
Again second call to the same function!
>>>
.......................
စာသားေတြထဲမွာ ထည့္ျပီး ရွင္းျပထားပါတယ္။ ျပန္ေျပာျပရမယ္ဆိုရင္
>>> def printme(str):                                    ဒါက အားလံုးသိတဲ့အတိုင္း def ကိုသံုးျပီး printme ဖိုင္ကို တည္ေဆာက္လိုက္ပါတယ္။
"This prints a pased string into this function."  str လို႔ ဆိုခဲ့တာေၾကာင့္ string အေနနဲ႔ စာသားကို ထည့္သြင္းလိုက္ပါတယ္။
print (str) ထည့္သြင္းလိုက္တဲ့ str ေလးကို print လုပ္လိုက္ပါတယ္
return; အဆံုးသတ္ဖို႔ ထည့္သြင္းလိုက္တဲ့ return ရဲ႕ ေနာက္မွာ semicolon ; ထည့္သြင္းခဲ့ျခင္းကို မေမ့ပါနဲ႔
ခုဆိုရင္ေတာ့ သတ္မွတ္ခ်က္ေလးေတြကို ထည့္သြင္းျပီးျပီမို႔ စတင္ေခၚၾကည့္လိုက္ပါတယ္။
>>> printme(I'm first call to user defined function!") printme ကို သတ္မွတ္ခဲ့စဥ္တုန္းက str နဲ႔ပဲ သတ္မွတ္ခဲ့တာမို႔ ဒီေနရာမွာ ျဖည့္သြင္းလိုက္မယ့္ string ကို ေဖာ္ျပေပးသြားမွာပါ။
I'm first call to user defined function! ဒီေနရာမွာ အေပၚက ျဖည့္သြင္းတဲ့ string ေပါ့
>>> printme("Again second call to the same function!") ေနာက္တစ္ေၾကာင္း ပထမနဲ႔ မတူေအာင္ ျဖည့္ျပီး ေခၚလိုက္ပါတယ္
Again second call to the same function! ေခၚလိုက္တဲ့အတိုင္းပဲ ထြက္ပါတယ္။
>>>
္ေျပာစရာရွိေကာင္းရွိလာႏိုင္ပါတယ္။ အဲလို တစ္ေၾကာင္းစီ ထုတ္ခ်င္တာမ်ား printme ကို သတ္မွတ္မေနဘဲ print နဲ႔ပဲ တိုက္ရိုက္ထုတ္ေပါ့ လို႔။ ေျပာစရာရွိလာပါတယ္။ print နဲ႔ပဲ တိုက္ရိုက္ထုတ္လို႔လည္း ရပါတယ္။
မတူညီတာက printme ဆိုတာ ကြ်န္ေတာ္တို႔ သတ္မွတ္လိုက္တဲ့ ဖန္ရွင္ျဖစ္ေနပါတယ္။ ေနာက္ထပ္ အသံုးဝင္တာေတြကိုေတာ့ ဆက္ျပီး ေလ့လာရေအာင္ပါ။
.....................................................
....................................................................................................

Python Programming
ဒီတစ္ခါေတာ့   Code Type အနည္းငယ္ကို ေဖာ္ျပေပးလိုပါတယ္။ \n ေရးရင္ ေနာက္တစ္လိုင္း enter ျခားေစတဲ့ ကုဒ္မ်ိဳးေလးေတြပါ။

Escape What it does
\\ Baskslash (\) ေရးမယ့္ string ထဲမွာ \ ထည့္ခ်င္တဲ့အခါ ဖန္ရွင္အျဖစ္ မသတ္မွတ္ေအာင္ \\ ေရးရတယ္
\' Single-quote(') ေရးမယ့္ string ထဲမွာ ' ထည့္ခ်င္တဲ့အခါ single quote သမားေတြပဲ ဒီလိုလုပ္ဖို႔ လိုတယ္။ Double Quotes နဲ႔ ေရးရင္ မလို
\" Double-quotes (") Double quotes ထဲမွာ " ထပ္ထည့္ခ်င္ရင္ ဥပမာ ကိုယ္ထုတ္ခ်င္တာက It is "apple". ဆိုပါေတာ့။ အတြင္းက " ေတြ ေပၚေအာင္ သံုးတယ္။
\a ASCII bell (BEL) Telephone ပံုေလး ေပၚတယ္
\b ASCII backspace (BS) print ("apple\bag") ေရးၾကည့္ရင္ သိမယ္။ \b ေနရာ ဘာေျပာင္းသြားမလဲဆိုတာ လုပ္ၾကည့္
\f ASCII formfeed (FF) print ("apple\flower") ေရးၾကည့္ အဲတိုင္းမထြက္ဘဲ \f ေနရာ ဘာဝင္လာမလဲ ဆိုတာမွတ္
\n ASCII linefeed (LF) ဒါကေတာ့ သိတယ္ enter လို႔ ေျပာတာ
\r Carriage Return (CR) print ("apple\ring") \r ေနရာမွာ ေျပာင္းသြားတာကို မွတ္ထား။ ကိုယ့္ဘာသာ လုပ္ၾကည့္မွ သိမွာ
\t Horizontal Tab (TAB) \t တစ္ခါထည့္ရင္ tab တစ္ခ်က္စာ ေရႊ႕တယ္။ print ("apple\t\t\torange")  စမ္းၾကည့္ပါ။

ဒီတိုင္း ေျပာျပတာက နားလည္ရခက္ပါလိမ့္မယ္။ ေအာက္ပါအတိုင္း ရိုက္ျပီး စမ္းၾကည့္ရေအာင္ပါ။
IDLE 3 ကို ဖြင့္ျပီး ေပၚလာတဲ့ Shell မွာ တိုက္ရိုက္ ရိုက္စမ္းၾကည့္ပါ။  ပံု ၂ မွာ နမူနာ ျပထားပါတယ္။
print ("ဒီထဲမွာ အေပၚက သေကၤတေတြ ပါေအာင္ ထည့္ရိုက္ၾကည့္ပါဒ")
example
print ("apple\new")
print ("aple\\new")
ဘာကြာလဲ သတိထားမိေအာင္ လုပ္ပါ။
......
ျပီးရင္ ေအာက္ပါ ေလ့က်င့္ခန္းေတြကို ေသခ်ာလုပ္ပါ။

A is a cat. B is a dog. C is a "cow".
A is in \app\tmp. B is in "house".
C is \run\hut.

အထက္ပါ စာသံုးေၾကာင္းအတိုင္း အတိအက် ထြက္ေစရန္  print သံုးျပီး တစ္ေၾကာင္းတည္း ေရးျပပါ။
အေျဖပံုကို chatbox ကေနသာ ပို႔ပါရန္။
.............................
ဒီေန႔အတြက္ေတာ့ ေနာက္ဆံုးအေနနဲ႔ input function ေလးနဲ႔ အဆံုးသတ္ပါမယ္။

Input Function  ဆိုရင္ သိျပီးသားျဖစ္ပါတယ္။
input("Enter your name.") စတဲ့ ပံုစံမ်ိဳး ကြ်န္ေတာ္တို႔ ေရးခဲ့ၾကပါတယ္။ သံုးလည္း သံုးခဲ့ၾကပါတယ္။ အဆင္လည္း ေျပခဲ့ၾကပါတယ္။
ဒုတိယ ေလ့က်င့္ခန္းအေနနဲ႔ input function မ်ား ပါဝင္တဲ့ program ေလးတစ္ခုကို ေရွ႕သင္ခန္းစာမ်ား လံုးဝ လံုးဝ ျပန္မၾကည့္ဘဲ ေရးရပါမယ္။
သင္ခန္းစာကေတာ့ ထုထည္ တြက္နည္း ျဖစ္ပါတယ္။ area.py ဆိုတာေလး သင္ခဲ့ရပါတယ္။ ဆင္တူေပါ့။
အခ်က္အလက္ နည္းနည္း ေပးပါမယ္။ ထုထည္ရဲ႕ ေဖာ္ျမဴလာက ေအာက္ေျခဧရိယာ x အျမင့္ ျဖစ္ပါတယ္။
Volume = A * H
A= Area (အလ်ား  x  အနံ) length * width
H= Heigh (အျမင့္)
ဒါေၾကာင့္
ထုထည္ = အလ်ား x အနံ x အျမင့္
Volume = length * width * heigh ျဖစ္ပါတယ္
သံုးခုေျမွာက္လို႔ ယူနစ္ သံုးထပ္ cubic unit ျဖစ္ပါတယ္။ cm ကို သံုးစမယ္ဆိုရင္ cubic cm ေပါ့။
အားလံုးပဲ ဒီအိမ္စာေလးကို လုပ္ႏိုင္မယ္ ထင္ပါတယ္



See U ဗ်ာ



 Thanks

Khit Minnyo

0 comments:

Post a Comment