මූලික සංකල්ප (Basic Concepts)

පාඩම 1.3: ක්‍රියාකරුවන් (Operators)

ක්‍රියාකරුවන් කියන්නේ විචල්‍යයන් සහ අගයන් මත විවිධ මෙහෙයුම් (operations) සිදු කිරීමට යොදාගන්නා විශේෂ සංකේත. සරලවම කිව්වොත්, ගණන් හදන, සංසන්දනය කරන සහ තර්ක ගොඩනගන විදිහ තමයි මේ.

අපි ප්‍රධාන ක්‍රියාකරු වර්ග තුනක් ගැන බලමු.

1. ගණිතමය ක්‍රියාකරුවන් (Arithmetic Operators) ➕➖

මේවා සාමාන්‍ය ගණිත කර්ම සඳහා යොදාගන්නවා. අපි a = 10 සහ b = 3 ලෙස ගනිමු.

  • + (එකතු කිරීම): a + b ප්‍රතිඵලය 13
  • - (අඩු කිරීම): a - b ප්‍රතිඵලය 7
  • * (ගුණ කිරීම): a * b ප්‍රතිඵලය 30
  • / (බෙදීම): a / b ප්‍රතිඵලය 3.333... (සැමවිටම දශම සංඛ්‍යාවක් ලබා දේ)
  • // (පූර්ණ සංඛ්‍යා බෙදීම): a // b ප්‍රතිඵලය 3 (බෙදීමෙන් ලැබෙන පූර්ණ සංඛ්‍යාව පමණක් ලබා දේ)
  • % (ශේෂය / Modulus): a % b ප්‍රතිඵලය 1 (බෙදූ විට ලැබෙන ඉතිරිය)
  • ** (බලය / Exponent): a ** b ප්‍රතිඵලය 1000 (10 හි 3 වන බලය)
