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

පාඩම 1.2: විචල්‍ය සහ දත්ත වර්ග (Variables and Data Types)

විචල්‍ය යනු කුමක්ද? (What is a Variable?)

විචල්‍යයක් (variable) කියන්නේ දත්ත ගබඩා කර තබාගන්නා බහාලුමක් (container) වගේ දෙයක්. අපිට අවශ්‍ය තොරතුරු මේ බහාලුම්වලට දාලා, ඒවට නමක් දීලා, පසුව ඒ නම භාවිතා කරලා ඒ තොරතුරු ආපහු ගන්න පුළුවන්.

Python වල විචල්‍යයක් හදන්නේ මෙහෙමයි:

variable_name = value
  • variable_name (විචල්‍යයේ නම): ඔබ දෙන ඕනෑම නමක් (උදා: name, age).
  • = (සමාන ලකුණ): මෙය පැවරුම් ක්‍රියාකරුව (assignment operator) ලෙස හඳුන්වනවා. දකුණු පැත්තේ තියෙන අගය වම් පැත්තේ තියෙන විචල්‍යයට "පවරනවා" කියන එකයි దీని තේරුම.
  • value (අගය): ඔබ ගබඩා කිරීමට බලාපොරොත්තු වන තොරතුර.

උදාහරණ:

name = "නිමල්"  # name කියන විචල්‍යයට "නිමල්" කියන අගය පැවරීම
age = 25      # age කියන විචල්‍යයට 25 කියන අගය පැවරීම

# දැන් අපිට මේ විචල්‍යයන්ගේ අගයන් print කරලා බලන්න පුළුවන්
print(name)
print(age)

ප්‍රතිඵලය (Output):

නිමල්
25

විචල්‍යයක අගය ඕනෑම වෙලාවක වෙනස් කරන්න පුළුවන්. ඒ නිසයි ඒවට "විචල්‍ය" (වෙනස් වන) කියන්නේ.

x = 100
print(x)    # ප්‍රතිඵලය: 100
x = 200     # x හි අගය දැන් වෙනස් කළා
print(x)    # ප්‍රතිඵලය: 200

මූලික දත්ත වර්ග (Basic Data Types)

Python වලදී විවිධ වර්ගයේ දත්ත ගබඩා කරන්න පුළුවන්. අපි දැනට මූලිකම වර්ග 4 ගැන ඉගෙන ගනිමු.

String (str) - ස්ට්‍රින්ග්

  • මෙය අක්ෂර හෝ පෙළ (text) නියෝජනය කරයි.
  • සෑම විටම තනි උද්ධෘත (' ') හෝ ද්විත්ව උද්ධෘත (" ") තුළ ලිවිය යුතුය.
  • උදා: greeting = "ආයුබෝවන්", city = 'කොළඹ'

Integer (int) - පූර්ණ සංඛ්‍යා

  • මෙය දශමස්ථාන නැති முழு எண்களைக் குறிக்கிறது (whole numbers).
  • ධන හෝ ඍණ විය හැකියි.
  • උදා: my_age = 30, year = 2025, items_count = -5

Float (float) - දශම සංඛ්‍යා

  • මෙය දශමස්ථාන ඇති සංඛ්‍යා නියෝජනය කරයි.
  • උදා: price = 499.99, height = 175.5, pi_value = 3.14

Boolean (bool) - බූලියන්

  • මෙයට තිබිය හැක්කේ අගයන් දෙකක් පමණි: True (සත්‍ය) හෝ False (අසත්‍ය).
  • වැඩසටහන් වලදී තීරණ ගැනීම සඳහා (decision making) මෙය ඉතා වැදගත් වේ.
  • සැලකිය යුතුයි: T සහ F අකුරු කැපිටල් විය යුතුය.
  • උදා: is_logged_in = True, is_adult = False

විචල්‍යයක වර්ගය පරීක්ෂා කිරීම

