BREAKING NEWS
🚀 Kaweesha launched the new AI Tech Blog! 💻 Python & Java Tutorials are now live. 🎮 Game Development Guide: Building 2D Games with Godot. 🌐 Web Hosting secrets revealed - Check the latest post!

Python Sinhala - Part 04: කෝඩ් එක කෙටි කරන "මැජික් යන්ත්‍ර" (Functions & Error Handling) ⚙️🛠️

Python Functions def keyword and Try Except error handling concept art for Sinhala programming tutorial.

අපි මේ වෙනකම් ලිව්වේ උඩ ඉඳන් පහළට එක දිගට ගලාගෙන යන කෝඩ් (Linear Code). හැබැයි යාලුවනේ, අපි ලොකු Project එකක් (උදාහරණයකට YouTube Downloader එකක්) කරනකොට කෝඩ් පේළි 1000ක් විතර ලියන්න වුනොත් මොකද කරන්නේ? 🤯 එකම දේ ආයේ ආයේ ලිය ලිය ඉන්නවද? නෑ!

වැඩ්ඩො කවදාවත් එකම දේ දෙපාරක් ලියන්නේ නෑ. එයාලා කරන්නේ ඒ වැඩේට අදාළ "මැෂින් එකක්" (Function) හදන එක. අද අපි බලමු කොහොමද Python වල ඔයාගේම මැෂින් හදන්නේ කියලා.

මේ පාඩම පොඩ්ඩක් "Deep". හැබැයි මේක තමයි Programming වල කොඳු නාරටිය. ඒ නිසා හිමින් සැරේ කියවන්න. 🧠✨

පොඩි රහසක්: මොකක්ද මේ `print(f"...")` කියන්නේ? 🤫

අපි පාඩමට යන්න කලින් පොඩි දෙයක් දැනගමු. ඔයා දැකලා ඇති මම කෝඩ් වල print(f"Hello {name}") වගේ ලියනවා. ඇයි මේ ඉස්සරහට 'f' අකුරක් දාන්නේ?

මේකට කියන්නේ F-Strings (Fast Strings) කියලා. මේකෙන් පුළුවන් වාක්‍යයක් මැදට Variable එකක් රිංගවන්න.

name = "KP"
age = 22

# පරණ ක්‍රමය (මාර වදයක් 😫)
print("My name is " + name + " and I am " + str(age) + " years old.")

# අලුත් F-String ක්‍රමය (පට්ට ලේසියි 😎)
print(f"My name is {name} and I am {age} years old.")

නිකන්ම f එක දාලා, Variable එක {} ඇතුලේ දාන්න විතරයි තියෙන්නේ. පට්ට නේද?

1. මොකක්ද මේ Function (def) කියන්නේ? ⚙️

සරල උදාහරණයක් ගමු. ඔයාගේ ගෙදර තියෙන බ්‍රෙන්ඩරය (Blender) ගැන හිතන්න. 🥤

  • ඔයා ඒකට පලතුරු දානවා (Input/Arguments).
  • ඒක ඇතුලේ තල කැරකිලා පොඩි වෙනවා (Process).
  • අන්තිමට ඔයාට ජූස් එකක් එළියට දෙනවා (Output/Return).

Python වලත් අපිට පුළුවන් මේ වගේ මැෂින් හදන්න. අපි ඒකට කියන්නේ Functions කියලා. Python වල මැෂින් එකක් හදන්න පාවිච්චි කරන වචනේ තමයි def (Define).

Function එකක කොටස් 3යි:

1. def name(): (මැෂින් එකේ නම)
2. Parameters: (ඇතුලට දාන අමුද්‍රව්‍ය)
3. return: (එළියට දෙන දේ / ජූස් එක)

උදාහරණය 01: Happy Birthday මැෂින් එක 🎂

අපි බලමු නම දුන්නම Happy Birthday කියන පොඩි මැෂින් එකක් හදන්න.

def say_happy_birthday(name):
    # මේක තමයි මැෂින් එක ඇතුලේ වෙන දේ
    print(f"Happy Birthday {name}! 🎂🎈")
    print("සුභ උපන්දිනයක් වේවා!")

# දැන් මැෂින් එක හැදුවා. ඒක පාවිච්චි කරමු (Call the function)
say_happy_birthday("KP")
say_happy_birthday("Machan")

දැක්කද? අපිට ආයේ ආයේ print කෑලි ලියන්න ඕන වුනේ නෑ. නම දුන්නා, මැෂින් එක වැඩ කළා. ✅

⚠️ ලොකුම රහස: හිස් ඉඩ (Indentation) 📏

