Monday, November 6, 2017

Python2 Lesson 10


.
Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here
Lesson 5 ၾကည့္ရန္ link >> Click Here
Lesson 6 ၾကည့္ရန္ link >> Click Here
Lesson 7 ၾကည့္ရန္ link >> Cl
ick Here

Lesson 8 ၾကည့္ရန္ link >> Click Here
Lesson 9 ၾကည့္ရန္ link >> Click Here
.
Lesson 9 မွ အဆက္
Python Progrmming
...........................................
မေန႔က lesson မွာ ပရိုဂရမ္တစ္ပုဒ္ကို လက္ေတြ႔ ဆြဲျပခဲ့ပါတယ္။
သိပ္မၾကီးမားေပမယ့္ တိုတိုေလးနဲ႔ ေရးလို႔ျပီးသြားတဲ့ အံ့ၾသဖြယ္ ပရိုဂရမ္ကေလးပါ။ C လို language မ်ိဳးနဲ႔ ေရးရင္ေတာ့ ခုထက္ မ်ားစြာ ေရးရမွာျဖစ္ပါတယ္။
ဒီေန႔သင္ခန္းစာေလးကိုပဲ ထပ္ျပီး ဆက္ရေအာင္ပါ။
..................................
Nested List အေၾကာင္းေလးပါ။ ျမန္မာလိုဆိုရင္ေတာ့ အသိုက္အျမံဳလို႔ ေျပာလို႔ရသလို ေျပာလို႔ရေလာက္ေအာင္လည္း အစံုေရာထားတဲ့ အရာပါ။
ဘာေတြေရာထားလဲဆိုရင္ေတာ့ Sequence and Tuple ကို ေရာေရးထားတာပါ။ ဒီေနရာမွာ ထပ္ျပီး ရွင္းျပခ်င္ပါေသးတယ္။ သိျပီးသားကို ျပန္ေႏႊးတဲ့ သေဘာပါ။
ေရွ႕မွာလည္း ေျပာခဲ့ျပီးပါျပီ။ [..ေထာင့္ကြင္း...] ကြင္းထဲမွာ ေရးရင္ Sezuence list ေရးတာျဖစ္ျပီး (......လက္သည္းကြင္း......) ထဲမွာ ေရးရင္ေတာ့ ဒါက tuple ျဖစ္ပါတယ္။
အဲ၂ခုကို ထပ္မံ ေရာေထြးလိုက္တဲ့ အသိုက္အျမံဳေလးကို Nested List လို႔ ေခၚဆိုႏိုင္ပါတယ္။
ကဲ နမူနာေလး လုပ္ၾကည့္ရေအာင္ပါ။ python မွာပဲ ေရးရေအာင္ဗ်။ ထံုးစံအတိုင္းပဲ terminal ေလးဖြင့္ျပီး python လို႔ ရိုက္ျပီး enter ပါ။
.....
kmn = [ 'apple', ('orange', 'grape'), ['banana', 'coconut'], 'mango']
kmn
ဒီလိုေလးေရးျပီး enter ၾကည့္ရင္
>>> kmn = [ 'apple', ('orange', 'grape'), ['banana', 'coconut'], 'mango']
>>> kmn
['apple', ('orange', 'grape'), ['banana', 'coconut'], 'mango']
>>>

