Friday, January 12, 2018

Python3 Lesson 5


Python Programming
Lesson 1  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Lesson 2  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Lesson 3  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Lesson 4  မၾကည့္ရေသးသူမွာ ဒီစာေၾကာင္းကို ႏွိပ္ပါ
Studying the small Programs
.

None

Python မွာ none ဆိုတာဟာ special constant ျဖစ္ပါတယ္။ none သည္ null value ျဖစ္ပါတယ္။ False နဲ႔ မတူသလို သုည (0)  နဲ႔လည္း လံုးဝ မတူပါဘူး။
none ဆိုတာဟာ empty string (တစ္နည္းအားျဖင့္ ဗလာ ကြင္း) ျဖစ္ပါတယ္။ ဆိုလိုတာက none ကို  အျခားတန္ဖိုးေတြနဲ႔ ႏႈိင္းယွဥ္တိုင္း False ဆိုတဲ့ အေျဖပဲရပါမယ္။ သူ႔မွာ ဘာမွမရိွ။ သုညေတာင္ မရွိတာပါပဲ။
ပိုျပီးနားလည္သြားေအာင္ ေအာက္ပါအတိုင္း IDLE 3  မွာ ရိုက္ၾကည့္ရင္ သိႏိုင္ပါတယ္။ New File ေခၚစရာမလိုဘူးေနာ္။ IDLE3 ဖြင့္ျပီး တိုက္ရိုက္ ရိုက္ရံုပဲ။
>>> type(None)

>>> None == False
False
>>> None == 0
False
>>> None == ''
False
>>> None == None
True
>>> x = None
>>> x == None
True
>>> y = None
>>> x == y
True
အထက္ပါ ဥပမာေတြကို ၾကည့္ျခင္းအားျဖင့္ none သည္ အျခား ဘာနဲ႔မွ မတူဘဲ None အခ်င္းခ်င္းသာ တူေၾကာင္း သိႏိုင္ပါတယ္။


None IN A BOOLEAN CONTEXT

In a boolean context, None is false and not None is true. ပါ
သေဘာေပါက္ဖို႔အတြက္ေတာ့ ေအာက္ပါတိုင္း ဆက္ရိုက္ၾကည့္ပါ။
>>> def is_it_true(anything):
...
...
...
...
if anything:
print("yes, it's true")
else:
print("no, it's false")
...
>>> is_it_true(None)
no, it's false
>>> is_it_true(not None)
yes, it's true



THE CURRENT WORKING DIRECTORY

ကြ်န္ေတာ္တို႔ရဲ႕ Program လက္ရွိ RUN ေနတဲ့ Directory ကို  python မွာ ေရးေနရင္း ေခၚၾကည့္ႏိုင္ ထည့္သံုးႏိုင္ပါတယ္။
ေအာက္ပါအတိုင္း စမ္းသပ္ၾကည့္ပါ။ IDLE 3
......................
>>> print(os.getcwd())
/root
>>> os.chdir('/root/Desktop/example')
>>> print(os.getcwd())
/root/Desktop/example
>>>
ရွင္းျပပါမယ္။
>>> print(os.getcwd())
/root                       ဒီအပိုဒ္ကေလးက ဘာကို ဆိုလိုလဲဆိုရင္ ကြ်န္ေတာ္တို႔ install လုပ္ထားတဲ့ location မွာ default ရွိေနတဲ့ location ျဖစ္ပါတယ္။
Kali မွာမို႔ သည္လို ျဖစ္ေနတာျဖစ္ျပီး Windows မွာဆိုရင္ေတာ့ C:\program\python31 ျဖစ္ႏိုင္ပါတယ္။ (Install လုပ္စဥ္က location နဲ႔ ဆိုင္ပါတယ္)
>>> os.chdir('/root/Desktop/example')         ဒါကေတာ့ RUN ေနတဲ့ ေနရာကေန DIR ေျပာင္းလိုက္တာပါ။ chdir = change directory လို႔ မွတ္ထားရပါမယ္။ ေၾသာ္ ေျပာဖို႔ ေမ့ေနတာ os = Operation System ေနာ္။ သိျပီးသားမို႔ မရွင္းျပခဲ့တာပါ။

