පාඩම 2: Python හැඳින්වීම

AI ලෝකයේ භාෂාවේ මූලිකාංග සහ තවත් දේ.

AI සහ Machine Learning ව්‍යාපෘති සඳහා Python යනු ලොව ජනප්‍රියම භාෂාවයි. එයට හේතු වන්නේ එහි සරල බව, AI සඳහාම වෙන්වූ විශාල Libraries (NumPy, TensorFlow) එකතුව සහ විශාල ප්‍රජාවකගේ සහයෝගයයි.

ආරම්භ කරමු: Python කේත ලිවීමට, ඔබේ පරිගණකයේ කිසිවක් ස්ථාපනය කිරීමකින් තොරව Replit.com වැනි online compiler එකක් භාවිතා කරන්න.

Python හි ප්‍රධාන සංකල්ප (Core Concepts)

1. විචල්‍යයන් සහ දත්ත වර්ග (Variables & Data Types)

Variable එකක් යනු දත්ත ගබඩා කරන නමක් සහිත "පෙට්ටියකි". Python වල ප්‍රධාන දත්ත වර්ග කිහිපයක් ඇත.

  • String (`str`): අකුරු, වචන හෝ වාක්‍ය. (උදා: "නිමල්")
  • Integer (`int`): පූර්ණ සංඛ්‍යා. (උදා: 25)
  • Float (`float`): දශම සංඛ්‍යා. (උදා: 5.9)
  • Boolean (`bool`): සත්‍ය (`True`) හෝ අසත්‍ය (`False`) යන අගයන් දෙක පමණි.

දත්ත එකතු කිරීම් (Collections):

එකකට වඩා වැඩි දත්ත ප්‍රමාණයක් එකම විචල්‍යයක ගබඩා කිරීමට මේවා යොදාගනී.

List (ලැයිස්තුව) 📦

වෙනස් කළ හැකි දත්ත එකතුවකි. අලුතින් අයිතම එකතු කිරීමට (`append`) හෝ ඉවත් කිරීමට හැකිය.

students = ["කමල්", "විමලා", "සුනිල්"]
students.append("අමරා")
print(students[0])  # ප්‍රතිඵලය: කමල්
Tuple (ටපල්)

වෙනස් කළ නොහැකි දත්ත එකතුවකි. සෑදූ පසු එහි අගයන් වෙනස් කළ නොහැක. (ස්ථාවර දත්ත සඳහා සුදුසුයි).

# RGB වර්ණ කේතයක් වගේ
main_colors = (255, 165, 0)
print(main_colors[0]) # ප්‍රතිඵලය: 255

2. පාලන ව්‍යුහ (Control Flow)

වැඩසටහන ක්‍රියාත්මක වන ආකාරය පාලනය කිරීමට මේවා යොදාගනී.

තීරණ ගැනීම (`if/elif/else`)

කොන්දේසි මත පදනම්ව විවිධ කේත කොටස් ක්‍රියාත්මක කරයි.

marks = 78
if marks >= 75:
    grade = "A"
elif marks >= 65:
    grade = "B"
else:
    grade = "C"
print(grade) # ප්‍රතිඵලය: A
ලූප (Loops) 🔄

යම් කාර්යයක් නැවත නැවත කිරීමට යොදාගනී.

`for` loop: ලැයිස්තුවක ඇති සෑම අයිතමයක් සඳහාම ක්‍රියාත්මක වේ.

# students ලැයිස්තුවේ ඇති සියලු නම් print කිරීම
for student in students:
    print(student)

`while` loop: යම් කොන්දේසියක් සත්‍යව පවතින තාක් කල් ක්‍රියාත්මක වේ.

count = 1
while count <= 5:
    print(count)
    count = count + 1

3. දෝෂ කළමනාකරණය (`try/except`) 🛡️

වැඩසටහන ක්‍රියාත්මක වීමේදී ඇතිවිය හැකි දෝෂ (errors) නිසා එය බිඳවැටීමෙන් වලක්වා ගැනීමට `try/except` යොදාගනී. උදාහරණයක් ලෙස, පරිශීලකයා අංකයක් වෙනුවට අකුරු ඇතුලත් කිරීම.

try:
    user_input = input("අංකයක් ඇතුලත් කරන්න: ")
    number = int(user_input)
    print("ඔබ ඇතුලත් කළේ:", number)
except ValueError:
    print("දෝෂයකි! කරුණාකර අංකයක් පමණක් ඇතුලත් කරන්න.")

4. ශ්‍රිත (Functions) ⚙️