အဲသည္မွာ ကြ်န္ေတာ္တို႔ အရင္က စမ္းသပ္ဖူးတဲ့ ပံုစံေလး ျပန္ေဖာ္ၾကည့္ရေအာင္။ list အေနနဲ႔ ၾကည့္မယ္ဆိုရင္
အရင္သင္ခန္းစာေတြကအတိုင္း တြက္ရင္ KMN [0] က apple ျဖစ္ျပီး kmn[1] က orange ျဖစ္ေနမွာပါ။ kmn [2] ဆိုရင္ေတာ့ grape ျဖစ္ရမွာေပါ့။ အဲလိုသာဆို ဘာထူးမွာမို႔လဲ။
အဲလိုသာဆိုရင္ ပထမအတိုင္းပဲ သံုးမွာေပါ့။ ဘာထူးလို႔ Nested List ကို သံုးတာလဲ။ ဘာေၾကာင့္ သံုးရသလဲဆိုရင္ေတာ့ လက္ေတြ႔စမ္းၾကည့္တာ ပိုေကာင္းပါတယ္။
>>> kmn [0]
'apple'
ဒါက ပထမအတိုင္းပါပဲ။ မထူးျခားပါဘူး။ ထူးျခားေအာင္လည္း ေရးမထားေသးပါဘူး။
>>> kmn [1]
('orange', 'grape')
ကြာျခားမႈကို ဒီေနရာမွာ စျပီး သိႏိုင္ပါျပီ။ ဒုတိယ element မွာေတာ့ ကြင္းတစ္ခုရွိတာေၾကာင့္ အဲသည္ တစ္ခုလံုးကို ျပန္ခ်ေပးလိုက္တာပါ။
>>> kmn [2]
['banana', 'coconut']
ဒီအခ်က္ေတြကိုၾကည့္ရင္ လက္သည္းကြင္း() ေရာ၊ ေထာင့္ကြင္း [] ေရာပါ အသံုးျပဳႏိုင္တာကို ေတြ႔ရမွာျဖစ္ျပီး ကြင္းေတြ မမွားဖို႔နဲ႔ မက်န္ခဲ့ဖို႔ကိုေတာ့ ဂရုစိုက္ရပါမယ္။
>>> kmn [3]
'mango'
ဒီေလာက္ဆိုရင္ ပံုမွန္သံုးေနတာနဲ႔ nested လုပ္ျပီး သံုးတာ ကြာျခားမႈကို ေတြ႔ႏိုင္ပါျပီ။
..............
....
ဒီတစ္ခါေတာ့ ေနာက္တစ္မ်ိဳး ထပ္စမ္းရေအာင္။
>>> kmn = [('Aung', 20), ('Mg', 22), ('Naung', 23), ('Ma', 25), ('Moe', 27)]
ခုလိုေလး သတ္မွတ္ေပးလိုက္ပါတယ္။ Sequence ေလးေတြခ်ည္းပဲ စုထားျပီး  Nested လုပ္ထားတာပါ။
တစ္ခုခ်င္းစီ ေခၚသံုးၾကည့္ပါမယ္။ ေအာက္ပါအတိုင္းေပါ့။
>>> kmn = [('Aung', 20), ('Mg', 22), ('Naung', 23), ('Ma', 25), ('Moe', 27)]
>>> kmn [1]
('Mg', 22)
>>> kmn [1] [0]
'Mg'
>>> kmn [1] [1]
22
kmn [1] ဆိုတာ 0 ျပီး 1 ဆိုေတာ့ ဒုတိယ entry ('Mg', 22) ေပါ့။
kmn [1] [0] ဆိုတာကေတာ့ ခုန entry ထဲကမွ ပထမ element လို႔ ဆုိလိုတာျဖစ္လို႔ Mg ေပါ့။
kmn [1] [1] ဆိုတာေတာ့ ဒုတိယ entry ထဲက ဒုတိယ element 22 ေပါ့။
ဒါဆို က်န္တဲ့ element ေတြကိုလည္း ေခၚသံုးၾကည့္ပါဦး။ စံုေအာင္ေခၚၾကည့္ပါ။ မွတ္မိသြားဖို႔ လိုအပ္ပါတယ္။
.....
.....
>>> dictionary = {"Keyword":"Value"}
>>> dictionary = {"A": "The first letter of English aphabet", "B": "The second letter of English alphabet", "C": "The third letter of English alphabet"}
>>> dictionary ["A"]
'The first letter of English aphabet'
Dictionary ေရးဖို႔အတြက္ နမူနာ ပံုစံပါ။ Keyword ေတြကို အစံုျဖည့္ႏိုင္ဖို႔ဆိုတာေတာ့ အခ်ိန္ အမ်ားႀကီး ယူရမွာျဖစ္ပါတယ္။
အထက္ပါ dictionary ကိုပဲ ထပ္ျဖည့္ျပီး ေရးၾကည့္ပါ့မယ္။ ပ််င္းေနမွာစိုးလို႔ စိတ္ဝင္စားစရာ စကားလံုး ၂လံုး ထပ္ျဖည့္လိုက္တာပါ။ hacker နဲ႔  cracker ဆိုတာပဲ ျဖည့္လိုက္တာေနာ္
ၾကည့္။ ဒီလိုျဖစ္သြားျပီ။
>>> dictionary = {"Keyword":"Value"}
>>> dictionary = {"A": "The first letter of English aphabet", "B": "The second letter of English alphabet", "C": "The third letter of English alphabet", "hacker": "1.a person who uses computers to gain unauthorized access to data.2.a person or thing that hacks or cuts roughly.", "cracker": "1. a thin, crisp wafer often eaten with cheese or other savory toppings.2.a person who breaks into a computer system, typically for an illegal purpose.3.an installation for cracking hydrocarbons."}
ေဒတာျဖည့္သြင္းျပီးျပီဆိုေတာ့ စမ္းၾကည့္ရေအာင္။
>>> dictionary ["hacker"]
'1.a person who uses computers to gain unauthorized access to data.2.a person or thing that hacks or cuts roughly.'
သိခ်င္တဲ့စာလံုး ရိုက္ထည့္ျပီး ရွာလိုက္တယ္ေနာ္။ အေျဖေတာ့ ရျပီ။ စကားလံုးအစံုသံုးခ်င္ရင္ေတာ့ ကိုယ့္ဘာသာ အစံုျဖည့္ျပီး leafpad မွာ ေရးသာသိမ္းထားေတာ့။ လိုအပ္ရင္ ယူသံုးေပါ့ ေနာ
............
...........
ကဲ ခုတိုင္းဆိုေတာ့ ဒါပဲလားမဟုတ္ေသးဘူး။ ကြ်န္ေတာ့္လို စာရိုက္ပ်င္းသူေတြက် အျခား ေရးျပီးသားထဲက ကူးခ်လိုက္ရံု။ ကိုယ္မႀကိဳက္တာေလးေတြ ျပန္ျပင္ ျဖည့္စြက္ေပါ့
ကဲ ဘယ္လိုကူးမလဲ။ ခုန dictionary ကိုပဲ နာမည္ေျပာင္းျပီး ကူးယူမယ္။ :)
အထဲက စာေၾကာင္းေတြကို ဖိုင္အသစ္ထဲကို အကုန္လံုး ကူးထည့္လိုက္မွာလား။ မဟုတ္ပါဘူး။ အဲထက္ ပိုလြယ္ပါတယ္။ ခုန ဖိုင္ထဲမွာ ေအာက္ပါ ကုဒ္လိုင္းေလးတစ္လိုင္း ထပ္တုိးရိုက္ထည့္လိုက္ရံုပါပဲ။
>>> kmn = dictionary.copy()
ဒီတစ္လိုင္း enter လိုက္ရင္ dictionary ဆိုတာထဲကေန kmn ဆိုတဲ့ထဲကို ကူးယူလိုက္တာပါ။ ေရာက္မေရာက္ သိခ်င္ရင္ ခုန ရွာလိုက္သလို ျပန္ရွာၾကည့္ရေအာင္။
>>> kmn = dictionary.copy()
>>> kmn ["hacker"]
'1.a person who uses computers to gain unauthorized access to data.2.a person or thing that hacks or cuts roughly.'
>>> kmn ["cracker"]
'1. a thin, crisp wafer often eaten with cheese or other savory toppings.2.a person who breaks into a computer system, typically for an illegal purpose.3.an installation for cracking hydrocarbons.'
လြယ္တယ္ဗ်ေနာ။ ေရးထားတာ လြယ္ကူရွင္းေတာ့ အလြယ္တကူ ကူးလို႔ ရတာေပါ့။   :)
.....
........
ဒီခါေတာ့ အလြန္ အေရးႀကီးတဲ့ အပိုင္းကိုသြားပါမယ္။ Python မွာ Function ေတြ အမ်ားႀကီးပါတယ္ဆိုတာ သိျပီးသားျဖစ္ပါတယ္။
ဒီခါေတာ့ ကိုယ္ပိုင္ ဖန္ရွင္တစ္ခု တည္ေဆာက္အသံုးျပဳဖို႔ကို ေဆြးေႏြးသြားပါမယ္။ စိတ္ဝင္စားစရာ ေကာင္းလာျပီထင္တယ္။
ကဲ စရေအာင္။
....
.....
def kmn():
    print "Hello,This is new function."