Python වල වරහන් { } නෑ.Java වල වගේ, ඒ වෙනුවට පාවිච්චි කරන්නේ හිස් ඉඩ (Tab Space).
ඔයා Function එකක් ලියනකොට හෝ try: ලියනකොට, ඊළඟ පේළිය අනිවාර්යයෙන්ම පොඩ්ඩක් ඉස්සරහින් (Tab Key එක ඔබලා) පටන් ගන්න ඕනේ.
කෙලින් පේළියට ලිව්වොත් Python තරහ වෙනවා! (Indentation Error).

2. ලොකුම පැටලිල්ල: Scope (ගෙදර දේ vs එළියේ දේ) 🏠

මේක අලුත් අයට නිතරම වරදින තැනක්. හොඳට අහගන්න.

Function එකක් ඇතුලේ හදන Variable එකක්, ඒ Function එකෙන් එළියේදී පාවිච්චි කරන්න බෑ. ඒක "Private" දෙයක් වගේ.

def my_secret():
    secret_code = 1234 # මේක හැදුවේ Function එක ඇතුලේ
    print(secret_code) # මේක වැඩ කරනවා ✅

my_secret()

# හැබැයි මේක වැඩ කරන්නේ නෑ ❌
# print(secret_code) -> Error එනවා! මොකද secret_code තියෙන්නේ ඇතුලේ විතරයි.

3. මොකක්ද මේ "return" කියන්නේ? 🔄

ගොඩක් අයට පැටලෙන තැනක් මේක. print සහ return අතර වෙනස මොකක්ද?

  • Print: මේක හරියට බ්‍රෙන්ඩරේ ඇතුලේ ජූස් එක හදලා, ඒක වීදුරුවෙන් එළියට පේන්න තියනවා වගේ. අපිට ඒක බොන්න (Use කරන්න) බෑ. බලන්න විතරයි පුළුවන්.
  • Return: මේකෙන් ජූස් එක වීදුරුවකට දාලා ඔයාගේ අතට දෙනවා. ඔයාට පුළුවන් ඒක බොන්න, ෆ්‍රිජ් එකේ දාන්න, හෝ වෙන කෙනෙක්ට දෙන්න.
# Return කරන මැෂින් එකක් (ගණන් හදන මැෂින් එකක්)
def add_numbers(a, b):
    answer = a + b
    return answer # උත්තරේ එළියට විසි කරනවා

# දැන් අපිට ඒ එන උත්තරේ වෙන Variable එකකට දාගන්න පුළුවන්
my_total = add_numbers(10, 20)
print(f"Total එක තමයි: {my_total}")

4. වැරදීම් වලට විසඳුම: Error Handling (Try / Except) 🛡️

ඊළඟට අපි හදන YouTube Tool එකේදි මේක නැතුවම බෑ. හිතන්න වීඩියෝ එක Download වෙද්දි ඉන්ටර්නෙට් කැඩුනොත්? සොෆ්ට්වෙයාර් එක Crash වෙන්න (නවතින්න) පුළුවන්.

අන්න ඒක නවත්තන්න තමයි අපි Helmet එකක් දාන්නේ. ඒකට කියන්නේ try...except කියලා.

කොහොමද ලියන්නේ?
  • try: (මේක කරලා බලන්න... වැරදුනේ නැත්නම් ගොඩ).
  • except: (අයියෝ කෙල වුනාද? එහෙනම් ක්‍රෑෂ් නොවී මෙන්න මේක කරන්න).
try:
    number = int(input("ඉලක්කමක් දෙන්න: "))
    print(f"ඔයා දුන්න ඉලක්කම: {number}")

# වැරැද්ද මොකක්ද කියලත් බලාගන්න ඕන නම් මෙහෙම දාන්න (Pro Tip)
except Exception as e:
    print("⚠️ යාළුවේ, පොඩි අවුලක් ගියා!")
    print(f"Error එක තමයි: {e}") # මෙතනින් පෙන්නනවා ඇත්තටම වුනේ මොකක්ද කියලා

4. වැරදීම් වලට විසඳුම: Error Handling (Try / Except) 🛡️

ඊළඟට අපි හදන YouTube Tool එකේදි මේක නැතුවම බෑ. හිතන්න වීඩියෝ එක Download වෙද්දි හදිස්සියේම Internet කැඩුනොත්? නැත්නම් Storage Full වුනොත්? එතකොට Python වලට පිස්සු හැදිලා මුළු Program එකම Crash වෙනවා (ඒ කියන්නේ සොෆ්ට්වෙයාර් එක ඉබේම වැහෙනවා).

