Python For Loop සිංහලෙන්: ආරම්භක මාර්ගෝපදේශය | Learn Loops in Sinhala

ආයුබෝවන් කොල්ලෝ කෙල්ලෝ හැමෝටම! කොහොමද ඉතින් ඔයාලට? අද අපි කතා කරමු programming ලෝකේ හරිම වැදගත් සහ නිතරම අපිට උදව් වෙන concept එකක් ගැන – ඒ තමයි Loops. විශේෂයෙන්ම Python වලදී අපිට වැඩ ගොඩක් ලේසි කරගන්න උදව් වෙන for
loop එක ගැන තමයි අද අපි ගැඹුරින්ම කතා කරන්නේ.
සමහර වෙලාවට ඔයාලට දැනෙනව ඇති එකම වැඩේ ආයෙ ආයෙ කරන්න වෙනකොට හරිම කම්මැලියි කියලා, නේද? උදාහරණයක් විදියට, list එකක තියෙන හැම number එකකටම මොකක් හරි operation එකක් කරන්න ඕන වෙන්න පුළුවන්. නැත්නම්, string එකක තියෙන හැම අකුරක්ම check කරන්න ඕන වෙන්න පුළුවන්. මේ වගේ අවස්ථා වලට තමයි Loops කියන අපේ යාළුවා අපිට උදව් වෙන්නේ. Loops කියන්නේ එකම කෝඩ් කොටසක් කිහිප වතාවක් run කරන්න පුළුවන් කරන mechanism එකක්. ඒකෙන් අපේ කාලයත්, කෝඩ් එකේ දිගත් අඩු වෙනවා, වැරදි අඩු වෙනවා, වැඩේ ලේසි වෙනවා. කොහොමද, පට්ට නේද?
Python වල Loops වර්ග දෙකක් තියෙනවා: for
loops සහ while
loops. අද අපි for
loops ගැන විතරක් අවධානය යොමු කරමු, මොකද ඒක ගොඩක් වෙලාවට Python වලදී වැඩිපුරම පාවිච්චි වෙන loop එකක්. ලෑස්තිද එහෙනම්? අපි යමු!
Iteration: මොකක්ද මේ "Iterate" කරනවා කියන්නේ?
පළමුවෙන්ම, "iteration" කියන්නේ මොකක්ද කියලා තේරුම් ගමු. සරලව කිව්වොත්, "iterate" කරනවා කියන්නේ මොකක් හරි collection එකක (list, string, tuple, dictionary වගේ) තියෙන item එකින් එක, පිළිවෙලට ගිහින් බලන එක. හිතන්න ඔයාලට පොත් පේලියක් තියෙනවා කියලා. ඒ පොත් පේලියේ හැම පොතක්ම අරගෙන ඒකේ පිටු ගාන බලනවා නම්, ඔයාලා කරන්නේ ඒ පොත් පේලිය "iterate" කරන එක. programming වලදීත් මේක හරියටම ඒ වගේ තමයි. for
loop එකේ ප්රධානම කාර්යය තමයි මේ iteration එක පහසුවෙන් කරන්න අවස්ථාව සලසන එක.
for
loop එකේ Syntax එකයි range()
function එකයි
Python for
loop එකේ syntax එක හරිම සරලයි, තේරුම් ගන්නත් ලේසියි. ඒක මෙන්න මේ වගේ:
for item in iterable:
# මේ කෝඩ් එක තමයි හැම iteration එකකදිම run වෙන්නේ
# 'item' කියන්නේ 'iterable' එකේ තියෙන වත්මන් element එක
item
: මේක variable එකක්. හැම iteration එකකදිම,iterable
එකේ තියෙන ඊළඟ element එක මේitem
variable එකට assign වෙනවා. මේක ඔයාලට ඕන නමක් දෙන්න පුළුවන්. (උදා:i
,num
,char
)iterable
: මේක තමයි අපි iterate කරන්න යන collection එක. (list, string, tuple, set, dictionary keys/values/items,range()
object වගේ)
අපි මේක පොඩි උදාහරණයකින් බලමු. අපි my_list
කියලා list එකක් හදමු.
my_list = ["ඇපල්", "කෙසෙල්", "දොඩම්", "අඹ"]
for fruit in my_list:
print(fruit + " හරිම රසයි!")
මේ කෝඩ් එක run කරාම මෙහෙම print වෙයි:
ඇපල් හරිම රසයි!
කෙසෙල් හරිම රසයි!
දොඩම් හරිම රසයි!
අඹ හරිම රසයි!
දැක්කා නේද? my_list
එකේ තියෙන හැම fruit එකක්ම fruit
කියන variable එකට අරගෙන, loop එක ඇතුලේ තියෙන කෝඩ් එක run කළා. ඒක තමයි for
loop එකක මූලික ක්රියාකාරීත්වය.
range()
function එක
for
loop එකත් එක්ක වැඩ කරනකොට අපිට ගොඩක් වෙලාවට උදව් වෙන තව පට්ට function එකක් තමයි range()
කියන්නේ. මේකෙන් අපිට අංක ගණනාවක් generate කරගන්න පුළුවන්. මේ range()
function එක විවිධ විදියට පාවිච්චි කරන්න පුළුවන්.
1. range(stop)
මේකෙන් කරන්නේ 0 ඉඳලා (stop - 1
) වෙනකම් අංක generate කරන එක. stop
කියන අංකය generate වෙන්නේ නැහැ. මතක තියාගන්න, Python වල බොහෝ වෙලාවට counting පටන් ගන්නේ 0 ඉඳලා (zero-indexed).
print("Range(5) උදාහරණය:")
for i in range(5): # 0, 1, 2, 3, 4
print(i)
Output:
Range(5) උදාහරණය:
0
1
2
3
4
2. range(start, stop)
මේකෙන් start
අංකයේ ඉඳලා (stop - 1
) වෙනකම් අංක generate කරනවා.
print("\nRange(2, 7) උදාහරණය:")
for i in range(2, 7): # 2, 3, 4, 5, 6
print(i)
Output:
Range(2, 7) උදාහරණය:
2
3
4
5
6
3. range(start, stop, step)
මේකෙන් start
අංකයේ ඉඳලා (stop - 1
) වෙනකම්, step
එකේ ගාණට අංක generate කරනවා. step
එක කියන්නේ එක අංකයකින් ඊළඟ අංකයට පනින ගාණ.
print("\nRange(1, 11, 2) උදාහරණය:")
for i in range(1, 11, 2): # 1, 3, 5, 7, 9
print(i)
Output:
Range(1, 11, 2) උදාහරණය:
1
3
5
7
9
දැන් range()
function එක ගැන හොඳ අවබෝධයක් ලැබෙන්න ඇති කියලා හිතනවා. මේක for
loops වලදී ගොඩක්ම පාවිච්චි වෙන එකක්.
Strings සහ Lists වල Iterate කරමු
for
loop එකේ තියෙන තවත් ලස්සනම දෙයක් තමයි අපිට Strings සහ Lists වල elements එකින් එකට access කරන්න පුළුවන් වෙන එක.
Strings
String එකක් කියන්නේ අකුරු එකතුවක්නේ. for
loop එකක් පාවිච්චි කරලා අපිට String එකක තියෙන හැම අකුරක්ම වෙන වෙනම අරගෙන වැඩ කරන්න පුළුවන්.
name = "Python"
print("අපේ නම Python:")
for char in name:
print(char)
Output:
අපේ නම Python:
P
y
t
h
o
n
මේකෙන් ඔයාලට String එකක තියෙන vowel (ස්වර) ගාන හොයන්න, අකුරු count කරන්න වගේ වැඩ ගොඩක් කරන්න පුළුවන්. පොඩි Challenge එකක් විදියට, උඩ තියෙන කෝඩ් එක modify කරලා "Python" කියන String එකේ තියෙන 'o' අකුරු කීයක් තියෙනවද කියලා හොයන්න බලන්න!
Lists
Lists ගැන නම් අපි කලින් කතා කරා. Lists වල තියෙන elements වලට access කරන්න for
loop එක තමයි හොඳම විදිය. කලින් උදාහරණයේත් අපි ඒක දැක්කා.
numbers = [10, 20, 30, 40, 50]
total = 0
print("\nList එකේ අංක එකතු කරමු:")
for num in numbers:
total += num # total = total + num
print(f"දැන් total එක: {total}")
print(f"අවසාන total එක: {total}")
Output:
List එකේ අංක එකතු කරමු:
දැන් total එක: 10
දැන් total එක: 30
දැන් total එක: 60
දැන් total එක: 100
දැන් total එක: 150
අවසාන total එක: 150
මේකෙන් අපිට List එකක තියෙන හැම අංකයකම එකතුව හොයාගන්න පුළුවන් වුණා. මේ වගේ සරල වැඩවලට වගේම, complex data processing වලටත් for
loops නැතුවම බැහැ.
break
සහ continue
: Loops පාලනය කරමු!
සමහර වෙලාවට අපිට loop එකක් අතරමග නවත්තන්න, නැත්නම් current iteration එක skip කරලා ඊළඟ එකට යන්න ඕන වෙනවා. මේ වැඩේට තමයි break
සහ continue
කියන statements දෙක උදව් වෙන්නේ. මේවාට කියන්නේ "Loop Control Statements" කියලා.
break
Statement එක
break
statement එක පාවිච්චි කරන්නේ loop එකක් සම්පූර්ණයෙන්ම නවත්තලා, ඒකෙන් එළියට එන්න. Condition එකක් true වුණ ගමන් අපිට තවදුරටත් loop වෙන්න ඕන නැත්නම් මේක පාවිච්චි කරන්න පුළුවන්.
print("\nbreak උදාහරණය:")
for i in range(1, 11):
if i == 5:
print("5 ට ආව නිසා loop එක නවත්තනවා!")
break # Loop එක නවත්වයි
print(i)
Output:
break උදාහරණය:
1
2
3
4
5 ට ආව නිසා loop එක නවත්තනවා!
දැක්කා නේද? i
කියන එක 5 වුණ ගමන් break
වුණා, ඊට පස්සේ 6, 7, වගේ අංක print වුණේ නැහැ. පට්ට නේද?
continue
Statement එක
continue
statement එක පාවිච්චි කරන්නේ current iteration එක skip කරලා, loop එකේ ඊළඟ iteration එකට යන්න. ඒ කියන්නේ, continue
එකට පස්සේ තියෙන කෝඩ් කොටස current iteration එකේදී run වෙන්නේ නැහැ.
print("\ncontinue උදාහරණය:")
for i in range(1, 11):
if i % 2 == 0: # i ඉරට්ටේ සංඛ්යාවක් නම්
print(f"{i} ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.")
continue # මේ iteration එක skip කරලා ඊළඟ එකට යයි
print(i)
Output:
continue උදාහරණය:
1
2 ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.
3
4 ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.
5
6 ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.
7
8 ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.
9
10 ඉරට්ටේ සංඛ්යාවක් නිසා skip කරනවා.
මේකෙන් අපි ඉරට්ටේ සංඛ්යා (even numbers) print වීම skip කළා. ඒ කියන්නේ continue
statement එකට පස්සේ තියෙන print(i)
කියන line එක ඉරට්ටේ සංඛ්යාවක් ආවොත් run වුණේ නැහැ.
Review සහ Troubleshooting: පොඩි පොඩි වැරදි හදාගමු!
Loops එක්ක වැඩ කරනකොට අපිට පොඩි පොඩි අවුල් යන්න පුළුවන්. ඒත් අවුලක් නෑ, ඒක සාමාන්ය දෙයක්. අපි බලමු පොදුවේ වෙන වැරදි මොනවද, ඒවා හදාගන්නේ කොහොමද කියලා.
"Off-by-one" Errors with range()
මේක තමයි range()
එක්ක වැඩ කරනකොට නිතරම වෙන පොදු වැරැද්දක්. range(stop)
කියන්නේ 0 ඉඳලා stop-1
වෙනකම්. range(start, stop)
කියන්නේ start
ඉඳලා stop-1
වෙනකම්. ගොඩක් වෙලාවට අපි හිතනවා stop
කියන අංකයත් generate වෙයි කියලා. ඒත් එහෙම වෙන්නේ නෑ. ඒ නිසා, ඔයාලට 1 ඉඳලා 10 වෙනකම් print කරන්න ඕන නම්, range(1, 11)
කියලා දෙන්න ඕන මිසක් range(1, 10)
කියලා නෙමෙයි. නැත්නම් "අයියෝ! එකකින් අඩුයිනේ!" කියලා හිතෙන්න පුළුවන්.
# වැරදි විදිය: 1 සිට 9 දක්වා print වේ
print("වැරදි off-by-one උදාහරණය:")
for i in range(1, 10):
print(i) # 1, 2, ..., 9
# නිවැරදි විදිය: 1 සිට 10 දක්වා print වේ
print("\nනිවැරදි off-by-one උදාහරණය:")
for i in range(1, 11):
print(i) # 1, 2, ..., 10
Infinite Loops (for
Loops වලදී අඩුයි)
Infinite loop එකක් කියන්නේ කවදාවත් නොනවතින loop එකක්. while
loops වලදී මේක වෙන්න තියෙන ඉඩකඩ වැඩියි, මොකද while
loop එකක් run වෙන්නේ condition එකක් true වෙලා තියෙනකම්. for
loop එකක් නම් iterate වෙන්නේ finite iterable එකක් (list, string, range object වගේ) උඩ. ඒ නිසා for
loop එකක් infinite වෙන්න තියෙන ඉඩකඩ ගොඩක් අඩුයි. හැබැයි, break
හෝ continue
වගේ logic එකක් වැරදිලා ලිව්වොත්, නැත්නම් nested loops වලදී පොඩි පොඩි අවුල් යන්න පුළුවන්.
Best Practices: Smart විදියට කෝඩ් ලියමු!
Iterables ගැන තේරුම් ගන්න
for
loop එකක් පාවිච්චි කරනකොට, ඒක වැඩ කරන්නේ "iterable" object එකක් එක්ක කියන එක හොඳට තේරුම් ගන්න. Python වල Strings, Lists, Tuples, Sets, Dictionaries (මේවායේ keys, values, හෝ items) සහ range()
objects මේ හැම එකක්ම iterables තමයි. මේවා ගැන හොඳ අවබෝධයක් තියෙනවා නම්, ඔයාලට for
loop එකෙන් කරන්න පුළුවන් දේවල් අසීමිතයි.
Readability: කෝඩ් එක කියවන්න ලේසි වෙන්න ඕනේ
variable නම් දෙද්දී, i
, j
, k
වගේ අකුරු පාවිච්චි කරනවාට වඩා, fruit
, number
, character
වගේ අර්ථවත් නම් පාවිච්චි කරන්න. ඒකෙන් ඔයාලා ලියපු කෝඩ් එක තව කෙනෙක්ට වගේම, ඔයාලටම ආයෙ බලනකොටත් තේරුම් ගන්න ලේසියි.
# නරක උදාහරණය
for x in my_data:
print(x)
# හොඳ උදාහරණය
for customer_name in customer_list:
print(customer_name)
for
vs. while
: කවදාද මොකක් පාවිච්චි කරන්නේ?
for
loop: ඔයාලා දන්නවා නම් කොපමණ වාර ගාණක් loop වෙන්න ඕනෙද කියලා (උදා: list එකක හැම element එකක්ම, 10 වතාවක්), එහෙම නැත්නම් collection එකක තියෙන හැම element එකක්ම process කරන්න ඕන නම්,for
loop එක තමයි හොඳම විසඳුම.while
loop: ඔයාලා දන්නේ නැත්නම් කොපමණ වාර ගාණක් loop වෙන්න ඕනෙද කියලා, හැබැයි යම්කිසි condition එකක් true වෙනකම් loop වෙන්න ඕන නම් (උදා: user input එකක් නිවැරදි වෙනකම්),while
loop එක පාවිච්චි කරන්න.
Nested Loops: Loops ඇතුලේ Loops!
සමහර වෙලාවට අපිට Loop එකක් ඇතුලේ තව Loop එකක් ලියන්න වෙනවා. මේවට කියන්නේ "Nested Loops" කියලා. මේවා පාවිච්චි කරන්නේ දෙකකට වඩා වැඩි dimension තියෙන දේවල් (matrix එකක් වගේ) manipulate කරනකොට. මේ ගැන අපි අනාගත ලිපියකින් කතා කරමු, මොකද මේවා පොඩ්ඩක් සංකීර්ණ වෙන්න පුළුවන්.
අවසාන වචනය...
ඉතින් කොල්ලෝ කෙල්ලෝ, අද අපි Python for
loop එක ගැන මුල ඉඳලා අගටම කතා කළා. Loop එකක මූලික concept එක, for
loop එකේ syntax එක, range()
function එක, Strings සහ Lists එක්ක for
loop එක පාවිච්චි කරන විදිය, break
සහ continue
statements, පොදු වැරදි සහ හොඳ පුරුදු ගැන ඔයාලට හොඳ අවබෝධයක් ලැබෙන්න ඇති කියලා හිතනවා.
Programming කියන්නේ ප්රැක්ටිස් කරන්න ඕන දෙයක්. මේ ලිපියේ තියෙන උදාහරණ ඔයාලගේම IDE එකක (PyCharm, VS Code, Thonny වගේ) run කරලා බලන්න. තව ඔයාලගේම පොඩි problems හදාගෙන ඒවාට for
loops පාවිච්චි කරලා විසඳුම් හොයන්න උත්සාහ කරන්න. එතකොට තමයි මේ concept එක ඔයාලට හොඳටම කාවදින්නේ.
ඔයාලට මේ ලිපියෙන් අලුත් දෙයක් ඉගෙන ගන්න ලැබුණා නම්, නැත්නම් ප්රශ්න මොනවා හරි තියෙනවා නම්, පහළ comment section එකේ අහන්න ලැජ්ජා නැතුව. ඔයාලගේ අදහස් දැනගන්න අපි කැමතියි!
මීළඟ ලිපියකින් නැවත හමුවෙමු! Good Luck!