Skip to main content

Command Palette

Search for a command to run...

Python Loops with CS50

Week-2

Published
2 min readView as Markdown
Python Loops with CS50

အရင်အပတ်ကတော့ conditions အကြောင်းပြောခဲ့ပါတယ်။ ဒီတစ်ပတ် week 2 မှာတော့ ပိုပြီးစိတ်၀င်စားစရာကောင်းတဲ့ Loop တွေအကြောင်းကို အဓိကပြောခဲ့ပြီး ကျန်တဲ့ list, dictionary တွေအကြောင်းကိုလည်း ဖြည့်ပြောသွားခဲ့ပါတယ်။

Loop ဆိုတာ ကိုယ်ထပ်ခါထပ်ခါ လုပ်ချင်တဲ့ code block ကို သတ်မှတ်ထားတဲ့အကြိမ်ရေအတိုင်း လုပ်ပေးတဲ့ control flow structure ဖြစ်ပါတယ်။ တူညီတဲ့ action တွေကို ထပ်ခါထပ်ခါလုပ်ဖို့ တူညီတဲ့ function တွေကို ကြိမ်ဖန်များစွာထပ်ရေးနေတာက program ကို ကြည့်ရတာရှုပ်ထွေးစေပါတယ်။

Loop ဆိုတဲ့နေရာမှာ အကြမ်းအားဖြင့် Loop နှစ်ခုရှိပါတယ်။ while loop နဲ့ for loop တို့ဖြစ်ပါတယ်။

while loop နဲ့ for loop ကိုသုံးတဲ့နေရာမှာ conditional တွေစစ်တုန်းကလိုပဲ သူ့ရဲ့သတ်မှတ်ထားတဲ့ indentation အတိုင်းရေးပေးရပါတယ်။ ဘယ် code block ကို loopပတ်မယ်၊ ဘယ် function တွေကိုတော့ loop အပြင်ဘက်မှာထားမယ်ဆိုတာ‌တွေက အလွန်အရေးကြီးပါတယ်။ Indentation မှားတာနဲ့ error တက်နိုင်ပါတယ်။ Default indentation အနေနဲ့ space (၄) ခုစာ ဒါမှမဟုတ် Tab တစ်ခုစာ အဖြစ် သတ်မှတ်ထားပါတယ်။

num = 0
while num < 3:
    print("hello")
    num+=1 

Output : hello
         hello
         hello

အရင်ဆုံး loop တွေထဲမှာမှ ပထမဆုံးဖြစ်တဲ့ while loop အကြောင်းသင်ခဲ့ရပါတယ်။ While loop ဟာသူ့ရဲ့နောက်က condition မှန်နေသရွေ့ loop ပတ်ပါတယ်။ အဲ့တာကြောင့် အကြိမ်ရေဘယ်နှခေါက် loop ပတ်ရမယ်ဆိုတာ (iterations range) မသိတဲ့ အခြေအနေတွေမှာသုံးလေ့ရှိပါတယ်။ variable တစ်ခုက ဖော်ပြထားတဲ့ conditionနဲ့မှန်လားဆိုတာစစ်ပါတယ်။ မှန်တယ်ဆိုရင် မှန်တဲ့အခြေအနေအောက်မှာရေးထားတဲ့ code တွေကို run စေပါတယ်။ condition မှန်နေသ၍ loop ပတ်တာကြောင့် condition ကိုထိန်းတဲ့အခြေအနေတစ်ခုတော့ လိုအပ်ပါတယ်။ အဲ့တာမပါခဲ့ရင် infinite loop ပါဖြစ်သွားနိုင်တာကြောင့် ဂရုစိုက်သင့်ပါတယ်။ မမှန်ရင် ဆက်လုပ်ရမယ့်အလုပ်တွေကိုတော့ else ဆိုတဲ့ keyword ကိုသုံးပြီး ဖြည့်သွင်းရေးသားလို့လည်းရပါသေးတယ်။

while ပြီးရင်တော့ဒုတိယ loop ဖြစ်တဲ့ for loop ပဲဖြစ်ပါတယ်။ for loop ကတော့ တိကျတဲ့ range တစ်ခု၊ string၊ list တို့နဲ့ တွဲသုံးပါတယ်။ သူကလည်း while loop လိုပဲ သတ်မှတ်ထားတဲ့ indentation နဲ့အတူတွဲရေးရပါတယ်။သူနဲ့တွဲသုံးတဲ့ function လဲရှိပါတယ် အဲ့တာကတော့ range() ပဲဖြစ်ပါတယ်။ အဲ့မှာဆိုရင်တော့ range ထဲ့မှာပတ်မယ့်အကြိမ်အရေအတွက်ကိုထည့်လိုက်ရုံပါပဲ။

