Saturday, October 21, 2017

Python2 Lesson 4


Python  သင္ခန္းစာမ်ားကို အသစ္ထည့္ထားေပးေသာ menu box ကေလးမွတစ္ဆင့္ Python for Hacker ကို ေရြးခ်ယ္ျပီး ၾကည့္ႏိုင္ပါတယ္။
အပိုင္း ၃ ထိ သင္ခန္းစာေတြကို မၾကည့္ရေသးသူမ်ား ေအာက္ပါ link ကေနလည္း သြားေရာက္ ၾကည့္ရႈႏိုင္မွာျဖစ္ပါတယ္ခင္ဗ်ာ
Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here

.

အဆက္
.

ဒီေန့မွာေတာ့ အေရးပါတဲ့ Logical Operatorsဆီကို သြားပါမယ္။
Logical Operators
and, or , not  ဆိုျပီး Logical Operators သံုးမ်ိုး ရွိပါတယ္။
Logical Operators ေတြကို ေရးတဲ့အခါ while loop နဲ့ ေရးရမွာျဖစ္ပါတယ္။
while loop ေလးေတြ မွတ္မိဦးမယ္ထင္ပါတယ္။
.
ရွင္းသြားေအာင္ ေအာက္ပါ နမူနာ ၂ခုကို ေလ့လာလုပ္ေဆာင္ျကည့္ပါ။
(In က Input line ကို ဆိုလိုျပီး ကြ်န္ေတာ္တို႔ ရိုက္ထည့္ရမွာပါ
Out ကေတာ့  Output line ျဖစ္ျပီး ကြ်န္ေတာ္တို႔ ရိုက္ထည့္လိုက္တဲ့ In ေၾကာင့္ ထြက္ေပၚလာတဲ့ ရလဒ္ ျဖစ္ပါတယ္)
.
In [1]: user = "admin"

In [2]: password = "khitminnyo"

In [3]: while user == "admin" and password == "khitminnyo":
   ...:     print "Welcome, Admin!"
   ...:   
Enter ၂ခ်က္ ဆင္းတဲ့အခါ ခု နမူနာအတြက္ Welcome, Admin! ဆိုတဲ့ စာေျကာင္းေတြကို ထုတ္ေပးေတာ့မွာျဖစ္ပါတယ္။
.................
.................
ေနာက္တစ္ပုဒ္မွာ ေသခ်ာျကည့္ေနာ္။ line 3 မွာ ေျပာင္းလဲထားတယ္။

In [1]: user = "admin"

In [2]: password = "khitminnyo"

In [3]: while user == "admin" and password == "khitminnyo1":
   ...:     print "Wrong password"
   ...:   
enter ၂ခ်က္ဆင္းတဲ့အခါ ဘာအေျဖမွ ထုတ္မေပးတာကို ေတြ့ရပါမယ္။
ဘာလို့ပါလဲ။ and ဆိုတာ Eng စာမွာ ေပါင္းဆက္ေပးတဲ့ စကားလံုးျဖစ္ပါတယ္။ a and b ဆိုရင္ a နဲ့ b ၂ခုစလံုးေပါ့။ ဒါေျကာင့္ ၂ခု စလံုး မွန္မွ ျဖစ္ပါမယ္။
...................
...................
ကဲ အထက္ပါ ဥပမာကိုပဲ ေနာက္တစ္ခု ထပ္ဆက္ရေအာင္။ ခုန အေျဖထုတ္မေပးတဲ့ ဥပမာမွာပဲေနာ္။
and ေနရာမွာ or ေျပာင္းေရးရံုပါ။ က်န္တာေတာ့ လိုင္း 3 က အတိုင္းပါပဲ။ ကဲ ျကည့္ရေအာင္ေနာ္။
In [1]: user = "admin"

In [2]: password = "khitminnyo"

In [3]: while user == "admin" and password == "khitminnyo1":
   ...:     print "Wrong password"
   ...:   

In [4]: while user == "admin" or password == "khitminnyo1":
    print "Wrong password"
