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

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 නිසා,

  1. score >= 90 (75 >= 90) -> False
  2. elif score >= 80 (75 >= 80) -> False
  3. elif 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 එකේ අහන්න. අපි හැමෝම එකට ඉගෙන ගමු, එකට දියුණු වෙමු!

සුභ දවසක්!