>>> print(os.getcwd())
/root/Desktop/example
>>> ေနာက္တစ္ၾကိမ္ direction ျပန္ေဖာ္ၾကည့္ခ်ိန္မွာေတာ့ အလယ္ေၾကာင္းမွာ ကြ်န္ေတာ္တို႔ ေျပာင္းခဲ့တဲ့ Direction အတိုင္း ေျပာင္းသြားတာ ေတြ႕ရမွာပါ။။
ဟုတ္ကဲ့ဗ်။ get ဆိုတာ ရယူတာ။ cwd ကေတာ့ Current Working Directory ပါ။ ေခါင္းစဥ္မွာေပးထားတဲ့အတိုင္းပါပဲခင္ဗ်ာ။
ဒါေၾကာင့္ Python က High Level Language လို႔ ေျပာျခင္းပါ။ လူလည္းနားလည္ စက္လည္းနားလည္တဲ့ အသံုးအႏႈန္းေတြ အမ်ားႀကီး ပါဝင္လို႔ပါပဲ။

...........

WORKING WITH FILENAMES AND DIRECTORY NAMES
Working With FileNames and Directory Names ဆိုကတည္းက ခု ေဆြးေႏြးမယ့္ အေၾကာင္းေလးကို သိရွိေလာက္ျပီထင္ပါတယ္ေနာ္။

IDLE 3 မွာ ခုန ရိုက္ခဲ့တဲ့ ေအာက္မွာပဲ ဆက္ရိုက္ၾကည့္ရေအာင္ေနာ္။ ပိတ္မိသြားရင္ အသစ္ျပန္ဖြင့္ အေပၚကဟာေလးေတြ ျပန္ရိုက္ၾကည့္။ ကဲ စျပီ။
>>> print(os.path.join('/root/Desktop/example/', 'testing.py'))           join ဆိုကတည္းက ဆက္ေပးမယ္ဆိုတာ သိသာပါတယ္ေနာ္
/root/Desktop/example/testing.py
>>> print(os.path.join('/root/Desktop/example', 'testing.py'))   / ပါတာနဲ႔ မပါတာ ကြာျခားမႈ မရွိဘူးေနာ္။
/root/Desktop/example/testing.py
>>> print(os.path.expanduser('~'))
/root
>>>

..........................
Dictionary

#This is our first Dictionary in Python

spanish = dic ()
spanish ['hello'] = 'hola'
spanish ['yes'] = 'si'
spanish ['one'] = 'uno'
spanish ['two'] = 'dos'
spanish ['three'] = 'tres'
spanish ['red'] = 'rojo'

print (spanish['yes'])
print (spanish['red'])
print (spanish['three'])

IDLE3 မွာ File New ေခၚျပီး ေရးၾကည့္ပါ။ ျပီးရင္ RUN ၾကည့္ပါ။ print လိုေသာ meaning ထြက္လာပါမယ္။ ဒီေနရာကိုေတာ့ ထပ္ရွင္းျပစရာ မလိုေတာ့ဘူးထင္လို႔ အက်ယ္မေျပာေတာ့ပါဘူး။
စမ္းၾကည့္ပါဗ်

..........................................

ကဲ သင္ျပီး သမွ်ေလးေတြကို ျပန္ေႏႊးတဲ့အေနနဲ႔ ပရိုဂရမ္ေလးေတြ စုရေအာင္ပါ။
တစ္ခုစီကို idle3  မွာ file new ေခၚေရးျပီး folder တစ္ခုမွာ စုသိမ္းထားရေအာင္။
ပရိုဂရမ္ တစ္ပိုင္းစီကို # နဲ႔ ျပထားတယ္
.................
#avarage program
total = 0.0
number1=float(input("Enter the first number: "))
total = total + number1
number2=float(input("Enter the second number: "))
total = total + number2
number3=float(input("Enter the third number: "))
total = total + number3
average = total / 3
print ("The average is " + str(average))
input("Press Enter to Exit.")