යම් විචල්‍යයක දත්ත වර්ගය කුමක්දැයි දැන ගැනීමට ඔබට type() ශ්‍රිතය භාවිතා කළ හැකියි.

name = "කමල්"
age = 42
salary = 75500.50
is_sinhalese = True

print(type(name))
print(type(age))
print(type(salary))
print(type(is_sinhalese))

ප්‍රතිඵලය (Output):

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

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

1. එකම පේළියේ විචල්‍ය කිහිපයක් සෑදීම
name, age, city = "අමායා", 28, "ගාල්ල"
print(name)
print(age)
print(city)
අමායා
28
ගාල්ල
2. විචල්‍යයක් ගණනය කිරීමකදී භාවිතා කිරීම
num1 = 50
num2 = 75
total = num1 + num2
print("එකතුව:", total)
එකතුව: 125
3. විචල්‍යයක දත්ත වර්ගය වෙනස් වීම (Dynamic Typing)

Python වලදී, විචල්‍යයක වර්ගය ස්ථිර නැත. එයට පවරන අගය අනුව එය වෙනස් වේ.

my_var = 100
print("අගය:", my_var, "- වර්ගය:", type(my_var))

my_var = "Hello World"
print("අගය:", my_var, "- වර්ගය:", type(my_var))
අගය: 100 - වර්ගය: <class 'int'>
අගය: Hello World - වර්ගය: <class 'str'>
4. ස්ට්‍රින්ග් ෆෝමැටින් (f-strings)

විචල්‍යයන්ගේ අගයන් පහසුවෙන් පෙළක් තුළට ඇතුළත් කිරීමට මෙය හොඳ ක්‍රමයකි.

item = "පොතක්"
price = 450.50
print(f"{item} එකක මිල රු.{price} කි.")
පොතක් එකක මිල රු.450.5 කි.
5. Boolean විචල්‍යයක් භාවිතා කිරීම
is_weekend = False
print("අද සති අන්තයක්ද?", is_weekend)
අද සති අන්තයක්ද? False
6. Integer සහ Float එකතු කිරීම

Integer එකකට Float එකක් එකතු කළ විට, ප්‍රතිඵලය සෑම විටම Float එකක් වේ.

int_num = 10
float_num = 5.5
result = int_num + float_num
print("ප්‍රතිඵලය:", result)
print("ප්‍රතිඵලයේ වර්ගය:", type(result))
ප්‍රතිඵලය: 15.5
ප්‍රතිඵලයේ වර්ගය: <class 'float'>
7. විචල්‍ය නාමකරණ නීති (Naming Rules)

විචල්‍ය නාම අකුරකින් හෝ යටින් ඉරකින් (_) ආරම්භ විය යුතුය. ඉලක්කමකින් ආරම්භ විය නොහැක. හිස්තැන් (spaces) හෝ විශේෂ අක්ෂර (+, -, @) අඩංගු විය නොහැක.

# නිවැරදි නාමකරණය
my_score = 95
_value = 10
score2 = 88

# වැරදි නාමකරණය (මේවා දෝෂ ඇති කරයි)
# 2score = 90
# my-score = 80
# my score = 70

print(my_score)
95
8. සම්පූර්ණ නමක් සෑදීම (String Concatenation)
first_name = "සමන්"
last_name = "කුමාර"
full_name = first_name + " " + last_name
print(full_name)
සමන් කුමාර
9. අගයක වර්ගය කෙලින්ම පරීක්ෂා කිරීම
print(type(500))
print(type("Hello"))
print(type(12.5))
print(type(True))
<class 'int'>
<class 'str'>
<class 'float'>
<class 'bool'>
10. විචල්‍ය නාම Case-Sensitive වීම

Python වලදී 'age' සහ 'Age' යනු විචල්‍ය දෙකකි.

age = 30
Age = 40
print("age =", age)
print("Age =", Age)
age = 30
Age = 40