පයිතන්

**පයිතන්** යනු බහුලව භාවිතාවන උසස් මට්ටමේ ක්‍රමලේඛන භාෂාවකි. පොදු කාර්ය වැඩසටහන් සම්පාදනය සඳහා භාවිත කරන මෙම පයිතන් භාෂාව ගයිඩො වෙන් රොසම් (Guido van Rossum) විසින් නිර්මණය කර ඇති අතර, 1991 වර්ෂයේදී ලොවට හඳුන්වා දී ඇත.

එය නිර්මානය කර ඇත්තේ කේත කියවීමේ පහසුව අවධාරණය අ‍යුරිනි. පයිතන් සතුව ඇති අපුර්ව ගුණය වන්නේ එහි ඇති නිරවුල් කේත වින්‍යාසය සහ එහි සම්මත වැඩසටහන් ගොනුව ඉතා විශාල හා පරිපූර්ණ එකක් වීමයි. අනෙකුත් ප්‍රචලිත ක්‍රමලේඛන භාෂාවන් අතරින් මෙහි ඇති විශේෂත්වය නම් ක්‍රමලේඛනයේ භාවිතා වන පරිසීමක ඛණ්ඩක අතර හිස් ඉඩ තැබීම් වේ. පයිතන් බහු ක්‍රමලේඛන නාම මාලාවන්ට සහය වන අතර නමුත් එය සීමා නොවන්නේ වස්තු මූල,ප්‍රගම්‍ය හා ඉතා සුළු වශයෙන් කෘත්‍යයාත්මක ක්‍රමලේඛන රටාවන්ට පමණි.එය පූර්ණ ගතික පද්ධති වල ගුණ පෙන්වන අතර ස්වං මතක පාලනයද සිදුකරයි.එම ගුණය සමාන වන්නේ ස්කීම්,පර්ල්,රූබි හා tcl වැනි ගතික ක්‍රමලේඛන භාෂාවන්ටයි. පයිතන් නොයෙක් විට ස්ක්‍රිප්ටින් ලිවීමට භාවිත කලද එය බහුලව භාවිත වෙනත් කාර්යයන් සඳහාය.පයිතන් ක්‍රමලේඛන පරිගණක වල ධාවනය වන වැඩසටහන් තුලට අන්තර්ගත කල හැකිය.පයිතන් පරිවර්ථක බොහෝ [පරිගණක] පාලක පදධති වල අඩංගු වේ.

පයිතන් යනු නිදහස් හා විවෘත මෘදුකාංග ගනයට අයත් මෘදුකාංගයකි. එහි ඇත්තේ ප්‍රජාව මත පදනම්වූ සංවර්ධන ක්‍රමයකි. එහි සම්පූර්ණ හෝ විකල්ප සංස්කරණ සිදුකරයි. සීපයිතන් කළමණාකරන කරනුයේ ලාභ නොලබන ආයතනයක් වන පයිතන් මෘදුකාංග පදනම මගිනි.

## ඉතිහාසය
, පයිතන් නිර්මාතෘ]]

පයිතන් පිළිබඳ මුලින්ම අදහසක් ඇති වූයේ 1980 අග භාගයේය. එය ආරම්භ කරන ලද්දේ ගයිඩො වෙන් රොසම් (Guido van Rossum) විසින් නෙදර්ලන්තයේ Centrum Wiskunde & Informatica - (CWI)හිදී 1989 දෙසැම්බර් සිටය. ඔහු ABC ක්‍රමලේඛණ භාෂාවේ ප්‍රවිණයෙකි එමෙන්ම එක්ස්සෙප්ට්ශන් හැඩලින් හා ඇමොයිබා මෙහෙයුම් පද්ධතියේ (Amoeba operating system) මුහුනත නිර්මාණය  කිරීමේ ප්‍රවීණයෙකි.ඔහු පයිතන්හි මූලධර්ම රචකයාය. පයිතන් ප්‍රජාව විසින් ඔහුට පිරිණමා  ඇති ප්‍රමුඛ  ප්‍රධාන කාර්ය වන්නේ පයිතන්හි ඉදිරි ගමන තීරණය කිරීමයිල
පයිතන් 2.0 සංස්කරණය නිකුත්කලේ 2000 වසරේ ඔක්තෝබර් 16 වනදාය. එහි සයිකල් ඩිටෙක්ටින් ගාබේජ්කලෙක්ටර් (Cycle detecting garbage collector) හා යුනිකෝඩ් (Unicode) සඳහාද පහසුකම් ඇතුළු නව අංග රැසක් අන්තර්ගත කර තිබුණි. මෙම හඳුන්වාදීම් සමග සංවර්ධන ක්‍රියාවලිය වෙනස් වූ අතර එය වඩා විනිවිද හා ප්‍රජාව පිටුබලය ලබන්නක් විය.