......................
#avarage program 2
number1=float(input("Enter the first number: "))
number2=float(input("Enter the second number: "))
number3=float(input("Enter the third number: "))
total = number1 + number2 + number3
average = total / 3
print ("The average is: ")
print (average)
input ("Press Enter to exit.")

...................
#average program 3
total = 0.0
count = 0
while count < 3:
    number=float(input("Enter a number: "))
    count = count + 1
    total = total + number
average = total / 3
print ("The average is " + str(average))
input ("Press Enter to Exit.")


..................
အထက္ပါ 3မ်ိဳးကေတာ့ average (ပ်မ္းမွ်) ရွာတဲ့ ပရိုဂရမ္ေလးေတြပါ။ ဘယ္လိုပံုစံနဲ႔ ေရးေရး သခ်ၤာ formula ကေတာ့
ပ်မ္းမွ်ျခင္း = စုစုေပါင္းကိုတည္ / အေရအတြက္နဲ႔ စား
ျဖစ္ပါတယ္။ အျခား သခ်ၤာ ေဖာ္ျမဴလာေတြကိုလည္း အေျခခံျပီး ေရးလို႔ ရပါတယ္။ ေျပာဖို႔ လိုတာေလး ရွိေနေသးလို႔ ဆက္ေျပာျပပါ့မယ္။
ကြ်န္ေတာ္တို႔ သင္တန္း အစမွာတုန္းက python 2 ကိုပဲ အသံုးျပဳခဲ့တာျဖစ္ျပီး input, raw_input,float တို႔အေၾကာင္း ရွင္းျပခဲ့တာ မွတ္မိမယ္ထင္ပါတယ္။ မမွတ္မိရင္ ထပ္မေျပာပါ။ Second Scheme မွာ ျပန္ၾကည့္ပါ။ Python3 မွာေတာ့  raw_input နဲ႔  input  ၂မ်ိဳးလံုးအတြက္ input function တစ္ခုတည္းကိုသာ အသံုးျပဳပါတယ္။ input လုပ္လိုက္တဲ့အရာက ကိန္းဂဏန္းျဖစ္ရမယ္ ဒသမလည္း တြဲပါခ်င္တယ္ဆိုရင္ေတာ့ float သံုးႏိုင္ပါတယ္။ အထက္ပါ ဥပမာ 3 ပုဒ္မွာ နားလည္မယ္ထင္ပါတယ္။

......................
ဒသမ ကိန္းေတြကို ေျပာင္းေရႊ႕ ကစားႏိုင္ဖို႔အတြက္ ေအာက္ပါ ဥပမာကို ေလ့လာပါ။ idle3 မွာ >>> new မဖြင့္ဘဲ တစ္ေၾကာင္းစီ ရိုက္ၾကည့္ပါ။ ေျပာင္းလဲမႈကို သတိထားပါ။ တစ္ေၾကာင္းစီအတြက္ ရွင္းျပခ်က္ကို နံေဘးမွာ ေဖာ္ျပထားပါတယ္။

#Decimal Changing
number = 1234.5678 ဒသမကိန္းေတြနဲ႔ variable သတ္မွတ္လိုက္တာပါ
print (number) ထုတ္ၾကည့္လိုက္ရင္ 1234.5678 လို႔ ေတြ႕ရပါမယ္။ သတ္မွတ္ထားတဲ့အတိုင္းပါပဲ
number = round(number,2) ဒီေနရာမွာ round နဲ႔ ေျပာင္းလဲဖို႔ သတ္မွတ္လိုက္ပါျပီ
print (number) ၁၂၃၄.၅၇ ပဲ ထြက္လာပါေတာ့မယ္။ ေက်ာင္းမွာလည္း သင္ခဲ့ပါတယ္။
ဒသမ ေနာက္မွာ ပြိဳင့္ ၅၀ ေက်ာ္ရင္ ေရွ႕တစ္ခု တိုးရတာ။