for i in range (3):
    print(i)

Output : 0
         1
         2

ဒီမှာဆိုရင်သုံးခါ loop ပတ်မှာဲဖြစ်ပါတယ်။ range တွေက 0 ကနေ စလေ့ရှိပီး ကိုယ်ထည့်ထားတဲ့ ဂဏန်းထပ် ၁ ခါ လျော့ပြီး Loop ပတ်ပါတယ်။ ဥပမာ range(3) ဆိုရင် သူ့ထဲမှာပါမယ့် item တွေက 0,1,2 ပဲဖြစ်ပါတယ်။

Python မှာ underscore "_" ကို anonymous variable လို့ခေါ်ပြီး သူကနောက်ဆုံးသုံးခဲ့ဖူးတဲ့ value ကို store လုပ်ပေးပါတယ်။တူညီတဲ့ stringတစ်ခုကို တစ်ခါမက‌ output ထွက်စေချင်ရင် အဲ့ string ကို ထွက်စေလိုတဲ့အကြိမ်အရေအတွက်နဲ့ မြှောက်လို့ရပါတယ်။ python မှာ အ‌မြှောက်သင်္ကေတကို( * )နဲ့ဖော်ပြပါတယ်။ /n ကတော့ စာကြောင်းအသစ် ဖန်တီးချင်တဲ့နေရာမှာသုံးတဲ့ keyword ဖြစ်ပါတယ်။ loop တွေကို အခြေအနေစစ်ပြီး ဆက်အလုပ်လုပ်စေချင်တဲ့အခါ continue ကို သုံးပြီး ၊ loop ကို ရပ်စေချင်တဲ့ အခါမှာတော့ break ကိုသုံးပါတယ်။

List ဆိုတာ data type တွေ အတူတူ (သို့) data type တွေအမျိုးမျိုး ကို variable တစ်ခုထဲကို store လုပ် ပေးနိုင်တဲ့ python ရဲ့ data type တွေထဲကတစ်ခုဖြစ်ပါတယ်။ listကို square brackets " [ ] " နဲ့‌ရေးရပြီး duplicate(တူညီအရာတစ်ခု နှစ်ကြိမ်ထပ်) values လက်ခံပါတယ်။ listမှာ indexပါရှိပြီး 0 ကနေ စရေတွက်ပါတယ်။

students = ["Item1", "Item2","Item3"]
print(students)

Output : ['Item1', 'Item2','Item3']

listရဲ့ထိပ်ဆုံးက itemကို အဲ့ listရဲ့ index[0] လို့ သတ်မှတ်ပါတယ်။ list က mutable(ပြောင်းလို့ရ)ဖြစ်တဲ့အတွက် itemတွေကို ဖြုတ်၊သွင်း၊ လဲလှယ်လို့ရပါတယ်။ item ကတော့အကန့်သတ်မရှိထည့်လို့ရပါတယ်။ len() ဆိုတဲ့ function ကတော့ list ထဲမှာရှိတဲ့ item ကိုရေတွက်ပေးတာပဲဖြစ်ပြီး len() ကို string နဲ့လည်းသုံးလို့ရပါတယ်။

Dictionary ကို curly brackets "{}" နဲ့ ‌‌ရေးရပြီး "key" : "value " ဆိုပြီး အတွဲလိုက်လေးရှိပါတယ်။ dictionary တွေရဲ့ index ကို key နဲ့သတ်မှတ်ပါတယ်။ duplicate ဖြစ်လို့မရတဲ့အတွက် key တွေတူလို့မရပါဘူး။ရှေ့က ‘item တွေက key ဖြစ်ပြီး နောက်က item တွေက value တွေဖြစ်ပါတယ်။ key ရှိပြီး value မရှိရင်တော့ None ဆိုပြီးရေးလို့ရပါတယ်။ for loop ကို dictionary မှာ ပတ်မယ်ဆိုရင် key တွေကိုပဲ loopပတ်သွားပါတယ်။ loop ထဲမှာ loop ထည့်ရေးတာကို nested loops လို့ခေါ်ပါတယ်။

dict = {"Hermione": "Gryffindor",
    "Harry": "Gryffindor",
    "Ron": "Gryffindor",
    "Draco": "Slytherin",
    "Dudley Dursley": None
    }