enter ၂ခ်က္ ဆင္းလိုက္တာနဲ့ မေရတြက္နိုင္တဲ့ထိ Wrong password ဆိုတာကို ထုတ္ေပးသြားမွာျဖစ္ပါတယ္။
...................
အထက္ပါ ဥပမာမ်ားကို လုပ္ေဆာင္ျပီးရင္ သင့္အေနနဲ့ ေမးခ်င္တဲ့ ေမးခြန္းတစ္ခုခု ရွိလာခဲ့တယ္ဆိုရင္ေတာ့ အဲသည္ေမးခြန္းက ေအာက္ပါအတိုင္း ျဖစ္ပါလိမ့္မယ္။
...
အေျဖထြက္တဲ့ လုပ္ေဆာင္ခ်က္ေတြမွာ print က ဘာလို့ ေတာက္ေလွ်ာက္ မရပ္ဘဲ ဆက္သြားေနတာလဲ??????
တစ္ေျကာင္းပဲထုတ္လို့ မရဘူးလား ဆုိတာမ်ိုး ပဲ ျဖစ္ပါလိမ့္မယ္။
အေျဖကို ဆက္တိုက္ျကီး အမ်ားျကီး ထုတ္ေပးလိုက္တဲ့အတြက္ python ဖြင့္ထားတဲ့ shell (terminal) ကို ပိတ္ပစ္လိုက္ရတာလည္း ျကံုေနရျပီကိုး။
အေျဖကေတာ့ ရွင္းပါတယ္။ သူ့ကို  ဘယ္္ေနရာမွာ ရပ္ရမယ္ဆိုတဲ့  Break မထည့္ရေသးလို့ပါပဲ။
....................
....................
ဒီတစ္ခါေတာ့ အထက္ပါပံုစံကိုပဲ ကိန္းေလးေတြနဲ့ ေရးျကည့္ရေအာင္ပါ။
In [1]: x = 5

In [2]: y = 10

In [3]: while x > 4 and y < 10:
   ...:     print "Thank you"
   ...:   
enter ၂ခ်က္ ဆင္းလည္း အေျဖထြက္မွာ မဟုတ္ပါဘူး။ ဘာေျကာင့္လဲ။
and ဆိုတဲ့ operator က ၂ခုလံုးမွန္မွ ျဖစ္တာလို့ ေျပာထားတယ္ေနာ္။
ဒါေျကာင့္ အေျဖမထြက္တာ။ y = 10 ျဖစ္ပါတယ္။ y က ၁၀ ျဖစ္ျပီး 10 ထက္ လံုးဝ မငယ္လို့ပါပဲ။
.
အထက္ပါအတိုင္းပဲ and ေနရာမွာ or နဲ့ အေျဖထုတ္ျကည့္ပါ။
....
In [1]: x = 5

In [2]: y = 10

In [3]: while x > 4 and y < 10:
   ...:     print "Thank you"
   ...:   

In [4]: while x > 4 or y < 10:
   ...:     print "Thank you"
   ...:   