ဖန္ရွင္တစ္ခု ကိုယ္ပိုင္ သတ္မွတ္ေတာ့မွာမို႔ def ဆိုျပီး definition စ ဖြင့္ပါတယ္။ kmn ဆိုတဲ့ ဖန္ရွင္ကို ဖန္တီးေတာ့မွာပါ။
def kmn():
    print "Hello, this is new function...."
print "Hey function.."
kmn()
print raw_input("\n Press Enter")
ကဲ နည္းနည္းေလး ထပ္ဆက္ထားေပးတယ္ေနာ္။ ခု ေရးထားတဲ့ စာေတြကို အသံုးျပဳခ်ိန္က်ရင္ ေဖာ္ျပမယ္လို႔ ဆိုလိုတာပါ။
ခုေဖာ္ျပထားတာေတြကို idle ရဲ႕ new file မွာ ေရးျပီး တိုက္ရိုက္ RUN ၾကည့္လိုက္ရင္ ပိုျပီး သိသာမွာပါ။
ကဲ အရင္ RUN ၾကည့္ရေအာင္ေနာ္။
Hey function..
Hello, this is new function....

 Press Enter
ဆိုျပီး ရ လာပါတယ္။ မထူးျခားေသးသလို ျဖစ္ေနေသးလား။ ဒါဆိုရင္ အလည္မွာ ၾကားညွပ္ထားတဲ့ kmn() ေလးကို ျဖဳတ္ျပီး ျပန္ RUN ၾကည့္မယ္ဗ်ာ။
Hey function..

 Press Enter