a = 10
b = 3
print("a + b =", a + b)
print("a * b =", a * b)
print("a / b =", a / b)
print("a // b =", a // b)
print("a % b =", a % b)
print("a ** b =", a ** b)

2. සංසන්දනාත්මක ක්‍රියාකරුවන් (Comparison Operators) ⚖️

අගයන් දෙකක් සංසන්දනය කර, එහි ප්‍රතිඵලය True හෝ False ලෙස ලබා දීමට මේවා භාවිතා කරනවා. අපි x = 15 සහ y = 20 ලෙස ගනිමු.

  • == (සමානද?): x == y ප්‍රතිඵලය False. (වැදගත්: == යනු සංසන්දනයයි, = යනු පැවරීමයි).
  • != (අසමානද?): x != y ප්‍රතිඵලය True.
  • > (වඩා වැඩිද?): y > x ප්‍රතිඵලය True.
  • < (වඩා අඩුද?): x < y ප්‍රතිඵලය True.
  • >= (වැඩි හෝ සමානද?): x >= 15 ප්‍රතිඵලය True.
  • <= (අඩු හෝ සමානද?): y <= 15 ප්‍රතිඵලය False.
x = 15
y = 20
print("x == y is", x == y)
print("x != y is", x != y)
print("y > x is", y > x)

3. තාර්කික ක්‍රියාකරුවන් (Logical Operators) 🤔

බූලියන් අගයන් (True, False) එකිනෙක සම්බන්ධ කිරීමට හෝ ඒවායේ තත්ත්වය වෙනස් කිරීමට මේවා යොදාගන්නවා.

  • and: කොන්දේසි දෙකම True නම් පමණක්, ප්‍රතිඵලය True වේ.
  • or: කොන්දේසි වලින් එකක් හෝ True නම්, ප්‍රතිඵලය True වේ.
  • not: ප්‍රතිඵලය අනෙක් පැත්ත හරවයි (True නම් False කරයි, False නම් True කරයි).
age = 25
has_ticket = True

# and උදාහරණය
print("Can watch movie?", age > 18 and has_ticket) # ප්‍රතිඵලය: True

# or උදාහරණය
is_rainy = False
is_sunny = True
print("Good weather?", is_rainy or is_sunny) # ප්‍රතිඵලය: True

# not උදාහරණය
print("Is it NOT rainy?", not is_rainy) # ප්‍රතිඵලය: True

තවත් ප්‍රායෝගික උදාහරණ (More Practical Examples)

1. භාණ්ඩයක සම්පූර්ණ මිල ගණනය කිරීම
pen_price = 15
book_count = 3
book_price = 120
total_cost = pen_price + (book_count * book_price)
print(f"සම්පූර්ණ මිල: රු.{total_cost}")
සම්පූර්ණ මිල: රු.375
2. සංඛ්‍යාවක් ඔත්තේ ද ඉරට්ටේ ද කියා සෙවීම

ඕනෑම සංඛ්‍යාවක් 2න් බෙදූ විට ශේෂය 0 නම්, එය ඉරට්ටේ සංඛ්‍යාවකි.

number = 24
is_even = (number % 2 == 0)
print(f"{number} ඉරට්ටේ සංඛ්‍යාවක්ද? {is_even}")
24 ඉරට්ටේ සංඛ්‍යාවක්ද? True
3. ශිෂ්‍යයෙක් විභාගය සමත් ද?
marks = 65
pass_mark = 50
is_passed = marks >= pass_mark
print(f"ශිෂ්‍යයා සමත්ද? {is_passed}")
ශිෂ්‍යයා සමත්ද? True
4. විනාඩි, පැය සහ විනාඩි වලට පරිවර්තනය කිරීම
total_minutes = 140
hours = total_minutes // 60
minutes = total_minutes % 60
print(f"{total_minutes} යනු පැය {hours} සහ විනාඩි {minutes} කි.")
140 යනු පැය 2 සහ විනාඩි 20 කි.
5. වට්ටමක් සඳහා සුදුසුකම් පරීක්ෂා කිරීම

වයස 65ට වැඩි නම් හෝ ශිෂ්‍යයෙක් නම් වට්ටමක් ලැබේ.

age = 20
is_student = True
is_eligible_for_discount = age > 65 or is_student
print(f"වට්ටමක් සඳහා සුදුසුද? {is_eligible_for_discount}")
වට්ටමක් සඳහා සුදුසුද? True
6. නිදහස් ප්‍රවේශය සඳහා සුදුසුකම්

වයස 10ට අඩු නම් සහ දෙමාපියන් සමඟ පැමිණේ නම් ප්‍රවේශය නොමිලේ.

child_age = 8
with_parent = True
free_entry = child_age < 10 and with_parent
print(f"නොමිලේ ඇතුල් විය හැකිද? {free_entry}")
නොමිලේ ඇතුල් විය හැකිද? True
7. පරිශීලක නාමය සමානදැයි පරීක්ෂා කිරීම
saved_username = "user123"
entered_username = "User123"
is_match = (saved_username == entered_username)
print(f"පරිශීලක නාම ගැලපේද? {is_match}")
පරිශීලක නාම ගැලපේද? False
8. දොරක් අගුළු දමා නැතිදැයි පරීක්ෂා කිරීම
is_locked = False
can_open = not is_locked
print(f"දොර විවෘත කළ හැකිද? {can_open}")
දොර විවෘත කළ හැකිද? True
9. අගයක් පරාසයක තිබේදැයි සෙවීම

ලකුණු 80ත් 100ත් අතර නම් A සාමාර්ථයකි.

score = 92
is_A_grade = score >= 80 and score <= 100
print(f"A සාමාර්ථයක්ද? {is_A_grade}")
A සාමාර්ථයක්ද? True
10. ක්‍රියාකරුවන්ගේ ප්‍රමුඛතාවය (Operator Precedence)

Python වලදී ගුණ කිරීම සහ බෙදීම, එකතු කිරීමට සහ අඩු කිරීමට පෙර සිදු වේ.

result = 5 + 2 * 3
print("5 + 2 * 3 =", result) # 2*3=6, 6+5=11

result_with_brackets = (5 + 2) * 3
print("(5 + 2) * 3 =", result_with_brackets) # 5+2=7, 7*3=21
5 + 2 * 3 = 11
(5 + 2) * 3 = 21