print(dict["Ron"])
print(dict["Dudley Dursley"])

Output : Gryffindor 
         None

ဒီတစ်ခေါက် Week - 1 မှာကတော့ loop တွေနဲ့ list, dictionary တွေအကြောင်းကိုပြောခဲ့ပါတယ်၊၊ နောက်တစ်ပတ်မှာ ပိုကောင်းတဲ့အကြောင်းအရာတွေနဲ့ ပြန်ဆုံကြပါမယ်။

ဖတ်ရှုပေးလို့ ကျေးဇူးအများကြီးတင်ပါတယ်။


Weekend Warriors

More from this blog

Difference Between Regional NAT Gateway and Zonal NAT Gateway

ဒီ post လေးထဲမှာတော့ Regional NAT Gateway နဲ့ Zonal NAT Gateway ကွာခြားချက်တွေကို နှိုင်းယှဉ်ပြသွားမှာဘဲ ဖြစ်ပါတယ်။ ပထဆုံးအနေနဲ့ NAT Gateway ဆိုတာ ဘာလဲ ဘာအတွက် လိုအပ်တာလဲဆိုတာကို အရင်ပြောပြပေးပါမယ်။ P

Jun 19, 20264 min read101
Difference Between Regional NAT Gateway and Zonal NAT Gateway

Infrastructure ကိုင်ပြီး အိပ်ရေးမပျက် ချင် လျှင် ဒါမျိုး Alarms လုပ် 🔥🔥🔥

High Level ရေးထားတာပါ ဒါပေမဲ့ လွယ်ပါတယ် ​ကိုယ့်မှာ AWS Infra တွေရှိတယ်ဆို တွေ့သမျှ metric တွေကို alarms တွေလုပ်ပြီး notification ယူမနေဘဲ တကယ် effective ဖြစ်တဲ့ metric တွေကိုမှ CloudWatch ရဲ့ alarm feature တွေနဲ့ ပေါင်းပြီး ပို့စေချင်ပါတယ်။ ​ဥပမာ prod...

Jan 17, 20263 min read221
Infrastructure ကိုင်ပြီး အိပ်ရေးမပျက် ချင် လျှင်  ဒါမျိုး Alarms လုပ် 🔥🔥🔥

How to connect On Premises Network and Cloud (AWS)? (Part-2)

ကိုယ့်ရဲ့ ‌data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ဘယ်လို ချိတ်ဆက်ကြမလဲ? အပိုင်း (၂) မှာ တော့ Direct connect အကြောင်းကို ဆွေးနွေး သွားမှာ ဖြစ်ပါတယ်။ အပိုင်း (၁) Site-to-site VPN အကြောင်းကို လေ့လာချင်ရင်တော့ အောက်ပါ link မှာ ...

Dec 20, 20253 min read268
How to connect On Premises Network and Cloud (AWS)? (Part-2)

How to connect On Premises Network and Cloud (AWS)? (Part-1)

ကိုယ့်ရဲ့ ‌data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ချိတ်ဆက်နိုင်တဲ့ နည်း (၂) နည်း ရှိပါတယ်။ 1. Site-to-Site VPN (Virtual Private Network) 2. Direct connect Site-to-Site VPN - On-prem network နဲ့ AWS resources တွေ ချိတ်ဆက်တဲ့...

Dec 12, 20252 min read305
How to connect On Premises Network and Cloud (AWS)? (Part-1)

Accessibility for Designer

လွန်ခဲ့တဲ့အပတ်က ရုံးက Designer တွေနဲ့ တော်ကီပွားရင်း Accessibility နဲ့ပတ်သတ်တာတွေ သူတို့ကို ရှင်းပြဖြစ်တယ်။ ကိုယ်တိုင်ကလည်း အရင်ကတည်းက ဒီ topic ကိုစိတ်ဝင်စားလို့ လေ့လာနေတာဆိုတော့ အခွင့်အရေးရရင် ရသလို sharing လုပ်ဖြစ်တယ်။ အဓိကက Accessibility နဲ့ပတ်သတ်...

Nov 21, 20253 min read90
Accessibility for Designer
M

Myanmar Technical Blog

109 posts

Cloud, Linux, DevOps, Docker, Security အစရှိတဲ့ နည်းပညာများ အကြောင်းကို မြန်မာလို ပြန်လည်မျှဝေပေးမယ့် Blog ပဲဖြစ်ပါတယ်ခဗျာ...