Enter ၂ခ်က္ ဆင္းလိုက္တာနဲ့ Thank you ဆိုတာကို ဟိုးေအာက္ဆံုးထိ ထုတ္သြားေပးမွာျဖစ္ပါတယ္။
.............
and နဲ့ or ရဲ့ အသံုးျပုပံုေတြကို နားလည္ေလာက္ျပီ သိေလာက္ျပီလို့ ထင္ပါတယ္။
ကြ်န္ေတာ္ေျပာခဲ့တာက Logical Operators မွာ and, or , not ဆိုျပီး သံုးခုရွိတယ္လို့ ေျပာခဲ့တာပါ။
ခု and နဲ့ or ကို ရွင္းျပျပီးပါျပီ။ က်န္တဲ့တစ္ခုကို မွတ္ထားေပးေပါ့။
.....
ေနာက္မွ ေျပာမယ့္ အေရးျကီးတဲ့ ဖန္ရွင္ ၂ခု ျဖစ္သြားျပီေနာ္။
တစ္ခုက ဘယ္ဟာလဲလို့ ေတြးေနျပီလား??????????????
:)
:)
.........
Range Function
Rang Function ေလး ေရးျကည့္ဖို့အတြက္ ရွင္းျပခ်က္ေတြ မေပးေတာ့ပါဘူး။ ေအာက္ပါ လိုင္းေလးေရးျပီး enter လိုက္ရင္
အားလံုး သေဘာေပါက္မယ္လို့ ယံုျကည္ပါတယ္။
In [1]: range (10)
Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ပထမ လုိင္းမွာ range (10) ဆိုျပီး end point ေပးထားတာပါ။ ဒါေျကာင့္ range ဟာ 10 ထိေသာ ကိန္းေတြကို ထုတ္ေပးသြားမွာျဖစ္ပါတယ္။
မွတ္ထားရမွာက end point ဆိုေပမယ့္ <10 10="" 11="" endpoint="" p="">python programming မွာ ကိန္းေတြကို ေရတြက္တဲ့အခါ  zero ကေန စ ပါတယ္။ ဒါေျကာင့္ ကြ်န္ေတာ္တို့ သတ္မွတ္ထားတဲ့ 10 ထက္ မေက်ာ္တဲ့ 9
ေနာက္တစ္လိုင္း ထပ္ရိုက္ျကည့္ရေအာင္။ ခုန ရိုက္ခဲ့တဲ့ line 1 ေအာက္မွာပဲ ဆက္ရိုက္လို့ရပါတယ္္။
In [2]: range (2,10)
Out[2]: [2, 3, 4, 5, 6, 7, 8, 9]
ဒီတစ္ခါမွာေတာ့ end point သာ မဟုတ္ဘဲ starting point ပါ ထည့္ေပးထားတာေျကာင့္ မိမိသတ္မွတ္ေပးခဲ့တဲ့ စမွတ္ 2 ကေန ဆံုးမွတ္ 10 ထိ ကိန္းေတြကို ထုတ္ေပးသြားတာျဖစ္ပါတယ္။
ဒီတစ္ခါ ေနာက္ပံုစံတစ္ခု ထပ္ေရးျကည့္ရေအာင္။ ပထမ ေရးခဲ့တဲ့  python terminal ထဲမွာပဲ ဆက္ေရးလိုက္ေနာ္။ ကြဲျပားမွုကို ျမင္လြယ္ဖို့ လိုအပ္တယ္။
In [3]: range (1,10,2)
Out[3]: [1, 3, 5, 7, 9]