thousands = number / 1000 ဒီေနရာကမွာေတာ့ ခုန ၁၂၃၄.၅၆၇၈ ကို ၁ေထာင္နဲ႔ စားလိုက္ပါတယ္။
print (thousands) ထုတ္ၾကည့္လိုက္ေတာ့ ၁.၂၃၄၅၇ ပဲ က်န္ပါတယ္။
ဒသမေနာက္ကို ကိန္းတစ္လံုး ေရႊ႕ခ်င္ရင္ ၁၀၊ ၂လံုးေရႊ႕ခ်င္ရင္ ၁၀၀နဲ႔ စားရတာ သိျပီးသားပါေနာ္။

thousands = int(thousands) int ကို အသံုးျပဳျပီးေတာ့ ဒီေနရာမွာ ဒသမ ကိန္းကို ကိန္းျပည့္အျဖစ္ ေျပာင္းလဲပစ္လိုက္တာပါ။
print (thousands) ထုတ္ၾကည့္လိုက္ရင္ ကိန္းျပည့္ပဲခ်န္ေတာ့ ၁ ပဲ က်န္တာကို ေတြ႕ရပါမယ္။

remainder = number % 1000 တစ္ေထာင္နဲ႔ စားလို႔ ရတဲ့ အၾကြင္းကို လိုခ်င္တဲ့အတြက္ % ဒီသေကၤတေလးကိုပဲ သံုးသြားတာ သတိျပဳပါ
print (remainder) ထုတ္ၾကည့္လိုက္တဲ့အခါ ဒီလို ရလာပါျပီ။ 234.56999999999994

pretty_output = "$" + str(thousands) + "," + str(remainder) ကိန္းစဥ္ ေရွ႕မွာ ေဒၚလာ တပ္ေပးျခင္းပါ။  ဘာေတြကို ေပါင္းစပ္ထားလဲဆိုတာ သတိျပဳ ၾကည့္ပါ
print (pretty_output) $1,234.56999999999994 ထြက္လာတာ ေတြ႕ရပါမယ္။

input ("Press Enter to Exit.") ဒါကေတာ့ ပရိုဂရမ္ ခ်က္ခ်င္းပိတ္မသြားေစဘဲ ရပ္တန္႔ဖို႕ ထည့္ခဲ့တာပါ။ သိျပီးသားပါေနာ္

..........................
if, else, elif  တို႔ ေလ့လာတုန္းက အေျခအေနေလးေတြလည္း မွတ္မိဦးမယ္ထင္ပါတယ္။ ေမ့သြားမွာစိုးလို႔ အတိုတစ္ပုဒ္ ျပန္လုပ္ၾကည့္ရေအာင္။

x = 'spam'
if x == 'spammy':
    print ('Hi spam\n')
    print ("Nice weather we're having")
    print ('Have a nice day!')
else:
    print ('not spam')
    print ('Not having a good day?')
..................................................

ဒီခါေတာ့ စာေမးပြဲမွာ အဆင့္သတ္မွတ္တဲ့ ပရိုဂရမ္ေလးတစ္ခုကို ေရးဆြဲျပပါမယ္။  ရွင္းျပခ်က္ကိုေတာ့ လိုအပ္တဲ့ေနရာမွာပဲ ေရးေတာ့မယ္ေနာ္။

#Exam Grade
score = input("Enter score: ")
score = int(score)
if score >= 80: ၈၀ နဲ႔ သတ္မွတ္လိုက္တာပါ။ ၈၀ ကေန အထက္ကို Grade A လို႔ သတ္မွတ္မယ္ေပါ့။
    grade = 'A'