පයිතන් 3.0 (පයිතන් 3000,py3k) සංස්කරණය නිකුත්කලේ විශාල කාලයක් තුල සිදුකල අත්හදා බැලීම් වලින් අනතුරුව 2008 දෙසැම්බර් 3වනදාය. එය නිකුත්කලේ පෙර සංස්කරණ වන 2.6 හා 2.7 සමඟද ක්‍රියාත්මකවන අයුරින්ය. එය TIOBE වසරේ ක්‍රමලේඛන භාෂාව ලෙස 2006 හා 2010 වර්ෂ වලදී දෙවරක් සම්මාන ලබාගත්තා. එය ලබාදීමට එම වසර වලදී හේතුවූයේ පයිතන්හි අසමසම ජනප්‍රියත්වයේ වර්ධනය නිසාය.එය නීර්ණය කලේ TIOBE දර්ශකය අනුවයි. 

### පයිතන් 2 හි අවසානය - (Python 2 end-of-life) 
පයිතන් 2.7 සංස්කරණයෙහි අවසාන දිනය ලෙස 2015 සකස් කර තිබුණද, පසුව එය 2020 දක්වා දීර්ඝ කෙරුනේ දැනට පවතින ප්‍රමාණාත්මකව විශාල කේතය පහසුවෙන් පයිතන් 3 බවට හැරවීමේ අපහසුව ඇති නිසාය. 
## ක්‍රමලේඛණ දර්ශණය
පයිතන් බහු පැරඩිගමි භාෂාවකි.එම නිසා ක්‍රමලේඛකයන්ට විශේෂ ක්‍රමලේඛණ ආරකට හුරු වීමට  සිදුවී තිබුණා.එය ඔබ්ජෙක්ට් ඔරියන්ටඩ් හා වි‍යුහාත්මක ක්‍රමලේඛණ වලට සහය දක්වනවා. තවද එය කෘත්‍යාත්මක හා ඇස්පෙක්ට් ඔරියන්ටඩ් ක්‍රම ගනනක භාෂා ලක්ෂණ ලබා දී තිබෙනවා. අනෙකුත් පැරඩිගම් සඳහා භාෂා දිගුවන් මඟින් පහසුකම් ලබා දි තිබෙනවා. ඒ pyDBC හා පයිතන් සඳහා වූ කන්ට්‍රාස්ට්ය.
පයිතන් නිර්මාණය කර ඇත්තේ විතන්‍ය භාෂාවක් ලෙසයි. අළුතින් සාදාඇති අංගයන් c හා c++ මඟින් ලියන්නට පුළුවන්. පයිතන් දැනට පවතින මොඩියුල් හා යෙදීම් වල දිගුවන් සඳහා ක්‍රමලේඛන භාෂාවක් ලෙස යොදා ගතහැකියි. මේ සඳහා ක්‍රමලේඛිත මුහුණතක් අවශ්‍යවෙනවා.ABC භාෂාවේ දුර්වලතා නිසා  මෙය නිර්මාණය කර ඇත්තේ වෙන් රොසම් විසිනි.

ශ්‍රිතීය ක්‍රමලේඛණය තුල වූ ළිස්ප් සම්ප්‍රදාය සඳහා පයිතන් සීමිත සහයක් පමණක් ලබා දෙයි. කෙසේ වෙතත් පයිතන් හි රටාව පෙන්නුම් කරන්නේ ළිස්ප් වර්ගයට අයත් අවම භාෂාවල වැදගත් සමානකම්ය.(scheme) 
## භාවිතය
පයිතන් ස්ක්‍රිප්ටින් භාෂාවක් ලෙස වෙබ් යෙදුම් සඳහා බොහෝවිට භාවිතා කරයි.
Django, Pylons, TurboGears, web2py, Flask සහ Zope වැනි වෙබ් යෙදුම් මුහුණත්හි සංකීර්ණ යෙදුම්වල නිර්මාණ හා නඩත්තු සඳහා රුකුල් දෙයිNumPy, SciPy,Matplotlib යන ලයිබ්(රී වල පයිතන් කාර්යශම පරිගණය සඳහා භාවිත වේ. මෘදුකාංග නිශ්පාදන ගණනාවක එනම්  පරිමිත අංග  ක්‍රමයේ මෘදුකාංග එනම් ඇබකස් සහ ත්‍රිමාණ සජීවීකරණ පැකේජ එනම් හොයුඩිනි,මායා,මෝෂන්බිල්ඩර්,සොෆ්ට් ඉමේජ්,සිනමා 4D,මෝඩා හා බ්ලෙන්ඩර් තවද 2D මූර්තන වැඩසටහන් එනම් GIMP,ඉන්ක්ස්පේස්,ක්‍ර‍යිබස් හා පේන්ට් ෂොප් ප්‍රො  වල පයිතන්   ස්ක්‍රිප්ටින් භාෂාව ලෙස සාර්ථකව භාවිතකරයි.ESRI දැන් පයිතන් ArcGIS වල පිටපත් ලිවීමට ඉතා සුදුසු බව ප්‍රකාශකර ඇත. එය පරිඝණක ක්‍රිඩා වලද භාවිතා කරතිබෙනවා.
පයිතන් සම්මත සංරචකයක් ලෙස බොහෝ පාලක පද්ධතිවල එනම් ලිනක්ස්,නිදහස්BSD,ජාලBSD,විවෘතඹ්Sඹ් හා මැක්OSX වල භාවිතා කරයි. ටර්මිනල හරහාද භාවිතා කරයි.
බොහෝ ලිනක්ස් බෙදා හැරීම් ප්යිතන් භාෂාවෙන් ලියවුනු ස්ථාපනය කිරීම් වලද භාවිතා කරයි.උබන්ටු යුබික්විලිටි ස්ථාපන,රෙඩ් හැට් හා ෆෙඩෝරා වල ඇනකොන්ඩා ස්ථාපන,ගැන්ටු ලිනක්ස් හි පැකේජ පාලක පලක පද්ධති,ගැන්ටු ලිනක්ස් හි පැකේජ පාලක පද්ධති වල    වලද භාවිතා කරයි.

## කාරක රීති සහ අර්ථවිචාර (Syntax and Semantics)
පයිතන් 2.x code.]]
පයිතන් නිමාණය කර ඇත්තේ කේත කියවීමේ පහසුව අවධාරණය වන අ‍යුරිනි. අනෙක් ක්‍රමලේඛ භාෂාවන්හි විරාම ලක්ෂණ භාවිත වන ස්ථානයන්ට පවා සරල ඉංග්‍රීසි පද භාවිත කරමින් පැහැදිලි දෘශ්‍ය පිරිසැලසුමක් (Visual layout) ලබාදෙන ලෙස පයිතන් නිමවා ඇත . එමෙන්ම මෙහි කාරක රීති එක්සෙප්ෂන්ස් ප්‍රමාණය හා විශේෂ තත්ව (special cases)ද පැස්කල් හා සී භාෂාවන්ට සාපේක්ෂව අඩුය.