In [4]: range (2,10,2)
Out[4]: [2, 4, 6, 8]
အထက္ပါအတိုင္း လိုင္း ၂ေျကာင္းထိ ရိုက္ျကည့္လိုက္ပါတယ္။ သင္ ဘာထူးျခားတာ ေတြ့မိပါသလဲ?????
ဟုတ္ပါတယ္။ အစမွတ္ ၂ ကေန အဆံုးမွတ္ ၁၀ေအာက္ အတြင္းရွိ ကိန္းေတြကို ထုတ္ေပးသြားတာကေတာ့ သာမန္ပါပဲ။
ဒါေပမယ့္ ေနာက္ဆံုးမွာ ထပ္ထည့္ထားတဲ့ ကိန္း 2 ေျကာင့္ အစမွတ္ကေန ၂ပြင့္စီကြာျပီး ေရးသြားတာကို ေတြ့ရပါျပီ။
လိုင္း3 မွာျပန္ျကည့္ရင္ စမွတ္ 1, ဆံုးမွတ္ <10 2="" auto="" increase="" nbsp="" p="">In [3]: range (1,10,2)
Out[3]: [1, 3, 5, 7, 9] တစ္ကေန စျပီး ၂ခုစီ တိုးသြားတာ ျမင္ရပါမယ္။
လိုင္း4 မွာလည္း ထို့အတူပါပဲ။
အဲသည္ေနရာမွာ အေရးပါတာက ခု range မွာ output အျဖစ္ ထြက္ရွိလာတဲ့ အေျဖေျကာင္းကို ေရတြက္ပံုပါ။ အလြယ္ေျပာရရင္ အေျဖ အမွတ္စဥ္ေပါ့။
In [3]: range (1,10,2)
Out[3]: [1, 3, 5, 7, 9]
ေအျဖကို       0    1    2    3     4    ဆိုျပီး သတ္မွတ္လိုက္ပါတယ္။ အေျဖနံပါတ္စဥ္ကို သုညကေန စတင္ ေရတြက္တာ မေမ့နဲ့ေနာ္။
အေျဖအမွတ္စဥ္ 3 ရဲ့ တန္ဖိုးက အထက္ပါ လိုင္းမွာဆို 7 ေပါ့။ နားလည္မယ္ထင္ပါတယ္။ နားမလည္ရင္လည္း ေမးခဲ့ပါဗ်။
.
ခုေတာ့ for looping ေလးနဲ့ ပတ္လိုက္ျကဦးစို့
for looping ေရးဖို့အတြက္ေတာ့ ပထမဆံုးအေနနဲ့ variable တစ္ခု တည္ေဆာက္ရပါမယ္။
In [1]:x = ['a', 'b', 'c', 'd', 'e'] ကြ်န္ေတာ္ကေတာ့ အလြယ္ကေလး ေပးလိုက္တာပါ။ တစ္ကယ္ေတာ့ x,a,b,c,d,e ေနရာေတြမွာ စာတန္းေတြလည္း ျဖစ္နိုင္ပါတယ္။
In [2]: x    လိုင္း၂ မွာ x ကို ျပန္သိခ်င္လို့ enter လိုက္တာပါ။
Out[2]: ['a', 'b', 'c', 'd', 'e'] ဒီအေျဖ ထြက္လာပါတယ္။
ေအာက္ပါအတိုင္း ဆက္ရိုက္ျကည့္လိုက္ပါဦး။
In [1]: x = ['a', 'b', 'c', 'd', 'e']

In [2]: x
Out[2]: ['a', 'b', 'c', 'd', 'e']

In [3]: for bcc in x:
   ...:     print x
   ...:   
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']
အေျဖစာေျကာင္းေတြ ထြက္လာမွာပါ။ ကြ်န္ေတာ္တို့ အဲဒါကိုပဲ ေနာက္တစ္မ်ိုး ေျပာင္းေရးျကည့္ရေအာင္။
In [4]: for bcc in x:
   ...:     print bcc
   ...:   
a
b
c
d
e
line 4 မွာ print ကို ေျပာင္းျပီး ထုတ္ျကည့္လိုက္ပါတယ္။ အေျဖက lists ေလးေတြနဲ့ ထြက္ေပၚလာပါတယ္။
wifi လိုင္းတစ္ခုမွာဆိုပါစို့။ အသံုးျပဳ ခ်ိတ္ဆက္ထားတဲ့ device ေတြကို အထက္ပါ ဥပမာက လို  x ေနရာမွာ မွတ္သားထားနိုင္ပါတယ္။
အသံုးျပုေနသူေတြကို list လုပ္လိုက္တဲ့အခါမွာေတာ့ ခုလို ထြက္ေပာ္လာပါေတာ့တယ္။
ဥပမာအေနနဲ့ အသံုးျပဳနိုင္ပံုကို ေျပာျပတာေနာ္ :)
ေအာက္ပါအတိုင္း ဆက္လုပ္ျကည့္ပါဦး။
...........
In [5]: for bcc in x:
   ...:     print "This is" + bcc
   ...:   
This isa
This isb
This isc
This isd
This ise
ဆိုျပီး အေျဖထြက္လာတာ ေတြ့ရပါလိမ့္မယ္။ အထက္မွာ bcc  ေတြ သံုးခဲ့လို့ ေအာက္မွာ ေျပာင္းသံုးခ်င္တယ္ဆိုရင္လည္း ဒီလိုျကည့္လိုက္ပါ။
In [5]: for dcc in x:
   ...:     print "This is" + dcc
   ...:   
