Python වල if, elif, else - තීරණ ගන්න හැටි (SC Guide)

ආයුබෝවන් ඩෙවොලොපර් මල්ලිලාටයි, නංගිලාටයි! කොහොමද ඉතින් ඔයාලගේ Code Journey එක? අද අපි කතා කරන්න යන්නේ programming වල හරිම වැදගත් කොටසක් ගැන – ඒ තමයි Conditional Statements. මේක හරියට ජීවිතේ අපි තීරණ ගන්නවා වගේ තමයි. “අද පායලා නම් පාරට බහිනවා, නැත්නම් ගෙදරට වෙලා ඉන්නවා” වගේ වැඩසටහනකටත් තීරණ ගන්න වෙනවා. Programming වලදී මේ තීරණ ගන්නේ if
, elif
, else
වගේ statements වලින්.
අපි හිතමු ඔයා App එකක් හදනවා කියලා, ඒක user කෙනෙක්ගේ වයස අනුව message එකක් display කරනවා. වයස 18ට වැඩි නම් 'You are an adult' කියන්න ඕනේ. 18ට අඩු නම් 'You are a minor' කියන්න ඕනේ. මේ වගේ තත්ත්වයකදී කොහොමද අපේ program එකට මේ තීරණය ගන්න කියලා කියන්නේ? ඔන්න ඕකට තමයි Conditional Statements ඕන වෙන්නේ. මේ ලිපියෙන් අපි මේ concept එක මුල ඉඳන්, practical උදාහරණ එක්ක, ඔයාලට ලේසියෙන් තේරෙන විදිහට කතා කරමු.
Programming වලට කොන්දේසි කියන්නෙම මොකක්ද?
සරලවම කියනවා නම්, Conditional Statements කියන්නේ අපේ program එකේ control flow එක regulate කරන ක්රමයක්. Control flow කියන්නේ program එකක instruction set එකක් execute වෙන order එක. සාමාන්යයෙන් program එකක් line by line, උඩ ඉඳන් පහළට යනවා. ඒත් සමහර වෙලාවට අපිට ඕන වෙනවා, යම්කිසි තත්ත්වයක් සත්ය නම් (True) විතරක් code ටිකක් run කරන්න, නැත්නම් වෙන code ටිකක් run කරන්න. හරියට Road එකක යනකොට signal එක රතු නම් නවතිනවා වගේ, කොළ නම් යනවා වගේ තමයි මේකත්.
මේ තීරණ ගැනීම තමයි Programming Logic එකේ හරිම වැදගත් කොටසක්. අපේ program එකට intelligent විදිහට වැඩ කරන්න මේ capability එක අත්යවශ්යයි. අපි මේ සඳහා වැඩිපුරම භාවිතා කරන statements තමයි if
, elif
, සහ else
.
if, elif, else: ගේම ගහන විදිහ
පයිතන් (Python) කියන්නේ මේ වගේ දේවල් වලට හරිම user-friendly භාෂාවක්. අපි දැන් එකින් එක බලමු කොහොමද මේවා වැඩ කරන්නේ කියලා.
1. if
Statement එක
if
කියන්නේ සරලම Conditional statement එක. මේකෙන් කරන්නේ දීලා තියෙන condition එක True ද කියලා check කරන එක. True නම්, ඒ if
block එක ඇතුලේ තියෙන code ටික run කරනවා. False නම්, ඒ block එක skip කරලා program එකේ ඊළඟ line එකට යනවා.
Syntax එක මෙහෙමයි:
if condition:
# මේ code එක run වෙන්නේ condition එක True නම් විතරයි
statement1
statement2
වැදගත්: Python වල Indentation (ඉස්සරහට ඉඩ තියන එක) හරිම වැදගත්. if
block එකේ තියෙන හැම line එකක්ම එකම විදිහට indent වෙලා (සාමාන්යයෙන් spaces 4ක් හෝ Tab එකක්) තියෙන්න ඕනේ. නැත්නම් IndentationError එකක් එනවා.
උදාහරණයක්:
number = 10
if number > 0:
print("මේක ධන අංකයක්.") # This will be executed
print("මෙය if block එකෙන් පිටත.")
මෙහිදී, number > 0
කියන condition එක True
වෙන නිසා, print("මේක ධන අංකයක්.")
කියන line එක execute වෙනවා. number
එක -5 වගේ දෙයක් නම්, if
block එක ඇතුලේ තියෙන code එක execute වෙන්නේ නෑ.
2. else
Statement එක
else
statement එක භාවිතා කරන්නේ if
condition එක False වුනොත් මොකද වෙන්න ඕනේ කියලා කියන්න. if
එකක් එක්ක else
එකක් එන්නේ optional විදිහට. හැබැයි else
තනියෙන් භාවිතා කරන්න බෑ, ඒක if
එකක් එක්කම එන්න ඕනේ.
Syntax එක:
if condition:
# condition එක True නම් මේක run වෙනවා
statement1
else:
# condition එක False නම් මේක run වෙනවා
statement2
උදාහරණයක්:
age = 15
if age >= 18:
print("ඔබ වැඩිහිටියෙක්.")
else:
print("ඔබ බාලවයස්කරුවෙක්.") # This will be executed
මෙහිදී, age >= 18
(15 >= 18) කියන condition එක False
වෙන නිසා, else
block එක ඇතුලේ තියෙන print("ඔබ බාලවයස්කරුවෙක්.")
කියන line එක execute වෙනවා.
3. elif
Statement එක
සමහර වෙලාවට අපිට තියෙන්නේ එක condition එකක් විතරක් නෙවෙයි, එකකට වඩා වැඩි conditions ගණනක් check කරන්න වෙනවා. උදාහරණයක් විදිහට, exam එකක grade එක determine කරන්න වගේ වෙලාවකදී. ඔන්න ඕකට තමයි elif
(else if) කියන එක එන්නේ. මේකෙන් පුළුවන් if
condition එක False
වුනොත්, ඊළඟට තව condition එකක් check කරන්න.
Syntax එක:
if condition1:
# condition1 True නම්
statement1
elif condition2:
# condition1 False නම්, condition2 True නම්
statement2
elif condition3:
# condition1, condition2 False නම්, condition3 True නම්
statement3
else:
# උඩින් තියෙන කිසිම condition එකක් True නැත්නම්
statement4
වැදගත්: elif
statements කීයක් වුනත් දාන්න පුළුවන්. Program එකක් elif
block එකක් ඇතුලට යන්නේ ඊට කලින් තියෙන හැම if
හා elif
condition එකක්ම False
වුනොත් විතරයි.
උදාහරණයක්: සිසුවෙක්ගේ ලකුණු වලට අදාළව Grade එක හොයමු.
score = 75
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
elif score >= 60:
print("Grade: D")
else:
print("Grade: F")
මේ example එකේදී, score
එක 75 නිසා,
score >= 90
(75 >= 90) -> Falseelif score >= 80
(75 >= 80) -> Falseelif score >= 70
(75 >= 70) -> True. මේක True නිසා,print("Grade: C")
එක execute වෙනවා, ඊට පස්සේ අනිත්elif
සහelse
statements check කරන්නේ නැතුව program එකif-elif-else
block එකෙන් එලියට යනවා.
අන්ඩරම අන්ඩරේ: Nested Conditionals
සමහර වෙලාවට අපිට තීරණයක් ඇතුලේ තව තීරණයක් ගන්න වෙනවා. මේකට කියන්නේ Nested Conditionals කියලා. ඒ කියන්නේ if
(හෝ elif
/else
) block එකක් ඇතුලේ තව if
block එකක් තියෙන එක.
උදාහරණයක්: ඡන්දය දාන්න පුළුවන්ද කියලා බලමු. වයස 18ට වැඩි අය විතරයි ඡන්දය දාන්න පුළුවන්. ඒත් අපි හිතමු සමහර රටවල් වල පුරවැසිභාවයත් බලනවා කියලා.
age = 25
is_citizen = True
if age >= 18:
print("ඔබට ඡන්දය දීමට වයස තිබෙනවා.")
if is_citizen:
print("ඔබට ඡන්දය දීමට පුළුවන්.")
else:
print("ඔබට ඡන්දය දීමට පුරවැසිභාවය නැත.")
else:
print("ඔබට ඡන්දය දීමට වයස මදි.")
මේ example එකේදී, මුලින්ම age >= 18
කියන condition එක check කරනවා. ඒක True
නම්, ඊට පස්සේ ඇතුලේ තියෙන if is_citizen:
කියන condition එක check කරනවා. මේ වගේ Nested Conditionals ලියනකොට Indentation ගැන විශේෂයෙන් සැලකිලිමත් වෙන්න ඕනේ. හැම block එකක්ම ඊට කලින් block එකට සාපේක්ෂව indent වෙන්න ඕනේ.
අත්වැරදි සහ විසඳුම්: Troubleshooting
Programming කරනකොට වැරදි වෙන එක සාමාන්ය දෙයක්. Conditional Statements එක්ක වැඩ කරනකොටත් පොදුවේ එන වැරදි කීපයක් තියෙනවා. ඒවා ගැනත් පොඩ්ඩක් බලමු.
1. IndentationError
Python වල Indentation හරිම critical. if
, elif
, else
block එකේ තියෙන code lines එකම level එකකට indent වෙලා නැත්නම්, IndentationError එකක් එනවා. මේක beginner කෙනෙක්ට වැඩිපුරම එන error එකක්.
වැරදි උදාහරණයක්:
# මේක IndentationError එකක් දෙනවා!
if 10 > 5:
print("Hello") # මේක indent වෙලා නෑ
නිවැරදි කිරීම:
if 10 > 5:
print("Hello") # හරි විදිහට indent කරලා
හරිම Indentation එකක් භාවිතා කරන්න (spaces 4ක් හෝ Tab එකක්) හැම තිස්සෙම මතක තියාගන්න.
2. Logical Errors
මේක code එක run වෙනවා, error එකක් දෙන්නේ නෑ. ඒත් output එක අපි බලාපොරොත්තු වෙන දේ නෙවෙයි. මේකට කියන්නේ Logical Error කියලා. මේවා වෙන්නේ අපේ condition එක වැරදි විදිහට හරි, අපි බලාපොරොත්තු වෙන විදිහට නෙවෙයි හරි ලියලා තිබ්බොත්.
උදාහරණයක්: 10ත් 20ත් අතර අංකයක් ද කියලා බලමු.
number = 5
# මේක වැරදියි! Logic එක වැරදියි.
if number > 10 or number < 20:
print("අංකය 10ට වැඩි හෝ 20ට අඩුයි.")
# මොකද වෙන්නේ 5 කියන්නේ 10ට වැඩි නෑ. ඒත් 20ට අඩුයි. එතකොට True.
# 25 දුන්නොත් 10ට වැඩි. ඒත් 20ට අඩු නෑ. ඒත් True. මේක හැම විටම True වෙනවා.
# අපිට ඕන වුනේ 10ත් 20ත් අතර නම්, condition එක වෙනස් වෙන්න ඕනේ.
නිවැරදි කිරීම:
number = 5
# නිවැරදි Logic එක
if number > 10 and number < 20:
print("අංකය 10ත් 20ත් අතර.")
else:
print("අංකය 10ත් 20ත් අතර නැහැ.")
මෙහිදී, `and` operator එක භාවිතා කරන නිසා, condition දෙකම `True` වුනොත් විතරයි `if` block එක execute වෙන්නේ.
ගමේ කතා කරන Best Practices
හොඳ programmer කෙනෙක් වෙනවා නම්, code ලියනකොට හොඳ පුරුදු (Best Practices) ටිකක් follow කරන්න ඕනේ. මේවා code එක maintain කරන්න, කියවන්න, අනිත් අයට තේරුම් ගන්න ලේසි කරනවා.
- Conditions පැහැදිලිව ලියන්න: ඔයාගේ condition එක කෙටි, පැහැදිලි, සහ තේරුම් ගන්න ලේසි වෙන්න ඕනේ.
- Nested Conditionals ප්රවේශමෙන් භාවිතා කරන්න: ඕනෑවට වඩා Nested Conditionals දැම්මොත් code එක කියවන්න සහ තේරුම් ගන්න අමාරු වෙනවා (complex). පුළුවන් තරම් ඒවා අඩු කරන්න උත්සාහ කරන්න. සමහර වෙලාවට `and`, `or` වගේ logical operators භාවිතා කරලා Nested Conditionals අඩු කරගන්න පුළුවන්.
- Variable Names හොඳට දෙන්න: Variables වලට නම දෙනකොට ඒකෙන් මොකක්ද කියවෙන්නේ කියලා තේරෙන විදිහට නමක් දෙන්න. `x`, `y` වගේ නාම වෙනුවට `age`, `score`, `is_admin` වගේ නම් භාවිතා කරන්න.
- Comments දාන්න: ඔයාගේ code එකේ ටිකක් complex logic තියෙන තැන් වලට comments දාන්න. අනිත් කෙනෙක්ට (නැත්නම් ඔයාටම මාස කීපයකට පස්සේ) code එක තේරුම් ගන්න ඒක ලොකු උදව්වක්.
- Code Reusability: එකම type එකේ conditional logic එකක් program එකේ තැන් කීපයක භාවිතා කරනවා නම්, ඒක function එකක් විදිහට ලියලා reuse කරන්න බලන්න.
අන්තිමයි අන්තිම කොට
අද අපි Conditional Statements ගැන ගොඩක් දේවල් කතා කළා. if
, elif
, else
භාවිතා කරලා කොහොමද program එකකට තීරණ ගන්න සලස්වන්නේ කියලා දැන් ඔයාලා දන්නවා. Programming වලදී මේ concept එක නැතුව ඉස්සරහට යන්න බෑ. මොකද හැම program එකකටම වගේ තීරණ ගන්න වෙනවා.
දැන් ඔයාට පුළුවන් මේ concepts භාවිතා කරලා පුංචි program කීපයක් ලියන්න. උදාහරණයක් විදිහට,
- User කෙනෙක්ගෙන් අංකයක් අරගෙන ඒක positive ද, negative ද, නැත්නම් බිංදුව ද කියලා කියන program එකක්.
- අවුරුද්දක් Leap Year එකක් ද කියලා check කරන program එකක්. (Leap Year එකක් වෙන්නේ අවුරුද්ද 4න් බෙදෙනවා නම්, හැබැයි 100න් බෙදෙනවා නම් Leap Year එකක් නෙවෙයි, 400න් බෙදෙනවා නම් Leap Year එකක්)
- User කෙනෙක්ගේ පවුලේ සාමාජික සංඛ්යාව අනුව, කාමර කීයක් ඕනෙද කියලා කියන program එකක්.
ඔයාලා මේ concept එක හොඳින්ම තේරුම් ගන්න නම්, අනිවාර්යයෙන්ම මේවා practice කරන්න ඕනේ. ප්රශ්න තියෙනවා නම්, comment section එකේ අහන්න. අපි හැමෝම එකට ඉගෙන ගමු, එකට දියුණු වෙමු!
සුභ දවසක්!