ဆိုျပီး ေပၚလာပါမယ္။ စာေၾကာင္း တစ္ေၾကာင္း ပရင့္ ထုတ္တာ ေပ်ာက္ေနပါတယ္။ ေပ်ာက္တဲ့ စာေၾကာင္းကို မွတ္မိေသးလားဗ်။
မသဲကြဲရင္ အေျဖ၂ခု ႏႈိင္းယွဥ္ၾကည့္ပါ။ ကြာျခားမႈကို ေတြ႔ရပါလိမ့္မယ္။ ခုဆိုရင္ေတာ့ ကြ်န္ေတာ္တို႔ သတိထားမိတာ တစ္ခု ရွိလာပါျပီ။ ဟုတ္ပါတယ္။
def kmn():
    print "Hello,This is new function."
လို႔ သတ္မွတ္ခဲ့စဥ္ကတည္းက kmn ကို သံုးရင္ Hello,This is new function. ဆိုတဲ့ စာသားကို ပရင့္ထုတ္ျပမယ္လို႔ ဖန္ရွင္ သတ္မွတ္ခဲ့တာျဖစ္တာေၾကာင့္ ေနာက္တစ္ခါ kmn လို႔ ေရးတိုင္း အဲေနရာတိုင္းမွာ ပရင့္ထုတ္ျပသြားမွာျဖစ္ပါတယ္။ စာသားကိုေတာ့ ကိုယ္ႀကိဳက္ရာကို အစားထိုးႏိုင္တာေပါ့။
....
ကဲ ဒီခါ ေနာက္တစ္ခု သတ္မွတ္ရေအာင္။ python ကိုပဲ terminal ကေန ေခၚလိုက္ပါ။
>>> def kmn(x):
...  return 'How are you, ' + x
...
အထက္ပါအတိုင္း သတ္မွတ္လိုက္ပါျပီ။ idle မွာမဟုတ္တဲ့အတြက္ ဒုတိယေၾကာင္း ေရးပံုကို သတိျပဳပါ။ One space
အထက္ပါအတိုင္း သတ္မွတ္ျပီးတဲ့ေနာက္ x ေနရာမွာ တစ္ခုခု အစားထိုးျပီး အေျဖထုတ္ၾကည့္ပါ။
>>> kmn("Mr.Ag")
'How are you, Mr.Ag'
အေျဖထုတ္ေပးလာပါျပီ။ ဒီနည္းနဲ႔ x ေနရာမွာ အမ်ားႀကီး အစားထုိး အသံုးျပဳႏိုင္ဦးမွာျဖစ္ပါတယ္။
ကဲ ေနာက္ဆံုးတစ္ခု ကိန္းေတြနဲ႔ ထပ္ထုတ္ၾကည့္ရေအာင္။
......
.......
ကုန္စည္တစ္ခု ေရာင္းမယ္ဆိုပါေတာ့။ ကြ်န္ေတာ္တို႔အတြက္ အျမတ္ ၁၀၀ တင္မယ္ဆိုပါစို႔။
ကဲ ဖန္ရွင္နာမည္ကိုေတာ့ မိမိစိတ္ၾကိဳက္ သတ္မွတ္ေနာ္။
>>> def kmn(x):
...  print x+100
...
>>>
သတ္မွတ္ျပီးတာနဲ႔ enter ၂ခ်က္ ဆင္းထားရမယ္ေနာ္။ ေနာက္တစ္လိုင္း ေရာက္မွ စမ္း္ၾကည့္လို႔ ရမွာ။
ခု ကုန္စည္ ဝယ္ေစ်း ထည့္မယ္။
>>> def kmn(x):
...  print x+100
...
>>> kmn(900)
1000
ကြ်န္ေတာ္တို႔ အျမတ္တင္ခ်င္တဲ့ကိန္းနဲ႔ ေပါင္းေပးလိုက္ျပီေနာ္။ ထြင္တတ္ စဥ္းစားတတ္ရင္ ပရိုဂရမ္ေတြ ထပ္ဆြဲလုိ႔ ရေလာက္ျပန္ျပီ။
ေမ့ေနတာေတြ ရွိရင္ ျပန္ေႏႊးဖို႔ လိုအပ္ျပီး ခု သင္ခန္းစာကိုလည္း ကိုယ္ပိုင္ျဖစ္ေအာင္ ေလ့လာဖို႔ ေလ့က်င့္ဖို႔ ထပ္မံ မွာၾကားလိုပါတယ္။
မနက္ျဖန္မွာ ေနာက္သင္ခန္းစာအသစ္ေလးနဲ႔ ျပန္လည္ ေတြ႔ဆံုရေအာင္......
.........

Lesson 11 ၾကည့္ရန္ ဒီေနရာကိုႏွိပ္ပါ

လာေရာက္လည္ပတ္ပတ္မႈကို အထူး ေက်းဇူးတင္ပါသည္ခင္ဗ်ာ

ဒီ Website ကေလးမွာ တင္ထားတဲ့ အေၾကာင္းအရာအေတြကို က႑အလိုက္ ေရြးခ်ယ္ ၾကည့္လိုပါက
ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီးလည္း ေရြးခ်ယ္ၾကည့္ႏိုင္သလို Menu Box ကေနလည္း ေရြးခ်ယ္ၾကည့္ႏိုင္ပါေၾကာင္း ခင္ဗ်ာ

Thanks

Khit Minnyo

0 comments:

Post a Comment