Wednesday, August 8, 2012

Python පයිතන්



අද පටන් මම මෙම පාඩම් මාලාව Ubuntu මෙහෙයුම් පද්ධතිය පදනම් කරගෙන ඉදිරිපත් කිරීමට බලාපොරොත්තු වෙනවා. නමුත් windows භාවිතා කරන ඔබ හටත් එම කරුණුම වැඩි වෙනසක් නැතිව භාවිතා කල හැකි බවත් කිව යුතුයි. 
ඕනෑම වැඩසටහන් කරුවෙකුගේ මුල්ම වැඩසටහන වනුයේ සරල Hello world වැඩසටහනක්. එබැවින් මමත් ඔබහට මුලින්ම එවැනි වැඩසටහනක් ලියා run කරන්නේ කොහොමද කියා පැහැදිලි කරන්නම්.
Script Mode Programming:
මෙහිදී python interpreter වෙත ඔබ script parameter එකක් ලබා දුන් විට, එම script එකෙහි ආරම්භයේ සිට අවසානය දක්වා interpreter එක සම්බන්ධ වන අතර, script එකෙහි අවසානයත් සමග interpreter හි සක්‍රිය බවත් නැතිව යයි. මෙහෙම කීවට තේරුනේ නැති උනත් අද පාඩම අවසානයේ මෙහි අරුත ඔබටම වටහාගත හැකි වේවි.
සියල්ලටම කලින් අපි සරල වැඩසටහනක්, එහෙමත් නැත්නම් සරල script එකක් ලියන විදිය බලමු. ප්‍රථමයෙන් gedit හෝ එවැනි සරල text editor එකක් ගෙන පහත දැක්වෙන line කීපය ලියා, එය .py යන extension එක සහිතව save කර ගන්න.
hello_python
මෙහිදී මම ඔබේ python interpreter එක /user/bin කියන folder එක තුල තිබෙන බව අනුමාන කලා. දැන් save කරගත් .py file එක run කිරීමට පහත command එක enter කරන්න. නමුත් ඒ සියල්ලටම කලින් ඔබ එම file එක ඇති folder එක තුලට terminal එක හෝ command prompt එක හරහා ගොස් තිබිය යුතුයි. මම මෙම script එක test.py යන නමින් save කරගෙන තියෙනවා.
run_hello
එවිට ඔබට පහත ආකාරයේ output එකක දැක ගත හැකි වේවි.
output
මෙහි chmod යනුවෙන් ඇති command එක python command එකක් නොවන බව Linux භාවිතා කර පලපුරුදු ඔබ හටනම් පැහැදිලි කිරීමට අවශ්‍ය නැත. නමුත් Linux භාවිතා නොකරන හෝ ඊට ආධුනික ඔබ ඒ පිළිබඳව ලතැවීමට අවශ්‍ය නැත. Windows භාවිත කරන ඔබ එම line එක හැර දෙවන line එක පමණක් enter කරන්න.
Interactive Mode Programming:
මෙහිදී parameter එකක් ලෙස script file එකක් ලබා නොදී python interpreter එක භාවිතා කිරීම සලකා බැලේ. මේ සදහා terminal එක හෝ command prompt එකමත python යනුවෙන් type කර enter කරන්න. එවිට පහත ආකාරයේ වාක්‍ය කිපය සමග >>> යන symbol එක ලැබී තිබෙනු දක්නට ලැබෙනු ඇත.
python
දැන් print "Hello Python!" යනුවෙන් type කර enter කරන්න. එවිට පෙර මෙන්ම පහත ආකාරයේ result එකක් ලැබෙනු ඇත.
hello
මෙහිදී ඔබ python හි වඩා නව version එකක් භාවිතා කරනවා නම්, print යන statement එක සමග වරහන් ද භාවිතා කිරීමට සිදු වනු ඇත. එනම් මෙහිදී print ("Hello Python") ලෙස වෙනස් විය යුතුය.
දැන් ඔබට script mode එක මෙන්ම interactive mode එක භාවිතා කරන අකාරය පිළිබඳව සරල අවබෝධයක් ලැබෙන්නට ඇතැයි සිතමි. නමුත් ඉදිරියේදී වඩ වඩාත් සංකීර්ණ වැඩසටහන් ලියනනට ඔබට සිදුවන බවත් OOP concepts භාවිතා කිරිමට සිදුවන බවත් සිහියේ තබා ගන්න. දැන් අපි ඉදිරි පාඩම් මාලාවන් සදහා වැදගත් වන python හි තිබෙනා මූලික syntax කිපයක් වෙත අවධානය යොමු කරමු.
Python Identifiers:
Python හි variable, function, class, module හෝ වෙනත් objects හැදින්වීම සදහා භාවිතා කරන නමට පොදුවේ identifiers යනුවෙන් කියනු ලබයි. ඔබේ මනාපය පරිදි කැමති නමක් ‍තෝරා ගැනීමට හැකියව ඇතත්, ඒ සදහා ඔබ සරල නීති රීති කීපයකට එකග විය යුතුය.
මෙවැනි නමක් ඉංග්‍රිසි හෝඩියේ ඇති ඕනෑම අකුරකින් පටන් ගත හැකි අතර ඉලක්කමක් භවිතා කල හැක්කේ identifier ඒකක පලමු අකුරට පසුව පමණි.
නමුත් @, $ සහ % වැනි අකුරු python හි identifier එකක් සදහා භාවිතා කල නොහැකි බවත් සිහියේ තබා ගත යුතුය. Python යනු case sensitive programming language එකක් බැවින් Sadun යන නමත් sadun යන නමත් saDun යන නමත් එකිනෙකට වෙනස්ව python විසින් හදුනා ගනී. ඒ වගේම python හි ඊටම වෙන්වුනු වචන කීපයක් ඇති අතර, එවැනි වචනයක් python හි identifier එකක් ලෙස භාවිතා කල නොහැකි බවත් මතක තබා ගත යුතුය. මෙවැනි පද key words හෝ reserved word ලෙස හදුන්වනු ලබන අතර ඒ පිළිබඳව ඊලඟට සලකා බලමු. ඊට පෙර python identifier සදහා සම්මුතියක් ලෙස භාවිතා වන රීති කීපයක් හදුනා ගනිමු.
  • Identifier එකක් ඉංග්‍රිසි capital අකුරකින් අරම්භ කර අනෙකුත් අකුරු simple අකුරු ලෙස තැබිය යුතුය.
  • Private identifiers සදහා underscore එකකින් ආරම්භය ගත යුතුය.
  • Strongly private identifiers සදහා underscore දෙකකින් ආරම්භය ගත යුතුය.