අන්න ඒක නවත්තන්න තමයි අපි කෝඩ් එකට Helmet එකක් දාන්නේ. ඒකට කියන්නේ try...except කියලා.

කොහොමද මේක වැඩ කරන්නේ?

  • try: (පරිගණකයට කියනවා: "මචං, නිකමට මේක Try කරලා බලන්න, හැබැයි ෂුවර් නෑ" කියලා).
  • except: (කියනවා: "අයියෝ වැඩේ කෙල වුනාද? අවුලක් නෑ ක්‍රෑෂ් නොවී මෙන්න මේක කරන්න" කියලා).

PRO Level: මොකක්ද මේ `Exception as e` කියන්නේ? 🧐

ගොඩක් අය නිකන්ම except: කියලා දානවා. එතකොට Error එකක් ආවම "Something went wrong" කියලා විතරයි වැටෙන්නේ. හැබැයි මොකක්ද වුනේ කියලා අපි දන්නේ නෑනේ.

අන්න ඒකට තමයි අපි Error එකේ නම එළියට අදින්නේ. මේ කෝඩ් කෑල්ල හොඳට බලන්න:

except Exception as e:

මේකේ තේරුම මෙහෙමයි:

  • Exception: මේක තමයි Python වල තියෙන හැම ලෙඩක්ම (Errors) අයිති වෙන ලොකු පෙට්ටිය.
  • as: මේකෙන් කියන්නේ "ලෙස" (Alias) කියන එකයි.
  • e: මේක නිකන්ම Variable එකක් (නමක්). Error එකට අපි දාන "පොඩි නම" (Nickname) තමයි මේ. (ඔයාට කැමති නම් as error කියලා දාන්නත් පුළුවන්).

සරලවම කිව්වොත්: "මචං Python, මොකක් හරි Error එකක් (Exception) ආවොත්, ඒක අල්ලගෙන 'e' කියන නම (as e) දීලා මට පෙන්නන්න." කියන එකයි.

උදාහරණය (Practical Example) 🧪

අපි හිතාමතාම වරදක් කරමු. අපි ඉලක්කමක් 0න් බෙදන්න හදමු (ගණිතයේ හැටියට ඒක කරන්න බෑනේ). බලන්න Python අපිට බනින විදිය.

try:
    number = int(input("ඉලක්කමක් දෙන්න: "))
    result = 10 / number # අපි 10 බෙදනවා ඔයා දුන්න අංකයෙන්
    print(f"උත්තරේ තමයි: {result}")

except Exception as e:
    # මෙතනදි අර Error එක 'e' ඇතුලට යනවා.
    print("⚠️ යාළුවේ, පොඩි අවුලක් ගියා!")
    print(f"Computer එක කියන හේතුව: {e}") 

ඔයා 0 ගැහුවොත් Output එක:
⚠️ යාළුවේ, පොඩි අවුලක් ගියා!
Computer එක කියන හේතුව: division by zero

දැන් දැක්කද? සොෆ්ට්වෙයාර් එක වැහුනේ නෑ. ඒ වගේම අපිට හේතුවත් (division by zero) බලාගන්න පුළුවන් වුනා. අන්න ඒකයි වැඩ්ඩො හැමතිස්සෙම Exception as e පාවිච්චි කරන්නේ! 😎

දැන් අපි ලෑස්තියි! 🚀

දැන් ඔයා දන්නවා:

  • ✅ F-Strings දාලා ලස්සනට Print කරන්න.
  • ✅ මැෂින් (Functions) හදලා වැඩ ලේසි කරගන්න.
  • ✅ Return කරලා Data එළියට ගන්න.
  • ✅ Error ආවම Crash නොවී බේරෙන්න (Try/Except).

මේ දැනුම තමයි අපිට ඊළඟ Project එකට ඕන වෙන්නේ. ඒ නිසා මේ කෝඩ් කෑලි ටික ටයිප් කරලා අත හුරු කරගන්න.

🔥 Next Episode: The Big Project!

ඊළඟ දවසේ අපි මේ ඔක්කොම පාවිච්චි කරලා, YouTube Video Download කරන Tool එක හදමු! (Link එක දුන්නම Video එක Gallery එකට එන විදියට).

ලෑස්ති වෙලා ඉන්න! ගැම්මක් තමයි!

ප්‍රශ්න තියෙනවා නම් පහළින් Comment කරන්න. 👇
© KP Tech Gear

Author

About

Tech enthusiast, Python/Java Developer, and Gamer. Sharing knowledge about coding and modern technology.

Discussion

Kaweesha AI ×
Hello Kaweesha! I am ready to help with Python, Java, or Hosting queries. 🤖