else: ၈၀ မေက်ာ္ရင္ေရာ။ ဒီအေျခအေနမွာက် စဥ္းစားစရာေတြ ပိုမ်ားသြားပါျပီ။
    if score >= 70: ၇၀ နဲ႔ သတ္မွတ္လိုက္တာပါ။ ၇၀ ကေန အထက္ကို Grade B
        grade = 'B'
    else: 70 မရရင္ေရာ။ သူ႔ထဲမွာ အပိုင္း ထပ္ကြဲျပန္ပါျပီ။ ဒါေၾကာင့္ သူ႔အတြင္းမွာ ထပ္ဝင္ေရးရပါလိမ့္မယ္။
        if score >= 55:
            grade = 'C' 55 နဲ႔ သတ္မွတ္လိုက္တာပါ။ 55 ကေန အထက္ကို Grade C
        else: ေကာင္းျပီ။ ၅၅ မရရင္ေရာ။ ၄၀ ကေန အထက္က် ေအာင္ရံုေပါ့။ ၄၀ ေအာက္ ေရာက္ရင္ က်ျပီေပါ့။ အေျခအေန ၂ရပ္ ထပ္ကြဲတယ္။ သူ႔ေအာက္မွာ အေျခအေနထပ္ကြဲတာမို႔
            if score >= 40: if else ေတြကို သူ႔ အတြင္း ျပန္ဝင္ေရးရျပန္ပါတယ္။
                grade = 'Pass'
            else:
                 grade = 'Fail'
print ("\n\nGrade is: " + grade)

input ("Press Enter to Exit.")

.....................................
အဆင့္ ခြဲျခားေပးႏိုင္မယ့္ ေနာက္ထပ္ ပရိုဂရမ္ တစ္မ်ိဳးပါ။ ေရးပံုကြဲျပီး ေရးႏိုင္တာေတြကို သတိထားပါ။ ခုေရးမယ့္ပံုစံက အတြင္းအျပင္ဆိုတာေတြ မရွိေတာ့ ပိုျပီး လြယ္တယ္ ထင္ရႏိုင္ပါတယ္။

#Exam Grade2
score = input("Enter score: ")
score = int(score)
if score > 80 or score == 80:
    grade = 'A'
elif score > 70 or score == 70:
    grade = 'B'
elif score > 55 or score == 55:
    grade = 'C'
elif score > 40 or score == 40:
    grade = 'Pass'
else:
    grade = 'Fail'
print ("\n\nGrade is: " + grade)


input ("Press Enter to Exit.")

........................................

#Exam Grade3
score = input("Enter score: ")
score = int(score)
if score >= 80:
    grade = 'A'
elif score >= 70:
    grade = 'B'
elif score >= 55:
    grade = 'C'
elif score >= 50:
    grade = 'Pass'
else:
    grade = 'Fail'
print ("\n\nGrade is: " + grade)

input ("Press Enter to Exit.")

......................................

အရမ္း မ််ားျပီး ရႈပ္ကုန္ျပီလား။ ပံုစံတစ္ခုခ်င္းစီရဲ႕ သေဘာသဘာဝေလးကို သေဘာေပါက္ျပီဆိုရင္ ဒီသင္ခန္းစာရ႕ဲ ရည္ရြယ္ခ်က္ ေအာင္ျမင္ပါျပီ။
.
လာေရာက္ လည္ပတ္သူအေပါင္းကို ေက်းဇူးပါ

.
ကြ်န္ေတာ္ ေရးသားထားတဲ့
လြယ္ကူေလ့လာ အေျခခံ Hacking နည္းပညာ စာအုပ္ေလးကို ဖတ္ရႈေလ့လာႏိုင္သလို
စာအုပ္ရဲ႕ စာမ်က္ႏွာ ၁၁ မွာ ပါဝင္တဲ့ Member Form ကို ျဖည့္ျပီး ဓာတ္ပံုရိုက္ ေပးပို႔ျခင္းအားျဖင့္ ေနာက္ဆက္တြဲ အြန္လိုင္းသင္ခန္းစာမ်ားကိုပါ အခမဲ့ ဆက္လက္ ေလ့လာႏိုင္ပါတယ္
.
စာအုပ္မွာယူလိုပါက
ကြ်န္ေတာ့္ရဲ႕ Facebook Page Message မွ ျဖစ္ေစ
Viber 09 976 41 3560 တို႔မွ ျဖစ္ေစ ဆက္သြယ္စံုစမ္း မွာယူႏိုင္ပါတယ္ခင္ဗ်ာ
.
ဝင္ေရာက္ဖတ္ရႈအားေပးသူအေပါင္းကို အထူးေက်းဇူးပါ
.
Thanks


Khit Minnyo


0 comments:

Post a Comment