ශ්‍රිතයක් යනු, නිශ්චිත කාර්යයක් ඉටු කරන, නැවත නැවත භාවිතා කළ හැකි කේත කොටසකි. `def` යන මූල පදය භාවිතයෙන් ශ්‍රිත සාදනු ලැබේ.

# පුද්ගලයෙකුට සුබ පතන ශ්‍රිතයක්
def greet(name):
    print("ආයුබෝවන්, " + name + "!")

# ශ්‍රිතය call කිරීම
greet("සුමුදු")
greet("ප්‍රභාත්")

5. ක්ලාස් (Classes) 🏗️

ක්ලාස් එකක් යනු, යම් වස්තුවක (object) "සැලැස්ම" (blueprint) වේ. එයට අදාළ දත්ත (attributes) සහ ක්‍රියාකාරකම් (methods) එහි අඩංගු වේ. උදාහරණයක් ලෙස, `Student` ක්ලාස් එකකින් අපට විවිධ ශිෂ්‍ය වස්තූන් (student objects) සෑදිය හැක.

class Student:
    # සැලැස්මෙන් object එකක් හදන විට මුලින්ම ක්‍රියාත්මක වන method එක
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    # මෙම object එකට අදාළ ක්‍රියාවක් (method)
    def show_details(self):
        print(f"නම: {self.name}, වයස: {self.age}")

# Student සැලැස්මෙන් object දෙකක් සෑදීම
student1 = Student("දිනෙත්", 16)
student2 = Student("සචිනි", 17)

# ඒවයේ විස්තර පෙන්වීම
student1.show_details()
student2.show_details()

වැඩිදියුණු කළ වැඩසටහන

දැන් අපි ඉගෙනගත් සංකල්ප (loops, functions, try/except, lists) බොහොමයක් භාවිතා කර, ශිෂ්‍යයින්ගේ වයස ගණනය කර දත්ත ගබඩා කරන වැඩසටහනක් හදමු.

පහත කේතය online compiler එකක ක්‍රියාත්මක කර බලන්න. 'done' ලෙස type කරන තුරු ඔබට ශිෂ්‍ය දත්ත ඇතුලත් කළ හැක.
import datetime # වත්මන් වර්ෂය ලබාගැනීමට

def calculate_age(birth_year):
    """උපන් වර්ෂය ලබාගෙන වයස ගණනය කර ආපසු ලබාදෙන ශ්‍රිතයකි."""
    current_year = datetime.date.today().year
    return current_year - birth_year

# ශිෂ්‍ය දත්ත ගබඩා කිරීමට හිස් ලැයිස්තුවක්
student_list = []

print("--- ශිෂ්‍ය දත්ත ඇතුලත් කිරීමේ පද්ධතිය ---")
print("(නැවැත්වීමට නම සඳහා 'done' ලෙස type කරන්න)")

while True: # අනවරත ලූපයක්
    name = input("\nශිෂ්‍යයාගේ නම: ")
    if name.lower() == 'done':
        break # 'done' නම් ලූපයෙන් ඉවත් වන්න

    try:
        birth_year_str = input("උපන් වර්ෂය: ")
        birth_year = int(birth_year_str)

        age = calculate_age(birth_year)
        
        # ශිෂ්‍ය දත්ත tuple එකක් ලෙස ලැයිස්තුවට එකතු කිරීම
        student_data = (name, age)
        student_list.append(student_data)
        print(f"✅ {name} (වයස {age}) සාර්ථකව ඇතුලත් කරන ලදී.")

    except ValueError:
        print("❌ දෝෂයකි! කරුණාකර උපන් වර්ෂය සඳහා ඉලක්කම් පමණක් යොදන්න.")

# අවසානයේ, සියලුම ශිෂ්‍යයින්ගේ දත්ත පෙන්වීම
print("\n--- සියලුම ශිෂ්‍ය දත්ත ---")
for student in student_list:
    print(f"නම: {student[0]}, වයස: {student[1]}")

පාඩමේ අවසානය සහ ඉදිරි පියවර

විශිෂ්ටයි! ඔබ Python හි අත්තිවාරම සම්පූර්ණ කර ඇත!

දැන් ඔබට ශක්තිමත්, ක්‍රියාකාරී සහ දෝෂ-ප්‍රතිරෝධී Python වැඩසටහන් ලිවීමේ මූලික හැකියාව ඇත.

🚀 ඊළඟ පාඩම: සංඛ්‍යානය සහ සම්භාවිතාව

දැන් අපිට කේත ලියන්න පුළුවන් නිසා, AI පද්ධති දත්ත වලින් "ඉගෙනගන්නා" ආකාරය තේරුම් ගැනීමට අවශ්‍ය ගණිතමය සංකල්ප කිහිපයක් ගැන.Next

Python Sinhala Course