This isa
This isb
This isc
This isd
This ise
အေျဖမကြာတာေတြ့ရပါမယ္။
ေျပာစရာတစ္ခုခု ရွိလာျပီလား။ ဟုတ္ကဲ့ ေအာက္ပါအတိုင္းလည္း ေျပာင္းေရးနိုင္ပါေသးတယ္။
In [5]: for zcc in x:
   ...:     print zcc
   ...:   
a
b
c
d
e
ဒီေလာက္ဆိုရင္ေတာ့  bcc တင္မဟုတ္ဘဲ zcc အထိ ျကိုက္ရာေျပာင္းသံုးနိုင္တာကို ေတြ့ရပါမယ္။ စမ္းျကည့္ေပါ့ :)
..........
...........
ဒီတစ္ခါေတာ့ ဒီေန့ ေျပာခဲ့တဲ့ သင္ခန္းစာေတြအားလံုးထဲကမွ Range Function နဲ့ For Loop ကို တြဲသံုးလိုက္ရေအာင္။
ေခါင္းေနာက္ေနျပီလား။ မေနာက္ေသးရင္ ဆက္ဖတ္ျပီး လိုက္လုပ္ျကည့္ပါဦး။
In [1]: for get in range (10):
   ...:     print get
   ...:   
0
1
2
3
4
5
6
7
8
9
python အသစ္ဖြင့္ျပီး လုပ္လိုက္ပါ။ ေရာေနမွာစိုးလို့ :)
ဒီေနရာမွာေတာ့ for နဲ့ range ကို သိေနျပီမို့ ဒီအခ်က္ကို ရွင္းျပေနဖို့ မလိုေတာ့ဘူးထင္ပါတယ္။
range နဲ့ အတူတူပဲမလားလို့ ထင္ရင္ေတာ့ range function ေလးကို ျပန္ျကည့္ျကည့္ပါ။
In [1]: range (10)
Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
မတူတာကို ေတြ့ရပါလိမ့္မယ္။ ဆက္လုပ္ျကည့္ပါဦး။
In [1]: for hoo in range (1,20,2):
   ...:     print hoo
   ...:   
1
3
5
7
9
11
13
15
17
19
start, end နဲ့  increase point ေတြ ပါတဲ့  range ကိုရွင္းျပျပီးသားေနာ္။ ေမ့သြားရင္ ျပန္ဖတ္ျပီး ျပန္လုပ္ျကည့္လိုက္ပါဦး။
for နဲ့ range နဲ့တြဲလိုက္မွ အမွတ္စဥ္ေတြကို lists လုပ္ျပီး စီေရးခ်ေပးသြားတာ ေတြ့ရပါလိမ့္မယ္။
.........................
.........................
ဒီေလာက္ထိ သင္ခန္းစာေလးေတြကိုပဲ ထပ္ခါ ျပန္လုပ္ လံုးဝ မျကည့္ေတာ့ဘဲ အလြတ္ ျပန္လုပ္ျကည့္ပါ။



Lesson 5 ၾကည့္ရန္ ဒီေနရာကိုႏွိပ္ပါ
<10 10="" 11="" endpoint="" p=""><10 2="" auto="" increase="" nbsp="" p="">
<10 10="" 11="" endpoint="" p=""><10 2="" auto="" increase="" nbsp="" p="">
ကြ်န္ေတာ္တို႔ Website မွာ တင္ထားေပးတဲ့ အေၾကာင္းအရာေတြကို Menu အလိုက္ ေရြးခ်ယ္ၾကည့္လိုပါက ဒီေနရာကိုႏွိပ္ျပီးလည္း ေရြးခ်ယ္ႏိုင္သလို ေအာက္ပါ ပံုထဲက လို Menu Box ကေနလည္း Filer လုပ္ျပီး ေရြးခ်ယ္ႏိုင္ပါတယ္ခင္ဗ်ာ

အဆင္ေျပၾကပါေစဗ်ာ

Khit Minnyo



0 comments:

Post a Comment