එමෙන්ම identifier එකක මුලට මෙන්ම අවසානයටද underscore දෙකක් යොදනවා නම් එහි තේරුම වනුයේ එම identifier එක විශේෂ identifier එකක් බවයි. ඉස්සරහදී කරන උදාහරණ වලදී මේ පිළිබඳව වඩා හොදින් අවබෝධ වනු ඇත.
Reserved Words:
පහත දැක්වෙනුයේ python හි ඇති ඊටම වෙන්වුනු වචන කීපයකි. මේවා key word, එහෙමත් නැත්නම් reserved word, ලෙස හදුන්වනු ලබයි. මෙවැනි key words වල අන්තර්ගත වනුයේ ඉංග්‍රිසි හෝඩියේ simple අකුරු පමණි.
keywords
Comments in Python:
Python හි comments භාවිතා කිරීම සදහා # ලකුණ යොදාගනු ලබයි. මෙහිදී # ලකුණ යෙදීමෙන් පසුව නැවත new line එකක් එනතුරු පවතින සියලු දෑ python interpreter විසින් නොසලකා හරිනු ලබයි. එය වඩා ඔබේ හිතට කාවැදීම සදහා පහත උදාහරණය ඔබ විසින්ම සිදුකර ලැබෙන output එක පරික්ෂා කර බලන්න.
comments
Lines and Indentation:
මෙතන නම් ටිකක් හොදින් තේරුම් ගත යුතු තැනක්. මෙතෙක් අපි කථා කළ දේ වලට වඩා ටිකක් වෙනස් හා අමාරු වෙතැයි කියා සිතෙන තැනක්. එබැවින් අපි එම කොටස සවිස්තරව ඉගනගනිමු.
Python ඉගෙනගැනීමෙදී ඔබට හමුවෙන විශේෂම තැනකි මේ. එනම් python හි සඟල වරහන භාවිතා නොකිරීමයි. ඔබ මීට පෙර C, C++ හෝ java වැනි වෙනත් programming language එකක් භාවිතා කර ඇත්නම්, සඟල වරහනක් නොමතිව class, function, flow of control වැනි දේ වෙන් කරනුයේ කොහොමදැයි කියා සිතනු ඇත. නමුත් python හි ඊට වඩා සිත් ඇද ගන්නා සුළු ක්‍රමයක් හඳුන්වා දී ඇත. මෙහිදී space තැබීමේ ක්‍රමයක් මගින් පෙර සදහන් කල ආකාරයේ block වෙන් කරනු ලබයි. පෙර මෙන් අපි මෙහිදීද, උදාහරණයක් මගින් මෙම කරුණු වඩාත් හොදින් තේරුම් ගැනීමට බලමු.
indent
මෙහි පලමු print, statement දෙක if block එකට අයිති වන අතර තෙවන statement එක else block එකට අයිති වේ. මෙහිදි එකම block එකට අයිති දේ මුල සිට එකම space ගණනකින් පවතින බව ඔබට පෙනෙනු ඇත. නමුත් මෙහි print "False" යන statement එක එලෙස සමාන space ගණනකින් සමන්විත නැත. එබැවින් එය කිසිම block එකක නොපවතින බවත් ඔබට වැටහෙනු ඇත. මෙය run කිරීමට යාමේදී එම ස්ථානයේ error එකක් ඇති බව පෙන්වමින් පණිවිඩයක් ලැබෙනු ඇත. මෙහි if හා else පද පිළිබඳව පසුව විස්තර කරන බැවින් එම පද දෙක පිළිබඳව දැන්මම කරදර නොවන්න. තව තවත් ඉදිරියට යන විට මේ පිළිබඳව හොඳින් අවබෝධ කරගත හැකි වනු ඇත.
Quotation in Python:
පටන් ගත් වර්ගයෙන්ම අවසන් කරනවානම් ඔබට ඕනෑම වර්ගයක කොමාවන් (quotes) භාවිතා කල හැක. එනම් single ('), double (") සහ triple (''' හෝ """) quotes ඔබ හට අවශ්‍ය ස්ථාන වලදී භාවිතා කල හැක. නමුත් විශේෂ කරුණක් ලෙස ඔබ line කීපයක් පුරාවට වාක්‍ය කීපයක් ලිවීමේදී triple quotes භාවිතා කල හැකි බව සදහන් කල යුතුය. පහත උදාහරණයෙන් ඒ පිළිබඳව තවත් හොදින් අවබෝධ කර ගත හැක.
quotes
Using Blank Lines:
White space එනම් හිස් ඉඩ පමණක් ඇති line මෙන්ම comments කර ඇති line, Python Interpreter එක මගින් blank line ලෙස හදුනා ගනී. එමෙන්ම ඔබ interactive mode එකෙහි වැඩ කරන්නා විට, එහි multiline statement එකක් වෙන් කිරීම සදහා මෙවැනි blank line එකක් තැබිය යුතුය.