## කේත අතර ඉඩ තැබීම.
මේ සඳහා පයිතන්හි විරාම ලකුණු/සුළු වරහන් වෙනුවට whitespace භාවිතා කරයි. නිශ්චිත ප්‍රකාශන ප්‍රමාණයකින් පසු ඉඩ තැබීම් (indentation) වැඩි කරයි. ඉඩ තැබීම් (indentation) අඩුවීමෙන් පෙන්වන්නේ දැන් පවතින කොටසෙහි (බ්ලොක් එකෙහි) අවසානයයි. මෙම ලක්ෂණය off-side rule ලෙසද හැඳින්වේ.

## විධි ක්‍රමය
යම් ඔබ්ජෙක්ට් එකක ඇති මෙතඩ්ස් එනම් විධි ක්‍රම අදාල ඔබ්ජෙක්ට් එකෙහි ඇති ක්ලාස් වලට අයත් ෆන්ෂන්ස්/කෘත්‍යයන් වේ. සාමන්‍ය විධි ක්‍රම හා කෘත්‍යයන් සඳහා සින්ටැක්ස් එක නම් instance.method(argument).සින්ටැක්ටික් ෂුගර් සඳහා  Class.method(instance, argument). පයිතන් මෙතඩ්ස්/විධි ක්‍රම වලට නිදර්ශක දත්ත පරිශීලනයට නිශ්චිත පරාමිතීන් ඇත. මෙම ලක්ෂණය ජාවා, C++ ආදී අනෙකුත් ඔබ්ජෙක්ට් ඔරියෙන්ටඩ් ක්‍රමලේඛන භාෂා වල ඇති ඉම්ප්ලිසිට් ක්‍රම වලට වඩා වෙනස්ය.

## ස්ටේට්මන්ට් සහ කන්ට්‍රෝල්ෆ්ලෝ
*if statement-else හා elif ඔස්සේ කේත ඛණ්ඩය කොන්දේසි පිට එක්සිකියුට් කරයි.
*for statement-සබැදි කොටසේ නැවත නැවත යෙදෙන ආවේණික විචල්‍ය යලි යලිත් ක්‍රියාත්මක කරයි.
*while statement- කොන්දේසිය සත්‍යවන තුරු කේත ඛණ්ඩය  එක්සිකියුට් කරයි
*class statementනෙම්ස්පේස් එහි ක්ලාස් එකට යාවනතුරු කේත ඛණ්ඩය  එක්සිකියුට් කරයි. මෙය OOP වල භාවිත වේ.
*def statement-ශ්‍රිතීය හෝ විධික්‍රම ලෙස අර්ථ දක්වා ඇත.
*with statement-(පයිතන් 2.5 සිට්) කේත ඛණ්ඩය කොන්ටෙක්ස් මැනේජරය මඟින් අහුරාලයි

## පයිතන් වෙතින් ආභාෂය ලැබූ වෙනත් භාෂාවන් 
* Boo 
* Cobra 
* ECMAScript 
* Go 
* Groovy 
* Julia 
* OCaml 
* Ruby 
* CoffeeScript 
* Swift