Python2 Lesson 3
Python Programming
Lesson 1 ၾကည့္ရန္ link >> Click Here
Lesson 2 ၾကည့္ရန္ link >> Click Here
.
Lesson 3
.ဒီေန႔ေတာ့ elif (else + if)အေျကာင္းကို အရင္ဆံုး ေလ့လာရေအာင္ပါ။
if else ကိုေတာ့ နားလည္ထားျပီဆိုေတာ့ ဒီအဆင့္က သိပ္မခက္ေတာ့ပါ။
ပိုရွင္းေအာင္ ဥပမာတစ္ခု ထပ္ေျပာပါဦးမယ္။ 1 နဲ့ 2 ဘယ္ဟာက ပိုႀကီးလဲမွာ 1 က ႀကီးတယ္ဆိုရင္ မွားမယ္။ မႀကီးဘူးဆိုရင္ မွန္မယ္။
ဒီသေဘာတရားမွာ ၂ခုပဲရွိတဲ့အတြက္ if else နဲ့ အဆင္ေျပပါတယ္။
2ခုထက္ ပိုလာတဲ့ သေဘာတရားေတြမွာေတာ့ if else နဲ့တင္ အဆင္မေျပေတာ့ပါဘူး။ ဥပမာေလး ၾကည့္ရေအာင္ပါ။
Mg Mg, Ag Ag, Ma Ma နဲ့ Aye Aye ဆိုျပီး ေလးေယာက္ ရွိတယ္ ဆုိပါစို့။ Aye Aye ကို admin ထားမယ္ဆိုရင္ ေအာက္ပါပံုစံမ်ုိးေလး ေရးျကည့္နိုင္ပါတယ္။ သတိထားရမွာက ေရွ့ သင္ခန္းစာမွာလိုပဲ if , elif ဆိုတဲ့ လိုင္းေတြရဲ့ အဆံုးမွာ (:) ထည့္ဖို့ မေမ့ဖို့ပါ။
........
name = "Aye Aye"
if name == "Mg Mg":
print "Mg Mg, you have no permission to enter."
elif name == "Ag Ag":
print "Ag Ag, you have no permission to enter."
elif name == "Ma Ma":
print "Ma Ma, you have no permission to enter."
elif name == "Aye Aye":
print "Hello! Aye Aye, welcome to our admin team."
else:
print "Sorry, you have no permission to enter."
..................
အထက္ပါ လိုင္းေတြကို cmd ကေနသံုးတဲ့ python မွာ စမ္းျကည့္မယ္ဆိုရင္ name မွာ ေအးေအးလို့ ျဖည့္ထားခဲ့တဲ့အတြက္
ေနာက္ဆံုး အဆံုးသတ္ enter ၂ခ်က္ ေခါက္တဲ့အခါ Aye Aye နဲ့ သက္ဆိုင္တဲ့ အေျဖေတြကို ထုတ္ေပးသြားပါလိမ့္မယ္။
အလားတူပဲ name မွာ Mg Mg လို့ ျဖည့္ခဲ့ရင္ Mg Mg နဲ့ဆိုင္ရာအေျဖ ထြက္လာမွာ ျဖစ္သလို အျခားသူေတြ ျဖစ္ေနပါကလည္း
ေနာက္ဆံုးအေျဖသာ ထြက္လာမွာျဖစ္ပါတယ္။
နာမည္တစ္ခုစီကို name မွာ ျဖည့္သြင္းရိုက္ျကည့္ပါ။ ကိုယ့္နာမည္ေလးပါ ထည့္ရိုက္ျပီး စမ္းျကည့္ေနာ္ :)
.................
ထို့အတူပဲ x ေတြ y ေတြနဲ့ variable တည္ေဆာက္ျပီးလဲ အသံုးျပုနိုင္ပါေသးတယ္။
ကဲ ေနာက္တစ္ခု စမ္းျကည့္လိုက္ရေအာင္
....
x = 1
y = 2
if x > y:
print "You're wrong."
elif x == y:
print "You're wrong."
elif y == 2:
print " You're right."
elif x == 1:
print " You're right."
elif y > x:
print "You're right."
elif x > y:
print "You're right."
else:
print "You're wrong."
................................
Increasement
ခု ေလ့လာမွာက increasement အပိုင္းပါ
variable ေတြ တည္ေဆာက္အသံုးျပုတဲ့အခါ တည္ေဆာက္လိုက္တုန္းက တန္ဖိုးကို ေနာက္ပိုင္းမွာ ေျပာင္းလဲခ်င္ရင္ increasement ကို သံုးရပါမယ္။ နမူနာ ေလ့လာျကည့္ရေအာင္
idle မွာ new file မေခၚဘဲ စမ္းၾကည့္ရေအာင္
.........
>>> x = 2
>>> x + 2
4
>>> x = x+1
>>> x+2
5
>>>
ဆိုျပီး အေျဖထုတ္ေပးတာ ေတြ့ရပါမယ္။ ပံုမရွင္းရင္ ခ်ဲ႔ၾကည့္ႏိုင္ပါတယ္။
x=2 ဒီေနရာမွာ x တန္ဖိုး ၂ သတ္မွတ္လိုက္ပါတယ္
x+2 ဒီမွာေတာ့ x ကို 2 နဲ့ေပါင္းပါတယ္
4 2+2 မို့ 4 ရပါတယ္
x=x+1 ဒီမွာေတာ့ မူလရွိတဲ့ x တန္ဖိုးကို ၁ ထပ္တိုးျပီး အသံုးျပဳမယ္လို့ ေျပာလိုက္တာပါပဲ။
ရွင္းရွင္းေျပာရရင္ တန္ဖိုးေျပာင္းလိုက္တယ္ေပါ့။ ဒါေၾကာင့္ ဒီေနရာမွာ x တန္ဖိုး 3 ျဖစ္သြားျပီေနာ္။
x+2
5 ၃ နဲ့ ၂ ေပါင္းတဲ့အတြက္ အေျဖ ၅ ရသြားပါျပီ။
............
...............
ကဲ ဆတိုးအေနနဲ့ ဒါေလး ထပ္စမ္းျကည့္ရေအာင္
x = 5
x+5
10 အေျဖရပါမယ္။
x = x * 4
x+5
23 ဆိုျပီး ျဖစ္သြားပါျပီ။
....................
...... x တန္ဖိုး ထပ္တိုးခ်င္ရင္ ဒီလိုလည္း ေရးလို့ ရပါတယ္ ...
>>> x=5
>>> x += 2
>>> x
7
....................
>>> x=5
>>> x *= 2
>>> x
10
................
...................
>>> x=5
>>> x -= 2
>>> x
3
..............
အေျဖကိုပါ သိရေအာင္ ဒီပံုစံပဲ တင္ေပးခဲ့တာပါ။ python ေရးၾကည့္ဖို႔အတြက္ idle အစား ipython ကို သံုးမယ္ဆိုရင္ေတာ့ In ဆိုတာ Input (ကိုယ္သြင္းလိုက္တဲ့ တန္ဖိုးလိုင္း)
Out ဆိုတာက Output (စက္က ျပန္ထုတ္ေပးတဲ့ အေျဖလိုင္းပါ) ေအာက္မွာ ipython နဲ႔ ေရးထားတာကို နမူနာ ျပေပးလိုက္ပါတယ္
................
ကဲ ခုေတာ့ While Looping အေျကာင္းေလးကို ဆက္ျပီး ေလ့လာရေအာင္ပါ။
In [1]: x=2
In [2]: while x <=10:
...: print x
...: x += 2
...:(enter ၂ခ်က္ ဆင္းမယ္ေနာ္)
2
4
6
8
10
In [3]:
...............
ဒီဥပမာေလးကို ျကည့္ပါ။ line 2 မွာ ေဖာ္ျပခ်က္ကို x <=10 ပဲ သံုးထားပါတယ္။
သေဘာကေတာ့ x သည္ 10 ေအာက္ နဲ့ အလြန္ဆံုး 10 မွာပဲ အလုပ္လုပ္မယ္လို့ ဆိုလိုတာပါ။
ဒါေၾကာင့္ အေျဖထုတ္တဲ့အခါ ခုလို အစဥ္လိုက္ ေဖာ္ျပေစတာပါပဲ။
ကဲ ေနာက္တစ္ခု စမ္းၾကည့္ပါ။
...............
...............
In [1]: y=1
In [2]: while y >=10:
...: print y
...: y += 2
ဒီ problem မွာ ဘာလို့ အေျဖမထြက္ရတာလဲ
Question A: လို့ သတ္မွတ္ျပီး comment မွာ ေျဖခဲ့ေပးပါ။
........
........
အဲေနရာကေနပဲ ဆက္ရိုက္ျကည့္ပါဦး။
.....
In [3]: while y >=10:
...: print y
...: y += 2
ထံုးစံအတိုင္း enter ျကည့္လိုက္ပါ။ ဘာထူးျခားပါသလဲ။ looping ေတြ အရမ္းမ်ားျပီး ထိန္းမရေတာ့ရင္ python ပိတ္လိုက္ေနာ္
:) 😂😂😂😂
......
In [1]: z = 3
In [2]: while z > 30:
...: print z
...: z *= 2
...:
3
6
12
24
In [3]:
ကန့္သတ္အေနနဲ့ z ကို 30 ထက္ ငယ္တယ္လို့ သတ္မွတ္ထားတဲ့အတြက္ 24 ထိပဲ ဆက္ျပီး ရပ္သြားျခင္းျဖစ္ပါတယ္။
.....................
.....................
ကဲ looping ေလးေတြမွာ အေပၚမွာ ေျပာခဲ့တဲ့ += -= *= နဲ့ /= ေတြ စံုေအာင္ လုပ္ၾကည့္ပါဦး။
In [1]: x = 100
In [2]: while x >= 100:
...: print x
...: x /= 2
...:
100
In [3]: while x <= 100:
...: print x
...: x /= 2
...:
ဒီေနရာမွာေတာ့ 100 ကို ၂နဲ့စား 50
၂နဲ့ထပ္စား 25
ထပ္စားနဲ့ ေနာက္ဆံုးထိ ေပးသြားမွာျဖစ္ပါတယ္။ ဒါေျကာင့္ အေျဖမွာ အမ်ားျကီး ျဖစ္သြားတာ ေတြ့ရပါလိမ့္မယ္။
..............
.............
ပိုျပီး စိတ္ဝင္စားစရာေကာင္းတာေလး ဆက္ျကည့္ရေအာင္ဗ်ာ
ေအာက္ပါ နမူနာေလးအတိုင္း ရိုက္ျကည့္လိုက္ပါဦး။
In [1]: name = ""
In [2]: while name != "Mg Mg":
...: name = raw_input("Try again\n")
...:
Try again
Try again
Mg Mg
In [3]:
..................
ရွင္းလင္းခ်က္ကေတာ့ ဒီမွာပါ။
In [1]: name = "" ဒီေနရာမွာ variable ကို unknown အေနနဲ့ပဲ ထားခဲ့တာပါ။
In [2]: while name != "Mg Mg": ဒီေနရာေရာက္မွ ေမာင္ေမာင္ကို လက္ခံနာမည္အျဖစ္ သြင္းလိုက္တယ္။
...: name = raw_input("Try again\n") ဒီေနရာမွာ user ကို ျဖည့္သြင္းခိုင္းထားတယ္
...:
Try again (enter ၂ခ်က္ ဆင္းတဲ့အခါ ဒီစာသား ေပၚလာပါျပီ။ )
Try again
Mg Mg ဒီမွာ ေမာင္ေမာင္လို့ ျဖည့္လိုက္ေတာ့မွပဲ ေအာက္ကို ဆက္သြားလို့ ရမွာျဖစ္ျပီး အျခား ဘာျဖည့္ျဖည့္ ရမွာမဟုတ္ပါဘူး။
In [3]:
...........
ဒီေန့သင္ခန္းစာက အေရးအလြန္ျကီးလို့ ထပ္ခါထပ္ခါ ေလ့က်င့္ပါ။ ကိုယ္ပိုင္ အသံုးျပုနိုင္ေအာင္ လုပ္ပါလို့ ေျပာလိုပါတယ္။
Question A: y=1
ReplyDeleteso y>=10 it's wrong.
no answer.
Am I right sir.