പൈത്തൺ (പ്രോഗ്രാമിങ്ങ് ഭാഷ)

പ്രോഗ്രാമിങ് ഭാഷ
(Python programming language എന്ന താളിൽ നിന്നും തിരിച്ചുവിട്ടതു പ്രകാരം)

കമ്പ്യൂട്ടർ ശാസ്ത്രത്തിലെ ഒരു ഹൈലെവൽ പ്രോഗ്രാമിങ് ഭാഷയാണ്‌ പൈത്തൺ. ​​​എഴുതുന്ന പ്രോഗ്രാം ​​ എളുപ്പത്തിൽ വായിച്ചു മനസ്സിലാക്കാം ​എന്നത് പൈത്തണിന്റെ പ്രധാന സവിശേഷതകളിലൊന്നാണ്. ​1991-ൽ ഗൈഡോ വാൻ റോസ്സിന്റെ നേതൃത്വത്തിലാണ്‌ ഇത് എഴുതിയത്. കോഡ് വായനാസമത്വത്തിന് പ്രാധാന്യം നൽകുന്ന ഒരു ഡിസൈൻ തത്ത്വചിന്തയും പൈത്തണിനുണ്ട്. പ്രോഗ്രാമ്മർമാരെ കുറച്ചു കോഡുകളായി ആശയങ്ങൾ പ്രകടിപ്പിക്കാൻ സാധിക്കുന്ന ഒരു സിന്റാക്സ്, പ്രത്യേകിച്ച് ശ്രദ്ധേയമായ വൈറ്റ്സ്പെയ്സ് ഉപയോഗിക്കുന്നു. ചെറുതും വലുതുമായ തുലനങ്ങളിൽ വ്യക്തമായ പ്രോഗ്രാമുകൾ പ്രാപ്തമാക്കുന്ന നിർമ്മിതി ഇത് നൽകുന്നു.

പൈത്തൺ
ശൈലി:Multi-paradigm: object-oriented,[1] procedural (imperative), functional, structured, reflective
രൂപകൽപ്പന ചെയ്തത്:Guido van Rossum
വികസിപ്പിച്ചത്:Python Software Foundation
ഡാറ്റാടൈപ്പ് ചിട്ട:Duck, dynamic, strong typing;[2] gradual (since 3.5, but ignored in CPython)[3]
പ്രധാന രൂപങ്ങൾ:CPython, PyPy, Stackless Python, MicroPython, CircuitPython, IronPython, Jython
വകഭേദങ്ങൾ:Cython, RPython, Starlark[4]
സ്വാധീനിക്കപ്പെട്ടത്:ABC,[5] Ada,[6] ALGOL 68,[7] APL,[8] C,[9] C++,[10] CLU,[11] Dylan,[12] Haskell,[13] Icon,[14] Java,[15] Lisp,[16] Modula-3,[10] Perl, Standard ML[8]
സ്വാധീനിച്ചത്:Apache Groovy, Boo, Cobra, CoffeeScript,[17] D, F#, Genie,[18] Go, JavaScript,[19][20] Julia,[21] Nim, Ring,[22] Ruby,[23] Swift[24]
അനുവാദപത്രം:Python Software Foundation License
വെബ് വിലാസം:www.python.org

പൈത്തൺ ഒരു ഡൈനാമിക് ടൈപ്പ് സിസ്റ്റം, ഓട്ടോമാറ്റിക് മെമ്മറി മാനേജ്മെന്റ് എന്നിവ ലഭ്യമാക്കുന്നു. ഇത് ഒന്നിലധികം പ്രോഗ്രാമിങ് പരാമീറ്ററുകൾ പിന്തുണയ്ക്കുന്നു,ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ, ഇംപരേറ്റീവ്, ഫങ്ഷണൽ ആൻഡ് പ്രൊസീജ്യറൽ, കൂടാതെ വലിയൊരു സമഗ്രമായ ലൈബ്രറിയും ഉണ്ട്.

പല ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾക്കും പൈത്തൺ വ്യാഖ്യാതാക്കൾ ലഭ്യമാണ്. പൈത്തണിന്റെ റഫറൻസ് നിർവ്വഹണ രീതിയായ സിപൈത്തൺ, ഒരു ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്‌വെയർ ആണ്. അതിന്റെ എല്ലാ വകഭേദങ്ങളും പോലെ തന്നെ ഒരു സാമുദായിക അടിസ്ഥാന വികസന മോഡലും ഉണ്ട്. സിപൈത്തൺ ലാഭരഹിത പൈത്തൺ സോഫ്റ്റ് വെയർ ഫൗണ്ടേഷൻ ആണ് കൈകാര്യം ചെയ്യുന്നത്.

ചരിത്രം

തിരുത്തുക
 
ഗൈഡോ വാൻ റോസ്സം, പൈത്തണിന്റെ ഉപജ്ഞാതാവ്

1980-കളുടെ അവസാനം പൈത്തൺ ഉരുത്തിരിഞ്ഞു. എബിസി പ്രോഗ്രാമിംഗ് ഭാഷക്ക് പിൻഗാമിയായി (SETL പ്രചോദനം) നെതർലണ്ടിലെ സെൻട്രം വിസ്കുണ്ടെ & ഇൻഫോമാറ്റിക്ക (CWI) എന്ന ഗവേഷണ കേന്ദ്രത്തിൽ ഗൈഡോ വാൻ റോസ്സം 1989 ഡിസംബറിലായിരുന്നു ഇത് നടപ്പിലാക്കിയത്. ഒഴിവാക്കൽ കൈകാര്യം ചെയ്യാനുള്ള ശേഷിയും, അമീബ ഓപ്പറേറ്റിങ് സിസ്റ്റവുമായുള്ള സമ്മേളനവും(interface) പൈത്തൺ നല്കുന്നു. പൈത്തണിന്റെ മുഖ്യരചയിതാവായി വാൻ റോസ്സം തുടരുന്നു. പൈത്തൺ വികസനത്തിൽ അദ്ദേഹത്തിന്റെ പ്രധാന പങ്ക് മൂലം പൈത്തൺ കമ്യൂണിറ്റി വിശേഷിപ്പിക്കുന്നത് ഇപ്രകാരമാണ്: ബെനവലൻറ് ഡിക്റ്റേറ്റർ ഫോർ ലൈഫ് (ബി.ഡി.എഫ്.എൽ).

പൈത്തണിന്റെ ഉത്ഭവത്തെക്കുറിച്ച് വാൻ റോസ്സ് 1996 ൽ എഴുതി [25]:

2000 ഒക്ടോബറിൽ പൈത്തൺ 2.0 പുറത്തിറങ്ങി, നിരവധി പുതിയ സവിശേഷതകൾ, സൈക്കിൾ കണ്ടെത്തുന്ന ആവശ്യമില്ലാത്തതോ തെറ്റുള്ളതോ ആയ ഡാറ്റ ശേഖരവും(cycle-detecting garbage collector) യൂണീക്കോഡിനുള്ള പിന്തുണയും ഉൾപ്പെടുന്നു. ഈ റിലീസിനൊപ്പം, വികസന പ്രക്രിയ കൂടുതൽ സുതാര്യവും, കമ്മ്യൂണിറ്റി പിന്തുണയുള്ളതുമാണ്.

പൈത്തൺ 3.0 (തുടക്കത്തിൽ പൈത്തൺ 3000 അല്ലെങ്കിൽ py3k) 2008 ഡിസംബർ 3 ന് ഒരു നീണ്ട പരീക്ഷണ കാലഘട്ടത്തിനു ശേഷം പുറത്തിറങ്ങി. അത് ഭാഷയുടെ ഒരു വലിയ പുനക്രമീകരണമാണ്, മുൻ പതിപ്പുകളെ അപേക്ഷിച്ച് അത് തികച്ചും പിന്നോട്ട് പൊരുത്തപ്പെടുന്നില്ല (backward-compatible). എങ്കിലും പൈത്തൺ 2.6.x 2.7.x പതിപ്പ് സീരീസ് എന്നിവയിലേക്ക് ബാക്ക്പോർട്ട് ചെയ്തിട്ടുണ്ട്. പൈത്തൺ 3-ൽ പുറത്തിറക്കുന്ന പൈത്തൺ 2 കോഡ് ഓട്ടോമേറ്റ് ചെയ്യുന്ന പൈത്തൺ 3-യിൽ പുറത്തിറക്കുന്നു[26].

പൈത്തൺ 2.7 ന്റെ അവസാന കാലഘട്ട തീയതി (എ.കെ.എ ഇ.ഒ.എൽ., സൂര്യാസ്തമയ തീയതി) ആദ്യം 2015 ൽ സജ്ജീകരിച്ചു, അതിനു ശേഷം നിലവിലുള്ള ഒരു വലിയ കൂട്ടം കോഡ് എളുപ്പത്തിൽ പൈത്തൺ 3 ലേക്ക് ഫോർവേഡ് ചെയ്യില്ല എന്ന ആശങ്കയിലാണു 2020 ലേക്ക് മാറ്റിവെക്കപ്പെട്ടത്.[27][28]

പൈത്തൺ 3.6-ൽ യുടിഎഫ്(UTF-8) (വിൻഡോസ്, പിഇപി 528, പിഇപി 529), പൈത്തൺ 3.7.0 ബി 1 (പിഇപി 540) എന്നിവ പുതിയ മാറ്റങ്ങളുണ്ടാക്കി പുതിയ ഒരു "യുടിഎഫ്-8 മോഡ്" ചേർക്കുന്നു (കൂടാതെ പോസിക്സ് ലോക്കെലേറ്റിനെ മറികടക്കുന്നു).

2017 ജനുവരിയിൽ ഗൂഗിൾ ഗോ ട്രാൻസ്കോപൈലർക്കായി പൈത്തൺ 2.7 ൽ പ്രവർത്തിക്കുമെന്ന് പ്രഖ്യാപിക്കുകയും, സമകാലിക വർക്ക് ലോഡുകളിലെ പ്രകടനം മെച്ചപ്പെടുത്തുകയും ചെയ്തു.[29]

പ്രത്യേകതകളും തത്ത്വചിന്തയും

തിരുത്തുക

കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് പഠിപ്പിക്കാനായി ഇന്ന് പൈത്തൺ വളരെയധികം ഉപയോഗിക്കുന്നു. വളരെ ലളിതമായ ഭാഷാഘടനയാണ് പൈത്തണിന്റെ ഏറ്റവും വലിയ പ്രത്യേകത. ജാവ, സി തുടങ്ങിയ പ്രോഗ്രാമിങ് ഭാഷകളിൽ ഉള്ളതിലും വളരെ കുറച്ച് ചിഹ്നങ്ങൾ മാത്രമേ പൈത്തണിൽ ഉപയോഗിക്കുന്നുള്ളൂ. ജാവയിലും സി++ ലും ചരങ്ങൾ പ്രോഗ്രാമിൽ ഉപയോഗിക്കുന്നതിനു മുൻപ് കമ്പൈലറിനോട് സൂചിപ്പിക്കേണ്ടതുണ്ട് എന്നാൽ പൈത്തണിൽ ഇതിന്റെ ആവശ്യം ഇല്ല. വളരെ പെട്ടെന്ന് ഉപയോഗപ്രദമായ സോഫ്റ്റ്‌വെയറുകൾ നിർമ്മിക്കാൻ ഇത് സഹായിക്കുന്നു.

വിക്കിപീഡിയക്കും മറ്റു മീഡിയാവിക്കി സം‌രംഭങ്ങൾക്കുമായുള്ള ബോട്ട് പ്രോഗ്രാമുകൾ എഴുതുന്നതിനായി പൈത്തൺ വ്യാപകമായി ഉപയോഗിക്കുന്നുണ്ട്. പൈവിക്കിപീഡിയ എന്ന ബോട്ട് പ്രോഗ്രാമാണ്‌ അന്തർ‌വിക്കി കണ്ണികൾ നൽകാനായി മിക്കവാറും ഉപയോഗിക്കപ്പെടുന്നത്.

പൈത്തൺ ഒന്നിലധികം മാത‌ൃകളുള്ള പ്രോഗ്രാമിങ് ഭാഷയാണ്. ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിംഗും ഘടനാപരമായ പ്രോഗ്രാമിങ് സംവിധാനവും പൂർണ്ണമായി പിന്തുണയ്ക്കുന്നു, ഫങ്ഷണൽ പ്രോഗ്രാമിങ്, ഇൻഫർമേഷൻ ഓറിയെന്റഡ് പ്രോഗ്രാമിങ് (മെറ്റാപ്രോഗ്രാമിംഗ്, മെറ്റാഒബജക്ട്സ് (മാജിക് മെത്തേഡുകൾ) എന്നിവയുൾപ്പെടെ നിരവധി സവിശേഷതകളെ പിന്തുണയ്ക്കുന്നു. മറ്റേതൊരു മാതൃകയും വിപുലീകരണങ്ങളിലൂടെ പിന്തുണയ്ക്കുന്നു, കോൺട്രാക്ടിലൂടെ ഡിസൈൻ, ലോജിക്കൽ പ്രോഗ്രാമിങ് തുടങ്ങിയവ ഉൾപ്പെടുന്നു.

പൈത്തൺ ഡൈനാമിക് ടൈപ്പിങ്, റെഫറൻസ് കൗണ്ടിങ്, മെമ്മറി മാനേജ്മെന്റിനായി ഒരു സൈക്കിൾ കണ്ടെത്തുന്നതിനുള്ള ആവശ്യമില്ലാത്തതോ തെറ്റുള്ളതോ ആയ ഡാറ്റ ശേഖരം എന്നിവ ഉപയോഗിക്കുന്നു. പ്രോഗ്രാം എക്സിക്യൂഷൻ സമയത്ത് രീതിയും വേരിയബിൾ പേരുകളും ബന്ധിപ്പിയ്ക്കുന്ന ഡൈനാമിക് നെയിം റിസല്യൂഷൻ (അവസാനത്തെ ബൈൻഡ്) ഇതിലുണ്ട്.

പൈത്തണിന്റെ ഡിസൈൻ ലിസ്പ് പാരമ്പര്യത്തിൽ ഫങ്ഷണൽ പ്രോഗ്രാമിങ്ങിനുള്ള പിന്തുണ നൽകുന്നു. ഇതിന് filter() map(), reduce() ഫങ്ഷനുകൾ; ലിസ്റ്റ് കോമ്പ്രിഹെൻഷനുകൾ, നിഘണ്ടുകൾ, സെറ്റുകൾ; ജനറേറ്റർ എക്സ്പ്രഷനുകൾ ഉണ്ട്.സാധാരണ ലൈബ്രറി ഹാസ്കൽ, സ്റ്റാൻഡേർഡ് എം എൽ എന്നിവയിൽ നിന്നും കടമെടുക്കുന്ന ഫംഗ്ഷണൽ ഉപകരണങ്ങൾ നടപ്പിലാക്കുന്ന രണ്ട് മൊഡ്യൂളുകളും (ഇറ്റർടൂളുകൾ, ഫങ്ക്ടൂളുകൾ) ഉണ്ട്.

ഭാഷയുടെ കാതലായ ദർശനത്തെ "സെൻ ഓഫ് പൈത്തൺ" (പിഇപി 20) യിൽ ചുരുക്കി വിവരിക്കുന്നു.

  • മോശമായതിനെക്കാൾ നല്ലത് മനോഹരമായിരിക്കുന്നതാണ്.
  • അവ്യക്തയെക്കാൾ നല്ലത് വ്യക്തമായിരിക്കുന്നതാണ്.
  • സങ്കീർണ്ണമായിരിക്കുന്നതിനേക്കാൾ നല്ലത് ലളിതമായിരിക്കുന്നതാണ്.
  • കൂടിക്കുഴഞ്ഞതിനെക്കാൾ നല്ലത് സങ്കീർണതയാണ്.
  • വായനാക്ഷമതകളുടെ എണ്ണം


അതിന്റെ എല്ലാ പ്രവർത്തനങ്ങളും അതിനെ അടിസ്ഥാനമാക്കി നിർമ്മിക്കുന്നതിനുപകരം, പൈത്തൺ വളരെ വിപുലീകരിക്കാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്. പ്രോഗ്രാമബിൾ ഇന്റർഫേസുകൾ നിലവിലുള്ള പ്രയോഗങ്ങളിലേക്ക് ചേർക്കുന്നതിനുള്ള മാർഗ്ഗമാണ് ഈ കോംപാക്ട് മോഡുലാരിറ്റി ഏറ്റവും ജനപ്രിയമാക്കിയത്. ഒരു വലിയ അടിസ്ഥാന ലൈബ്രറിയും, എളുപ്പത്തിൽ എക്സ്റ്റൻസിബിൾ ഇന്റർപ്രട്ടറുമുള്ള ഒരു ചെറിയ ഭാഷയെ വാൻ റോസോമിന്റെ വീക്ഷണം എബിസിയുടെ അസഹിഷ്ണുതയിൽ നിന്ന് വിപരീത സമീപനം സ്വീകരിച്ചു.

കോഡിങ് രീതിശ‌ാസ്ത്രത്തിന് മുൻഗണന നൽകുമ്പോൾ അതിരൂക്ഷമായ വാക്യഘടന (പേൾ പോലെയുള്ളവ)ലളിതമായി പറഞ്ഞാൽ, പൈത്തൺ തത്ത്വശാസ്ത്രം നിരാകരിക്കുന്നു. കുറച്ചുകൂടി മുറുകെ പിടിച്ച വ്യാകരണം അലക്സ് മാർറ്റല്ലി അതിനെ പറഞ്ഞതുപോലെ: "ബുദ്ധിപൂർവ്വം" എന്നു വിവരിക്കുന്നതിന് പൈത്തൺ സംസ്കാരത്തിൽ ഒരു പൊരുത്തമില്ലായ്മയായി കണക്കാക്കുന്നില്ല. പൈത്തണിലെ തത്ത്വചിന്ത പേളിനെ നിരസിക്കുന്നു "അത് ചെയ്യാൻ ഒന്നിലധികം വഴികളുണ്ട്" ഭാഷാ രൂപകൽപനയെ സമീപിക്കുക, "ഒരുപക്ഷെ ഒന്നു മാത്രം ചെയ്യണം-അത് ഉത്തമമാതൃകയാകട്ടെ ഏക ലക്ഷ്യം നേടാനുള്ള ഏക വഴി".

പൈത്തണിലെ ഡെവലപ്പർമാർ അകാല ഒപ്റ്റിമൈസേഷൻ ഒഴിവാക്കാൻ കഠിനമായി പരിശ്രമിക്കുന്നു. സിപൈത്തണിന്റെ ഗുരുതരമല്ലാത്ത ഭാഗങ്ങളിൽ പാച്ച് ഉപേക്ഷിക്കുകയും, വ്യക്തമാവുന്ന വേഗതയിൽ നേരിയ തോതിൽ വർദ്ധനവുണ്ടാകുകയും ചെയ്യുന്നു. വേഗത പ്രധാനമാണെങ്കിൽ, ഒരു പൈത്തൺ പ്രോഗ്രാമർക്ക് സി പോലുള്ള ഭാഷകൾക്ക് എഴുതിയ വിപുലീകരണ മൊഡ്യൂളുകളിലേക്ക് സമയ-നിർണ്ണായക ഫംഗ്ഷനുകൾ നീക്കാൻ കഴിയും, അല്ലെങ്കിൽ ഒരു ലളിതമായ ഇൻപുട്ട് കമ്പൈലർ ആയ പൈപൈ(PyPy) ഉപയോഗിക്കുക. സിഐത്ത(Cython)ണും ലഭ്യമാണ്, ഒരു പൈത്തൺ സ്ക്രിപ്റ്റ് സിയിലേയ്ക്ക് വിവർത്തനം ചെയ്യുകയും പൈത്തൺ ഇന്റർപ്രെട്ടറിലേക്ക് നേരിട്ട് സി-ലെവൽ എപിഐ (API) കോളുകൾ വിളിക്കുകയും ചെയ്യുന്നു.

പൈത്തണിന്റെ ഡെവലപ്പർമാർക്ക് അത് ഉപയോഗിക്കാൻ രസകരമാണ് എന്നതാണ് ഇതിന്റെ മുഖ്യ ആകർഷണം. ഈ ഭാഷയുടെ പേരിന്റെ പ്രതിഫലനമാണ് - ബ്രിട്ടീഷ് കോമഡി ഗ്രൂപ്പായ മോണ്ടി പൈത്തൺ സ്പാമും മുട്ടയും (ഒരു പ്രശസ്തമായ മോണ്ടി പൈത്തൺ സ്കെച്ചിൽ നിന്ന്) പരാമർശിക്കുന്ന ഉദാഹരണങ്ങൾ പോലെ ട്യൂട്ടോറിയലുകളും റഫറൻസ് മെറ്റീരിയലുകളുമൊക്കെ ഇടയ്ക്കിടെ കളിയോടുള്ള സമീപനത്തിൽ സ്റ്റാൻഡേർഡ് ഫൂ ആൻഡ് ബാർ ആണ് ഉപയോഗപ്പെടുത്തുന്നത്.[30][31]

പൈത്തൺ കമ്മ്യൂണിറ്റിയിലെ ഒരു സാധാരണ പദസൃഷ്ടി പൈത്തണിക് ആണ്, പ്രോഗ്രാമിന്റെ ശൈലിയുമായി ബന്ധപ്പെട്ട വൈവിധ്യമാർന്ന വ്യാപ്തിയും ഇതിലുണ്ട്. പൈത്തൺ ഭാഷ ഉപയോഗിക്കുന്നത് വളരെ ലളിതമാണെന്നോ, അത് സ്വാഭാവികമാണെന്നോ ഭാഷയിലെ പ്രാവീണ്യത്തെക്കുറിച്ചോ പറയുന്നത് പൈത്തണിന്റെ ലളിതമായ തത്ത്വചിന്തയും വായിക്കാനുള്ള പ്രാധാന്യവും ഒക്കെയാണ്. ഇതിൽ നിന്ന് വ്യത്യസ്തമായി, മറ്റൊരു പ്രോഗ്രാമിങ് ഭാഷയിൽ നിന്ന് ഒരു പരുക്കൻ പകർപ്പായി വായിക്കാൻ ബുദ്ധിമുട്ടുന്ന കോഡ് പൈത്തൺ രീതിക്ക് വ്യത്യസ്തമാണെന്ന് പറയുന്നു.

പൈത്തണിലെ ഉപയോക്താക്കളും ആരാധകരും, പ്രത്യേകിച്ച് അറിവുനേടാൻ അല്ലെങ്കിൽ അനുഭവപരിചയമുള്ളവരെ കണക്കാക്കുന്നത് പൈത്തണിസ്റ്റുകൾ, പൈത്തണിസ്റ്റാസുകൾ, പൈത്തണീയേഴുസുകൾ എന്നിങ്ങനെയായിട്ടാണ്.

പദവിന്യാസവും അർത്ഥവിജ്ഞാനീയവും

തിരുത്തുക

പൈത്തൺ എളുപ്പം വായിക്കാവുന്ന ഭാഷയാണ്. അതിന്റെ ഫോർമാറ്റിങ്ങ് വ്യത്യാസമില്ലാതെ, പല ഭാഷകളും വിരാമമായി ഉപയോഗിക്കുന്ന ഇംഗ്ലീഷ് കീവേഡുകൾ പലപ്പോഴും ഉപയോഗിക്കുന്നു. മറ്റു പല ഭാഷകളിൽ നിന്നും വ്യത്യസ്തമായി, ബ്ലോക്കുകൾ അതിർത്തി നിശ്ചിയിക്കുന്നതിന് ഇത് ചുരുള ബ്രാക്കറ്റുകൾ ഉപയോഗിക്കില്ല, പ്രസ്താവനകൾക്കുശേഷം അർദ്ധവിരാമങ്ങൾ ഇച്ഛാനുസൃതമാണ്. സി, പാസ്കൽ എന്നിവയേക്കാൾ വളരെ കുറഞ്ഞ വാക്യഘടനയും ഒഴിവാക്കലുകളുമുണ്ട്.

ബ്ലോക്കുകൾ അതിർത്തി നിർണ്ണയിക്കുന്നതിന് പൈത്തൺ ചുരുള ബ്രാക്കറ്റുകൾ അല്ലെങ്കിൽ കീവേഡുകൾക്കു പകരം വൈറ്റ്സ്പെയ്സ് അടയാളം ഉപയോഗിക്കുന്നു. അടയാളങ്ങളിൽ ഉള്ള വർദ്ധനവ് ചില പ്രസ്താവനകൾക്ക് ശേഷമാണ്; നിലവിലെ ബ്ലോക്കിന്റെ അവസാനം സൂചികയിലെ കുറവ് സൂചിപ്പിക്കുന്നു. ഈ സവിശേഷത ചിലപ്പോൾ പങ്കാളിത്ത ഭരണം എന്ന് പറയുന്നു.[32]

പ്രസ്താവനകളും നിയന്ത്രണവും

തിരുത്തുക
 

പൈത്തണിലുള്ള പ്രസ്താവനകൾ (മറ്റുള്ളവരുടെ):

  • അസൈൻമെന്റ് സ്റ്റേറ്റ്മെന്റ് (ടോക്കൺ '=', സമ ചിഹ്നം). പരമ്പരാഗതവും അനിവാര്യമായ പ്രോഗ്രാമിങ് ഭാഷകളിൽ അല്ലാതെ ഇത് പ്രവർത്തിക്കുന്നു, ഈ അടിസ്ഥാന സംവിധാനം (പൈത്തണിന്റെ വേരിയബിൾ പതിപ്പുകൾ ഉൾപ്പെടെയുള്ളവ) ഭാഷയുടെ മറ്റു പല സവിശേഷതകളും പ്രകാശിപ്പിക്കുന്നു. സി, ഉദാഹരണത്തിന്, x = 2 ലെ അസ്സൈൻമെന്റ്, "ടൈപ്പ് ചെയ്ത വേരിയബിൾ നെയിം x എന്നത് സംഖ്യാ മൂല്യം 2 ന്റെ ഒരു കോപ്പി ലഭിക്കുന്നു". (വലതു ഭാഗം) മൂല്യം ഒരു ഇടതുവശത്തുള്ള സ്റ്റോറേജ് ലൊക്കേഷനായി പകർത്തുകയും, ഇതിനായുള്ള (ഇടത് ഭാഗം) വേരിയബിൾ പേര് പ്രതീകാത്മക വിലാസമാണ്. പ്രഖ്യാപിച്ച വേരിയബിളിന് അനുവദിച്ചിരിക്കുന്ന മെമ്മറി വലുതാണ് (വളരെ വലുത്). പൈത്തൺ അസൈൻമെന്റിൽ ഏറ്റവും ലളിതമായ ഉദാഹരണത്തിൽ, x = 2, "(പൊതുവായത്) x എന്ന പേരിന് " x ", സംഖ്യ (int) തരം 2 എന്ന് പ്രത്യേകമായി ദ്രുതഗതിയിലുള്ള ഒരു വസ്തുവിനെ സൂചിപ്പിക്കുന്നു. വസ്തുവിന്റെ പേര് നിർദ്ദേശിക്കപ്പെടുന്നു. നാമത്തിന്റെ സംഭരണ ​​സ്ഥാനത്തിൽ സൂചിപ്പിച്ച മൂല്യം ഉൾക്കൊള്ളാത്തതിനാൽ, ഇത് ഒരു വേരിയബിളിനെ വിളിക്കാൻ ഉചിതമല്ല. പേരുകൾ പലപ്പോഴും ഭിന്നശേഷിയുള്ള തരത്തിലുള്ള വസ്തുക്കൾക്ക് എപ്പോൾ വേണമെങ്കിലും പുനക്രമീകരിക്കാം, സ്ട്രിങ്ങുകൾ, നടപടിക്രമങ്ങൾ, ഡാറ്റയും രീതികളും ഉൾപ്പെടെയുള്ള സങ്കീർണ്ണ വസ്തുക്കൾ എന്നിവ ഉൾപ്പെടെ. ഒന്നിലധികം പേരുകളിലേക്ക്, ഒരു സാധാരണ മൂല്യത്തിന്റെ തുടർച്ചയായുള്ള കർത്തവ്യ‌ങ്ങൾ ഉൾക്കൊള്ളുന്നു, ഉദാ. x = 2; y = 2; z = 2 സ്റ്റോറേജ് (ഏറ്റവും) മൂന്നു പേരുകളും ഒരു സംഖ്യാ ഒബ്ജക്റ്റും അനുവദിക്കുന്നതിനായി, ഈ മൂന്ന് പേരുകളും ബന്ധിതമാണ്. ഒരു പേര് പൊതുവായ സൂചന വാഹകൻ ആയതിനാൽ ഒരു സ്ഥിരമായ ഡാറ്റാ തരം അസോസിയേറ്റ് ചെയ്യുന്നതിനെ അനുകൂലിക്കുന്നില്ല. എന്നിരുന്നാലും,ഒരു സമയത്ത് ഒരു പേര് ചില വസ്തുക്കളെ ബന്ധിപ്പിക്കുന്ന ഒരു തരം ഉണ്ട്; ഡൈനാമിക് ടൈപ്പിങ്ങും അവിടെയുണ്ട്.
  • If സ്റ്റേറ്റ്മെന്റ്, വ്യവസ്ഥാപിതമായി ഒരു കോഡ് ബ്ലോക്ക് നടപ്പിലാക്കുന്നു, else ഒപ്പം elif (മറ്റൊരു ചുരുക്കവും).
  • ഒരു പ്രസ്താവന ഒബ്ജക്റ്റിനെ ആധാരമാക്കിയുള്ള for പ്രസ്താവന, ഓരോ ഘടകത്തെയും ഒരു പ്രാദേശിക വേരിയബിളിലേക്ക് അറ്റാച്ച് ചെയ്ത ബ്ളോക്കിലേക്ക് കൈമാറുന്നു.
  • while വിവരണത്തിന്റെ അവസ്ഥ ശരിയായാണെങ്കിൽ കോഡിന്റെ ഒരു ബ്ലോക്ക് പ്രവർത്തിപ്പിക്കുന്നു.
  • try കോഡ് ബ്ലോക്കിൽ ഉയർത്തിയ ഒഴിവാക്കലുകൾക്കുള്ള സംവിധാനങ്ങൾ ഒഴിവാക്കുക; അവസാനത്തെ ബ്ലോക്കിലെ ക്ലീൻ-അപ്പ് കോഡുകൾ എല്ലായ്പ്പോഴും ബ്ലോക്ക് എക്സിറ്റ് ചെയ്യുന്നത് എങ്ങനെയാണ് നിർവ്വഹിക്കുന്നത് എന്ന് ഉറപ്പു വരുത്തുന്നു.
  • ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിംഗിനുപയോഗിക്കുന്ന class സ്റ്റേറ്റ്മെന്റ്, ഒരു കോഡ് ബ്ലോക്ക് നടത്തി അതിന്റെ ലോക്കൽ നെയിംസ്പേസ് ഒരു ക്ലാസിലേക്ക് കൂട്ടിച്ചേർക്കുന്നു.
  • def സ്റ്റേറ്റ്മെന്റ് ഒരു ഫങ്ഷൻ അല്ലെങ്കിൽ രീതി നിർവ്വചിക്കുന്നു.
  • 2006 സെപ്റ്റംബറിൽ പുറത്തിറങ്ങിയ പൈത്തൺ 2.5 ൽ നിന്നുള്ള with പ്രസ്താവന[33] ഒരു കോൺടെക്സ്റ്റ് മാനേജർക്കുള്ളിൽ ഒരു കോഡ് ബ്ലോക്ക് ഉൾക്കൊള്ളുന്ന (ഉദാഹരണത്തിന്, കോഡ് ബ്ലോക്ക് മുൻപ് ലോക്ക് ചെയ്ത്, ലോക്ക് റിലീസ് ചെയ്ത്, അല്ലെങ്കിൽ ഒരു ഫയൽ തുറന്ന്, അടയ്ക്കുക) റിസോഴ്സ് അക്വിസിഷൻ ഇനിഷിലൈസേഷൻ(Resource Acquisition Initialization (RAII)) പോലെ പെരുമാറ്റം അനുവദിക്കുകയും ഒരു സാധാരണ പരീക്ഷണം / അവസാനം ഭാഷശൈലി മാറ്റി പകരംവയ്ക്കുകയും ചെയ്യുന്നു.[34]
  • pass പ്രസ്താവന, ഇത് ഒരു NOP ആയി പ്രവർത്തിക്കുന്നു. ഒരു ഒഴിഞ്ഞ കോഡ് ബ്ലോക്ക് സൃഷ്ടിക്കുന്നതിന് വാക്യഘടന ആവശ്യമാണ്.
  • ബാധകമാക്കേണ്ട വ്യവസ്ഥകൾ പരിശോധിക്കാൻ ഡീബഗ്ഗ് ചെയ്യുമ്പോൾ ഉപയോഗിച്ച assert പ്രസ്താവന.
  • ഒരു ജനറേറ്ററിന്റെ പ്രവർത്തനത്തിൽ നിന്ന് ഒരു മൂല്യം മടക്കി നൽകുന്ന yield പ്രസ്താവന. പൈത്തൺ 2.5 ൽ യീൽഡ് ഒരു ഓപ്പറേറ്ററാണ്. ഈ രൂപങ്ങൾ കോറോണ്ടീനസ്(coroutines) നിർവ്വഹിക്കാൻ ഉപയോഗിക്കുന്നു.
  • നിലവിലെ പ്രോഗ്രാമിൽ ഫംഗ്ഷനുകൾ അല്ലെങ്കിൽ വേരിയബിളുകൾ ഉപയോഗിക്കുന്ന മൊഡ്യൂളുകൾ ഇംപോർട്ട് ചെയ്യുന്നതിന് ഉപയോഗിക്കുന്നതാണ് importപ്രസ്താവന. ഇംപോർട്ടിന് നാല് മാർഗങ്ങൾ ഉണ്ട്: import <module name> അല്ലെങ്കിൽ from <module name> import * അല്ലെങ്കിൽ import numpy as npഅല്ലെങ്കിൽfrom numpy import pi as Pie.
  • printപ്രസ്താവന പൈത്തൺ 3-ൽ പ്രിന്റ്() ഫംഗ്ഷനിലേക്ക് മാറ്റി.[35]

ടെയിൽ കോൾ ഓപ്റ്റിമൈസേഷൻ അല്ലെങ്കിൽ ഫസ്റ്റ്-ക്ലാസ് തുടരുന്നതിനെ പൈത്തൺ പിന്തുണയ്ക്കുന്നില്ല, ഗൈഡോ വാൻ റോസ്സം പറയുന്നതനുസരിച്ച് അത് ഒരിക്കലും ഉണ്ടാകില്ല. പൈത്തണിലെ ജനറേറ്ററുകൾ വിപുലീകരിച്ചുകൊണ്ട് 2.5-ൽ corautine-like ഫംഗ്ഷനാലിറ്റിക്ക് മികച്ച പിന്തുണ നൽകിവരുന്നു. 2.5-ന് മുമ്പ് ജനറേറ്ററുകൾ മന്ദഗതിയിലായിരുന്നു. വിവരങ്ങൾ ജനറേറ്ററിൽ നിന്ന് ഏകദിശയിൽ കൈമാറി. പൈത്തൺ 2.5 ൽ നിന്നും ഒരു ജനറേറ്റർ ഫംഗ്ഷനിൽ നിന്നും പൈത്തൺ 3.3-ൽ നിന്നും വിവരങ്ങൾ അയയ്ക്കാൻ സാധിക്കും, ഒന്നിലധികം സ്റ്റാക്ക് അളവുകൾ വഴി വിവരങ്ങൾ നേടാം.

ആശയപ്രകാശനരീതി

തിരുത്തുക

ചില പൈത്തൺ ആശയപ്രകാശനരീതികൾ സി, ജാവ എന്നിവ പോലുള്ള ഭാഷകൾക്ക് സമാനമാണ്, ചിലപ്പോൾ അവ ഇല്ല:

  • സങ്കലനം, വ്യവകലനം, ഗുണനം എന്നിവ ഒരേപോലെയാണെങ്കിലും ഭിന്നിയുടെ സ്വഭാവം വ്യത്യസ്തമായിരിക്കും എന്നാൽ ഹരണ സ്വഭാവം വ്യത്യസ്തമാണ്. പൈത്തണിൽ രണ്ട് തരം ഡിവിഷനുകളുണ്ട്. ഫ്ലോർ ഡിവിഷൻ, ഇൻഗ്രിഗർ ഡിവിഷൻ എന്നിവയാണ്. പൈത്തൺ എക്സ്പ്ലോന്റേഷനായി ** ഓപ്പറേറ്റർ കൂടി ചേർത്തിട്ടുണ്ട്.
  • പൈത്തൺ 3.5 ൽ, പുതിയ @ഇൻഫിക്സ് ഓപ്പറേറ്റർ അവതരിപ്പിച്ചു. മെട്രിക്സ് ഗുണനത്തിനായി നം‌പൈ(NumPy)പോലുള്ള ലൈബ്രറികളാണ് ഇത് ഉപയോഗിക്കുന്നത്.
  • പൈത്തണിൽ, == മൂല്യം, ജാവയുമായുള്ള താരതമ്യത്തിൽ, മൂല്യനിർണ്ണയം അനുസരിച്ച് സംഖ്യകളെ താരതമ്യം ചെയ്യുന്നു. (വസ്തുക്കളുടെ ജാവയിലെ മൂല്യ താരതമ്യം equals() രീതി ഉപയോഗിച്ച് ചെയ്യാം.) ഒബ്ജക്റ്റ് ഐഡന്റിറ്റികൾ (റഫറൻസ് അനുസരിച്ച് താരതമ്യം ചെയ്യുക) താരതമ്യം ചെയ്യാൻ പൈത്തണിന്റെ isഓപ്പറേറ്റർ ഉപയോഗിക്കാം. പൈത്തണിൽ താരതമ്യനെ ചങ്ങലകണ്ണികൾപോലെ ഉൾപ്പെടുത്താം, ഉദാഹരണത്തിന് a <= b <= c.
  • പൈത്തൺ വാക്കുകൾ ഉപയോഗിക്കുന്നുand,or,not പ്രതീകാത്മകത്തിന് പകരം ബൂളിയൻ ഓപ്പറേറ്ററുകൾ&&,||,! ജാവയിലും സിയിലും ഉപയോഗിച്ചിട്ടുള്ളതാണ്.
  • പൈത്തൺ ഒരു തരത്തിലുള്ള പദപ്രയോഗമുണ്ട് അതാണ് ലിസ്റ്റ് കോമ്പ്രിഹെഷനിൽ നിന്ന് മനസ്സിലാക്കാൻ സാധിക്കുന്നത്. പൈത്തൺ 2.4 വിപുലീകരിച്ച ലിസ്റ്റ് കോമ്പ്രിഹെൻഷനുകൾ കൂടുതൽ ജനറൽ എക്സ്പ്രഷനുകളായി ഒരു ജനറേറ്റർ എക്സ്പ്രഷൻ എന്ന് സൂചിപ്പിക്കുന്നു.
  • ലാംഡ എക്സ്പ്രഷനുകൾ ഉപയോഗിച്ചുള്ള അജ്ഞാത പ്രവർത്തനങ്ങൾ നടപ്പിലാക്കുന്നു; എന്നിരുന്നാലും ബോഡി ഒരു പദപ്രയോഗമായി മാത്രം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.
  • പൈത്തണിലെ വ്യവസ്ഥാപിത പദങ്ങൾ എഴുതപ്പെട്ടിട്ടുണ്ട് x if c else y (അതിൽ നിന്നും വ്യത്യസ്തമായ ഓപ്പറാൻഡ്സ്(operands)c ? x : y ഓപ്പറേറ്റർ മറ്റു പല ഭാഷകളിലും സാധാരണമാണ്)
  • പൈത്തൺ ലിസ്റ്റുകളും ടപ്പിൾസും തമ്മിൽ വ്യത്യാസമുണ്ട്. ലിസ്റ്റുകൾ ആയി എഴുതപ്പെട്ടിട്ടുള്ള[1, 2, 3], ഈ കോഡ് മൂട്ടബിൾ(Mutable) ആണ്.ഡിഷ്നറിയുടെ കീകൾ ആയി ഉപയോഗിക്കാനാവില്ല (നിഘണ്ടു കീകൾ പൈത്തണിൽ ഇംമൂട്ടബിൾ ആണ്) ടപ്പിൾസ് (1, 2, 3) എന്ന് എഴുതിയിരിക്കുന്നു, ഇവ ഇംമൂട്ടബിൾ ആണ്, അതുകൊണ്ട് നിഘണ്ടുവിന്റെ കീകൾ ആയി ഉപയോഗിക്കാം.ടപ്പിൾസിന്റെ എല്ലാ ഘടകങ്ങളും ഇംമൂട്ടബിൾ ആണ്. രണ്ട് ടപ്പിൾസുകൾ കൂട്ടിച്ചേർക്കുന്നതിന് + ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു, ഇത് അവയുടെ ഉള്ളടക്കം നേരിട്ട് പരിഷ്കരിക്കുന്നില്ല, പകരം രണ്ടു തരത്തിലുള്ള ടപ്പിളുകളുടെയും ഘടകങ്ങൾ അടങ്ങുന്ന പുതിയൊരു ടപ്പിൾ(tuple)നിർമ്മിക്കുന്നു. അതിനാൽ, നൽകിയിരിക്കുന്ന t വേരിയബിൾ (1, 2, 3)ന് സമമാണ്, t = t + (4, 5) ആയി എക്സിക്യൂട്ട് ചെയ്യുന്നു. t + (4, 5) ഇത് ആദ്യം വിലയി രുത്തുന്നു, ഇത് വഴങ്ങുന്നത് (1, 2, 3, 4, 5) ആയിട്ടാണ്. അത് പിന്നീട് tയിലേക്ക് തിരികെ വയ്ക്കുന്നു, അതുവഴി ഫലപ്രദമായി "ഉള്ളടക്കം മാറ്റം വരുത്തുക" tയുടെ, ടപ്പിൾ വസ്തുക്കളുടെ സ്വഭാവം ഇംമ്യൂട്ടബിൾ ആണെന്ന് ഉറപ്പുവരുത്തുന്നു. സ്‌പഷ്‌ടമായ പശ്ചാത്തലത്തിൽ ടപ്പിൾസിന് പാരന്തെസസ് ഇച്ഛാനുസൃതമാണ്.
  • പൈത്തൺ സവിശേഷതകൾ ഇവയാണ് സീക്വൻസ് അൺപാക്ക് ചെയ്യുകയും അനേകം എക്സ്പ്രഷനുകൾ, ഓരോന്നിനും നിർണ്ണയിക്കാവുന്ന ഒന്നിലേക്ക് മൂല്യനിർണ്ണയം നടത്തുക (ഒരു വേരിയബിൾ, എഴുതാവുന്ന പ്രോപ്പർട്ടി മുതലായവ), ആ രൂപത്തിൽ ടുപ്പിൾ ലിറ്ററലുകളെ സമാനമായ രീതിയിൽ ബന്ധപ്പെടുത്തിയിരിക്കുന്നു, ഒരു അസൈൻമെന്റ് പ്രസ്താവനയിൽ തുല്യ അടയാളം ഇടതു വശത്ത് ഇടുന്നു. തുല്യമായ അടയാളം വലതു ഭാഗത്ത് അനിയന്ത്രിതമായ വസ്തുവാണ്, ഇത് ഒരേ മൂല്ല്യം കണ്ടുപിടിക്കുന്നു എന്ന് പ്രസ്താവിക്കുകയും നൽകിയിരിക്കുന്ന എഴുതാവുന്ന എക്സ്പ്രഷനുകളായി അതു വഴി സഞ്ചരിച്ച്, അതിലൂടെ കടന്നുപോവുകയും, ഓരോ ഉല്പന്ന മൂല്യങ്ങളും ഇടതുവശത്ത് അനുയോജ്യമായ പദപ്രയോഗം നൽകുകയും ചെയ്യുന്നു.
  • പൈത്തണിന് ഒരു "സ്ട്രിംഗ് ഫോർമാറ്റ്" ഓപ്പറേറ്റർ ഉണ്ട് % ഈ സമാന പ്രവർത്തനങ്ങൾ printf സി-ലെ ഫോർമാറ്റ് സ്ട്രിങുകൾ, ഉദാ: "spam=%s eggs=%d" % ("blah", 2) മൂല്യനിർണ്ണയം "spam=blah eggs=2" നടത്തുന്നു. പൈത്തൺ 3, 2.6+ എന്നിവയിൽ, format() ഇത് അനുബന്ധമായിരുന്നു.strന്റെ ക്ലാസ് രീതികൾ ഉദാ: "spam={0} eggs={1}".format("blah", 2). പൈത്തൺ 3.6-ൽ "എഫ്-സ്ട്രിങ്ങുകൾ" ചേർത്തിരിക്കുന്നു: blah = "blah"; eggs = 2; f'spam={blah} eggs={eggs}'.
  • പൈത്തണിനു വിവിധ തരത്തിലുള്ള സ്ട്രിംഗ് ലിറ്ററുകൾ ഉണ്ട്:
  • ഒറ്റ അല്ലെങ്കിൽ ഇരട്ട ഉദ്ധരണി ചിഹ്നങ്ങൾ കൊണ്ട് വേർതിരിച്ച സ്ട്രിംഗുകൾ.യൂണിക്സ് ഷെല്ലുകളിൽ നിന്ന് വ്യത്യസ്തമായി, പേൾ, പേൾ സ്വാധീനമുള്ള ഭാഷകൾ, ഏകകോട്ട് മാർക്കുകൾ, ഇരട്ട ഉദ്ധരണികൾ എന്നിവ സമാനമായി പ്രവർത്തിക്കുന്നു. രണ്ട് തരം സ്ട്രിങ് ബാക്ക്സ്ലാഷ് (\) എന്നത് എസ്കേപ്പ് പ്രതീകമായി ഉപയോഗിക്കുന്നു. പൈത്തൺ 3.6 ൽ സ്ട്രിംഗ് ഇന്റർപോളിഷൻ "ഫോർമാറ്റ്ഡ് സ്ട്രിംഗ് ലിറ്ററേഴ്സ്" എന്ന പേരിൽ ലഭ്യമാണ്.
  • മൂന്നു സിംഗിൾ അല്ലെങ്കിൽ ഇരട്ട ഉദ്ധരണികളുടെ ഒരു പരമ്പര തുടങ്ങുന്ന മൂന്ന് ഉദ്ധരണി സ്ട്രിംഗുകൾ. ഷെല്ലുകൾ, പേൾ, റൂബി എന്നിവിടങ്ങളിലെ രേഖകൾ പോലെ അവർ ഒന്നിലധികം വരികളും പ്രവർത്തനങ്ങളും ഉപയോഗിച്ചേക്കാം.
  • റോ സ്ട്രിംഗ് ഇനങ്ങൾ, ഒരു സ്ട്രിംഗ് അക്ഷരത്തിന് മുൻപ് സൂചിപ്പിക്കുന്നത് r. എസ്കേപ് സീക്വൻസുകൾ വ്യാഖ്യാനിക്കുന്നില്ല; അതുകൊണ്ട് റോ സ്ട്രിംഗുകൾ പ്രയോജനകരമാണ്, ലിറ്ററൽ ബാക്കസ്ലാഷുകൾ സാധാരണമാണ്, റെഗുലർ എക്സ്പ്രഷനുകൾ, വിൻഡോസ് സ്റ്റൈൽ പാത്തുകൾ എന്നിവ പോലുള്ളവ. സി# ൽ "@-quoting" താരതമ്യം ചെയ്യുന്നു.
  • പൈത്തണിൽ ശ്രേണി സൂചികകളും(array index)ശ്രേണിയിലുള്ള സ്ലൈസിംഗ് എക്സ്പ്രഷനുകളും പട്ടികകളിൽ ഉണ്ട് a[key] , a[start:stop] അല്ലെങ്കിൽ a[start:stop:step]. ഇൻഡക്സുകൾ പൂജ്യം അടിസ്ഥാനമാക്കിയുള്ളവയാണ്, നെഗറ്റീവ് ഇൻഡെക്സുകൾ അവസാനം വരെ ഉണ്ട്. ആരംഭ സൂചികയിൽ നിന്ന് ഘടകങ്ങൾ എടുക്കുന്നു, എന്നാൽ സ്റ്റോപ്പ് ഇൻഡക്സ് ഉൾപ്പെടുന്നില്ല. മൂന്നാം സ്ലൈസ് പരാമീറ്റർ, ഘട്ടം അല്ലെങ്കിൽ സ്ട്രിഡ് എന്ന് വിളിക്കുന്നു,ഘടകങ്ങൾ ഒഴിവാക്കാനും റിവേഴ്സ് ചെയ്യാനും അനുവദിക്കുന്നു. സ്ലൈസ് സൂചികകൾ ഒഴിവാക്കാവുന്നതാണ്, ഉദാഹരണത്തിന്a[:]മുഴുവൻ ലിസ്റ്റിന്റെയും ഒരു പകർപ്പ് നൽകുന്നു. ഒരു സ്ലൈസിന്റെ ഓരോ ഘടകവും ഷാളോ പതിപ്പാണ്.

പൈത്തണിൽ, കോമൺ ലിസ്പ്, സ്കീം, അല്ലെങ്കിൽ റൂബി എന്നീ ഭാഷകളിലെ വ്യത്യാസങ്ങളോടു കൂടിയ അഭിപ്രായങ്ങളും പ്രസ്താവനകളും തമ്മിലുള്ള വ്യത്യാസം നിർവചിക്കപ്പെട്ടിട്ടുണ്ട്. ഇത് ചില പ്രവർത്തനങ്ങളെ തനിപ്പകർപ്പിലേക്ക്(duplicate) നയിക്കുന്നു. ഉദാഹരണത്തിന്:

  • ലിസ്റ്റ് കോമ്പിഹെഷനുകൾ വെഴ്സസ്സ് ഫോർ-ലൂപ്പുകൾ.
  • വ്യവസ്ഥാപിത വ്യാഖ്യാനങ്ങൾ വെഴ്സസ്സ് ഇഫ് ബ്ലോക്കുകൾ.
  • Eval () vs. exec () നിർമിച്ച ഫംഗ്ഷനുകൾ (പൈത്തൺ 2-ൽ, exec ഒരു പ്രസ്താവനയാണ്); മുൻപേയുള്ളത് പ്രസ്താവനകൾക്കു വേണ്ടിയാണ്, രണ്ടാമത്തേത് പ്രസ്താവനകൾക്കായാണ്.

പ്രസ്താവനകൾ ഒരു പദപ്രയോഗത്തിന്റെ ഭാഗമായിരിക്കരുത്, അതിനാൽ ലിസ്റ്റും മറ്റ് കോമ്പ്രിഹെൻഷനുകളും അല്ലെങ്കിൽ ലാമ്പഡാ എക്സ്പ്രഷനുകൾ എല്ലാം എക്സ്പ്രഷനുകളായി പ്രസ്താവനകളിൽ അടങ്ങിയിരിക്കരുത്. ഈ ഒരു പ്രത്യേക കേസ് അസൈൻമെന്റ് പ്രസ്താവന a=1 ഒരു സോപാധികമായ പ്രസ്താവനയുടെ വ്യവസ്ഥാപിത പദപ്രയോഗത്തിന്റെ ഭാഗമാകാൻ കഴിയുകയില്ല. ഒരു തെറ്റായ അസ്സൈൻമെന്റ് ഓപ്പറേറ്ററിൽ ക്ലാസിക് സി പിശക് ഒഴിവാക്കി എന്നതാണ് പ്രത്യേകത= ഒരു സമത്വ ഓപ്പറേറ്റർ== വ്യവസ്ഥകളിൽ:if (c = 1) { ... }ഈ സി കോഡ് വാക്യഘടനാപരമായ സാധുതയുള്ളതാണ്(പക്ഷേ അപ്രതീക്ഷിത മായിരിക്കാം)പക്ഷേ if c = 1: ...പൈത്തണിൽ ഒരു വാക്യഘടന പിശക് സംഭവിക്കുന്നു.

വസ്തുക്കളുടെ രീതികൾ വസ്തുവിന്റെ നിലവാരവുമായി ബന്ധ പ്പെടുത്തിയാണ് പ്രവർത്തിക്കുന്നത്; സിന്റാക്സ്instance.method(argument) സാധാരണ രീതികളും പ്രവർത്തനങ്ങളും, സിന്റാക്സ് ഷുഗറും Class.method(instance, argument). പൈത്തൺ രീതികൾ സ്പഷ്ടമാണ് self ഇൻസ്റ്റൻസ് ഡാറ്റ ആക്സസ് ചെയ്യുന്നതിനുള്ള പാരാമീറ്റർ, ഇൻക്രിപ്റ്റിലേക്ക് വ്യത്യസ്തമായി അതിൽ അന്തർലീനമായ താരതമ്യപഠനം self(orthis)നടത്തുന്നു. മറ്റ് ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിങ് ഭാഷകളിൽ പോലെ(ഉദാ: സി++, ജാവ, ഒബജക്ടീവ്-സി, അല്ലെങ്കിൽ റൂബി)

ടൈപ്പിംഗ്

തിരുത്തുക

പൈത്തൺ ഡക്ക് ടൈപ്പിംഗ് ഉപയോഗിക്കുന്നു. ടൈപ്പ് ചെയ്ത ഒബ്ജക്റ്റുകൾ, എന്നാൽ വേരിയബിൾ പേരുകൾ അവശേഷിക്കുന്നു. ടൈപ്പുചെയ്യൽ നിയന്ത്രണങ്ങൾ കംപൈൽ സമയത്ത് പരിശോധിച്ചിട്ടില്ല; പകരം, ഒരു വസ്തുവിന്റെ പ്രവർത്തന ങ്ങൾ പരാജയപ്പെടാം, തന്നിരിക്കുന്ന വസ്തു അനുയോജ്യമായ തരമല്ലെന്ന് സൂചിപ്പിക്കുന്നു. ചലനാത്മകമായി ടൈപ്പ് ചെയ്തെങ്കിലും, പൈത്തൺ ശക്തമായി ടൈപ്പ് ചെയ്തു, നിശ്ശബ്ദമായി അതിനെ മനസ്സിലാക്കാൻ ശ്രമിക്കുന്നതിനുപകരം നന്നായി നിർവചിക്കപ്പെട്ടിട്ടില്ലാത്ത പ്രവർത്തനങ്ങൾ (ഉദാഹരണമായി, ഒരു സ്ട്രിംഗിലേയ്ക്ക് ഒരു നമ്പർ ചേർക്കുന്നത്) തടയുന്നു.

ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിങ്ങിനു വേണ്ടി ഉപയോഗിക്കുന്ന പല ക്ലാസുകളും ഉപയോഗിച്ച് പ്രോഗ്രാമർമാർ സ്വന്തം തരം നിശ്ചയിക്കുന്നതിന് പൈത്തൺ അനുവദിക്കുന്നു. ക്ലാസിനെ വിളിക്കുന്നതിലൂടെ ക്ലാസുകളുടെ പുതിയ മാത‌ൃകൾ നിർമ്മിക്കപ്പെടുന്നു(ഉദാഹരണത്തിന്, SpamClass () അല്ലെങ്കിൽ EggsClass ()), ക്ലാസുകൾ മെറ്റാക്ലാസ് തരം (സ്വയം ഒരു ഉദാഹരണം) സംഭവിക്കുന്നു. മെറ്റാപ്രോഗ്രാമിംഗും പ്രതിഫലനവും സാധ്യമാക്കുന്നു.

പതിപ്പ് 3.0-ന് മുമ്പ്, പൈത്തണിന് രണ്ട് തരത്തിലുള്ള ക്ലാസുകളുണ്ടായിരുന്നു: പഴയ രീതിയും പുതിയ ശൈലിയും. രണ്ട് ശൈലികളുടെ വാക്യഘടനയും ഒരേ പോലെയാണ്, വ്യത്യാസം ക്ലാസ്objectനിന്ന് പാരസ്പര്യമുണ്ടോ, നേരിട്ടോ അല്ലെങ്കിൽ പരോക്ഷമായോ(എല്ലാ പുതിയ-ശൈലിക ക്ലാസുകൾക്കും മുതൽ പിൻതുടരുന്നുobjectഉംtypeഉം ഉത്തമ ദൃഷ്ടാന്തങ്ങളാണ്)പൈത്തൺ 2.2 ൽ നിന്നും പൈത്തൺ 2 പതിപ്പുകളിൽ, രണ്ട് തരം ക്ലാസുകളും ഉപയോഗിക്കാവുന്നതാണ്. പൈത്തൺ 3.0 ൽ പഴയ രീതിയിലുള്ള ക്ലാസുകൾ നീക്കം ചെയ്തു.

ക്രമാനുഗത ടൈപ്പിങിനുള്ള പിന്തുണയാണ് ദീർഘകാല പദ്ധതി കൂടാതെ പൈത്തൺ 3.5-ൽ നിന്നും, ഭാഷയുടെ വാക്യഘടന സ്റ്റാറ്റിക് തരങ്ങൾ വ്യക്തമാക്കുന്നതിന് അനുവദിക്കുന്നു, പക്ഷേ സഹജമായ നടപ്പിലാക്കൽ പ്രക്രിയയിൽ, സിപൈത്തണിൽ അവർ പരിശോധിക്കുന്നില്ല. ഒരു പരീക്ഷണാത്മക ഓപ്ഷണൽ സ്റ്റാറ്റിക്ക് ടൈപ്പ് ചെക്കർ മെപൈ(mypy) പിന്തുണയ്ക്കുന്ന കമ്പൈൽ ടൈം ടൈപ്പ് പരിശോധന നടത്തുന്നു.

Summary of Python 3's built-in types
Type mutable Description Syntax example
bool immutable Boolean value True
False
bytearray mutable Sequence of bytes bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
bytes immutable Sequence of bytes b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])
complex immutable Complex number with real and imaginary parts 3+2.7j
dict mutable Associative array (or dictionary) of key and value pairs; can contain mixed types (keys and values), keys must be a hashable type {'key1': 1.0, 3: False}
ellipsis An ellipsis placeholder to be used as an index in NumPy arrays ...
float immutable Floating point number, system-defined precision 3.1415927
frozenset immutable Unordered set, contains no duplicates; can contain mixed types, if hashable frozenset([4.0, 'string', True])
int immutable Integer of unlimited magnitude 42
list mutable List, can contain mixed types [4.0, 'string', True]
set mutable Unordered set, contains no duplicates; can contain mixed types, if hashable {4.0, 'string', True}
str immutable A character string: sequence of Unicode codepoints 'Wikipedia'
"Wikipedia"
"""Spanning
multiple
lines"""
tuple immutable Can contain mixed types (4.0, 'string', True)But we can append elements using __add__ .

a = (4.0, 'string' , True).__add__(('hi' ,))

now a gives (4.0, 'string', True ,'hi')

പൈത്തണിൽ സാധാരണ സി ക്രിയകൾ ആണ് ഉള്ളത്. (+,-, *, /,%). ഇത് മൂല്യനിർണ്ണയത്തിനായി ** ഉണ്ട്, ഉദാ: 5**3 == 125ഉം9**0.5 == 3.0, ഒരു പുതിയ മെട്രിക്സ് ഗുണനവും@പതിപ്പ് 3.5-ൽ ഓപ്പറേറ്റർ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഇതിനുപുറമെ, അത് ഒരു യുനറി (unary) ഓപ്പറേറ്ററാണ്(~), അതിന്റെ ഒരു വാദമുഖത്തിന്റെ എല്ലാ ബിറ്റുകളേ യും ഇത് മാറ്റിനിർത്തുന്നു. പൂർണ്ണസംഖ്യകൾക്കായി, ഇത് അർത്ഥ മാക്കുന്നത്~x=-x-1. മറ്റ് ഓപ്പറേറ്റർമാർ ബിറ്റ് വൈസ് ഷിഫ്റ്റ് ഓപ്പറേറ്റർമാരുമാണ്x << y, ഇത് മാറുന്നുxഇടത്തോട്ട് yപ്ലേയിസ്സ്, അതുപോലെx*(2**y) , ഉംx >> y ,ഇത് മാറുന്നുxവലത്തേക്ക്yപ്ലേയിസ്സ്, അതുപോലെ x/(2**y) . ഹരണ സ്വഭാവം കാലക്രമേണ മാറ്റിയിരിക്കുന്നു:

  • പൈത്തൺ 2.1 ഉം നേരത്തെ സി ഡിവിഷൻ രീതിയും ഉപയോഗിച്ചു. ഓപ്പറാൻഡ്സ് പൂർണ്ണമായും, അല്ലെങ്കിൽ ഫ്ലോട്ടിങ്-പോയിന്റ് ഡിവിഷൻ ആണെങ്കിൽ, / ഓപ്പറേറ്റർ, ഒരു പൂർണ്ണ ഹരണം ആണ്. ഇന്റിജർ ഡിവിഷൻ റൗണ്ടുകൾ 0, ഉദാ: 7/3 == 2ഉം-7/3 == -2.
  • പൈത്തൺ 2.2 നെ നെഗറ്റീവ് ഇൻഫിനിറ്റിലേക്ക് നീങ്ങുന്ന ഇന്റിജർ ഡിവിഷൻ മാറ്റുന്നു, ഉദാ: 7/3 == 2ഉം-7/3 == -3.ഫ്ലോർ ഡിവിഷൻ //ഓപ്പറേറ്റർ അവതരിപ്പിച്ചു. അങ്ങനെ 7//3 == 2, -7//3 == -3, 7.5//3 == 2.0ഉം-7.5//3 == -3.0. from __future__ import division ഇത് ഡിവിഷന് പൈത്തൺ 3.0 നിയമങ്ങൾ ഉപയോഗിക്കുന്നതിനായി ഒരു മൊഡ്യൂൾ ചേർക്കുന്നു (അടുത്തത് കാണുക).
  • പൈത്തൺ 3.0 എപ്പോഴും/ഫ്ലോട്ടിങ് പോയിന്റ് ഡിവിഷനുള്ളതായി മാറുന്നു. പൈത്തൺ പദങ്ങളിൽ, പ്രീ-3 / ക്ലാസിക്ക് ഡിവിഷൻ, പതിപ്പ് 3.0/ആണ് യഥാർത്ഥ ഡിവിഷൻ, //എന്നത് ഫ്ലോർ ഡിവിഷൻ ആണ്.

നെഗറ്റീവ് ഇൻഫിനിറ്റിക്കായി നീങ്ങുക, മിക്ക ഭാഷകൾക്കും വ്യത്യസ്തമാണെ ങ്കിലും, സ്ഥിരത വർദ്ധിപ്പിക്കുന്നു. ഉദാഹരണമായി, ഈ സമവാക്യം അർത്ഥമാക്കുന്നത്(a + b)//b == a//b + 1എപ്പോഴും ശരിയാണ് എന്നതാണ്. b*(a//b) + a%b == aഇതിനർത്ഥം ഈ സമവാക്യത്തിൽ aയുടെ പോസറ്റീവും നെഗറ്റീവുമായ മൂല്യങ്ങൾക്കുമാണ് സാധുതയുള്ളത്. എന്നിരുന്നാലും, ഈ സമവാക്യത്തിന്റെ സാധുത നിലനിർത്തുന്നതിന്a%bയുടെ ഫലമായി, അർദ്ധ-തുറന്ന ഇടവേളയിൽ [0, ബി), ഇവിടെ ബി അനുമാനമായ പൂർണ്ണസംഖ്യയാണ്, അത് b നെഗറ്റീവ് ആയെങ്കിൽ (ബി, 0) ഇടവേളയിൽ കിടക്കുന്നു.

അടുത്തുള്ള പൂർണ്ണസംഖ്യയിലേക്ക് ഫ്ലോട്ട് റൗണ്ടിംഗ് ചെയ്യുന്നതിനായി പൈത്തൺ ഒരു round ഫംഗ്ഷൻ നൽകുന്നു. ടൈ-ബ്രേക്കിങ്ങിനായുള്ള, 3 ന് മുമ്പുള്ള പതിപ്പുകൾ റൗണ്ട് എവേ ഫ്രം സീറോ(ഒരു നമ്പർ മറ്റ് രണ്ട് എണ്ണത്തിന്റെ പകുതിയാണെങ്കിൽ, അത് പൂജ്യത്തിൽ നിന്ന് ഏറ്റവും അടുത്തുള്ള നമ്പറിലേക്ക് റൗണ്ട് ചെയ്യും.)ഉപയോഗിക്കുന്നു:round(0.5)1.0 യിലേക്കും,round(-0.5)എന്നത്-1.0 ആയി പരിണമിക്കുന്നു. പൈത്തൺ 3 റൗണ്ട് ടു ഈവൻ(0.5 ന് അടുത്തുള്ള സംഖ്യയെ പൂർണ്ണസംഖ്യയാക്കുന്നു) ഉപയോഗിക്കുന്നു: round(1.5) 2 എന്ന പൂർണ്ണസംഖ്യയായി മാറുന്നു, round(2.5) ഇതും 2 ആയി റൗണ്ട് ചെയ്യുന്നു.

ഗണിതശാസ്ത്രത്തിൽ പൊതുവായ ഉപയോഗവുമായി പൊരുത്തപ്പെടുന്ന രീതിയിൽ, ഒന്നിലധികം സമത്വ ബന്ധങ്ങളുള്ള പൈത്തൺ ബൂളിയൻ എക്സ്പ്രഷനുകളെ അനുവദിക്കുന്നു. ഉദാഹരണമായി, പദപ്രയോഗംa < b < cപരിശോധിക്കുന്നുaനേക്കാൾ കുറവാണ്bഒപ്പംbയേക്കാൾ കുറവാണ്c. സി പ്രോഗ്രാമിംഗ് ഭാഷയിയിൽ ഉരുത്തിരിഞ്ഞ മറ്റ് ഭാഷകൾ ഈ പ്രയോഗത്തെ വ്യത്യസ്ത രീതിയിൽ വ്യാഖ്യാനിക്കുന്നു:സിയിൽ, ആദ്യം മൂല്യനിർണ്ണയം നൽകുകയുംa < bപരിണതഫലം 0 അല്ലെങ്കിൽ 1 ആയിരിക്കുകയും ആ ഫലം സിയിലേക്ക് താരതമ്യപ്പെടുത്തുകയും ചെയ്യും. പൈത്തൺ ആർബിട്രറി പ്രിസിഷൻ ഗണിതത്തിനുള്ള വിപുലമായ ബിൽട്ട്-ഇൻ പിന്തുണയുണ്ട്. പൈത്തൺ തരം അനുസരിച്ചുള്ള മെഷീൻ പിന്തുണയുള്ള പരമാവധി നിശ്ചിത കൃത്യതയിൽ നിന്ന് (സാധാരണയായി 32 അല്ലെങ്കിൽ 64 ബിറ്റുകൾ) നിന്ന് സുതാര്യമായി സ്വിച്ചുചെയ്യുന്നു. പൈത്തൺ ടൈപ്പ് intന്റെ ഉടമസ്ഥത, ആവശ്യമുള്ളിടത്ത്longന്റെ പൈത്തൺ തരം, ആർബിട്ടറി പ്രിസിഷൻ എന്നിവ ഉണ്ട്. അവരുടെ ലിഖിതമായ പ്രാതിനിധ്യത്തിൽ "എൽ" എന്ന അവസാന വിശേഷണപദം ഉണ്ട്. (പൈത്തൺ 3 ൽ int, long തമ്മിലുള്ള വ്യത്യാസം ഇല്ലാതാക്കി, ഈ സ്വഭാവം ഇപ്പോൾ int-ക്ലാസിൽ ഉൾക്കൊള്ളുന്നു.) decimalലെ ഘടകം, decimal ടൈപ്പ് / ക്ലാസ് (പതിപ്പ് 2.4 മുതൽ) ദശാംശ ഫ്ലോട്ടിംഗ് പോയിന്റ് സംഖ്യകളെ ഏകപക്ഷീയ കൃത്യതയും നിരവധി റൗണ്ടിങ്ങ് രീതികളും നൽകുന്നു. fractionന്റെ fractionതരം (പതിപ്പ് 2.6 മുതൽ) റാഷണൽ സംഖ്യകൾക്കായി അനിയന്ത്രിതമായ കൃത്യത നൽകുന്നു.

പൈത്തണിന്റെ വിപുലമായ ഗണിത ലൈബ്രറിയും മൂന്നാം-ലൈബ്രറി ലൈബ്രറിയും ആയ നംപൈ(NumPy), തദ്ദേശീയ കഴിവുകളെ കൂടുതൽ വിപുലീകരിക്കുന്നു, ഇത് സംഖ്യാശാസ്ത്രപരമായ ഡാറ്റ പ്രവർത്തനക്രമീകരണം, കൃത്രിമത്വം എന്നിവ പോലുള്ള പ്രശ്നങ്ങൾക്ക് ശാസ്ത്രീയമായ ഭാഷയാണ് ഉപയോഗിക്കുന്നത്.

ലൈബ്രറികൾ

തിരുത്തുക

പൈത്തണിലെ വലിയ സ്റ്റാൻഡേർഡ് ലൈബ്രറി, അതിന്റെ ഏറ്റവും വലിയ ശക്തികളിൽ ഒന്നായി പരാമർശിക്കപ്പെടുന്നു, പല ജോലികൾക്കും ഉതകുന്ന ഉപകരണങ്ങളും നൽകുന്നു. ഇന്റർനെറ്റ്-അധിഷ്ഠിത അപ്ലിക്കേഷനുകൾക്ക്, എംഐഎംഈ(MIME), എച്ച്ടിടിപി(HTTP)പോലുള്ള നിരവധി സാധാരണ ഫോർമാറ്റുകൾക്കും പ്രോട്ടോക്കോളുകൾക്കും പിന്തുണ ലഭ്യമാണ്. ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഘടനകൾ, ബന്ധുത്വ ഡാറ്റാബേസുകളുമായി ബന്ധിപ്പിക്കുകയും, സ്യൂഡോറാൻഡം നമ്പറുകൾ ജനറേറ്റുചെയ്യുന്നു, ഏകപക്ഷീയമായ സൂക്ഷ്മ ഡെസിമലുകൾ ഉപയോഗിച്ച് ഗണിതക്രിയകൾ, റെഗുലർ എക്സ്പ്രഷനുകൾ, കൃത്രിമത്വം, യൂണിറ്റ് പരീക്ഷണം എന്നിവ ഉൾപ്പെടുത്തിയിരിക്കുന്നു.

സാധാരണ ലൈബ്രറിയുടെ ചില ഭാഗങ്ങൾ പ്രത്യേക നിർദ്ദേശങ്ങളാണ് ഉൾക്കൊള്ളുന്നത് (ഉദാഹരണത്തിന്, വെബ് സെർവർ ഗേറ്റ് വേ ഇന്റർഫേസ് (WSGI) wsgirefനടപ്പിലാക്കുകയും, പിഇപി333(PEP333)നെ പിന്തുടരുകയും ചെയ്യുന്നു), എന്നാൽ മിക്ക മൊഡ്യൂളുകളും ഇല്ല. അവരുടെ തന്നെ കോഡ്, ആന്തരിക ഡോക്യുമെന്റേഷൻ, ടെസ്റ്റ് സ്യൂട്ടുകൾ (വിതരണം ചെയ്തിട്ടുണ്ടെങ്കിൽ) എന്നിവയാൽ നിർദ്ദേശിക്കപ്പെടുന്നു. എന്നിരുന്നാലും, മിക്ക ലൈബ്രറിയും ക്രോസ് പ്ലാറ്റ്ഫോം പൈത്തൺ കോഡാണ് എന്നതിനാൽ, ചില മൊഡ്യൂളുകൾക്ക് മാത്രം മാറ്റം വരുത്തുകയോ അല്ലെങ്കിൽ തിരുത്തലോ ആവശ്യമാണ്.

മാർച്ച് 2018 ലെ കണക്കുപ്രകാരം പൈത്തൺ പാക്കേജ് സൂചിക (PyPI), മൂന്നാം കക്ഷി പൈത്തൺ സോഫ്റ്റ് വെയർ ഔദ്യോഗിക റിപ്പോസിറ്ററി, 130,000 ലധികം വരുന്ന പലതരം പ്രവർത്തനരീതികളുള്ള പാക്കേജുകൾ ഉൾപ്പെടെ അടങ്ങിയിരിക്കുന്നു:

  • ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകൾ
  • വെബ് ചട്ടക്കൂടുകൾ
  • മൾട്ടിമീഡിയ
  • ഡാറ്റബേസുകൾ
  • നെറ്റ് വർക്കിംഗ്
  • പരീക്ഷണ ചട്ടക്കൂടുകൾ
  • യന്ത്രവൽക്കരണം
  • വെബ് സ്ക്രാപ്പിംഗ്
  • ആധാരരേഖളും പ്രമാണഗ്രന്ഥങ്ങളും ശേഖരിച്ച്‌ ഉപയോഗപ്പെടുത്തൽ
  • സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ
  • ശാസ്ത്രീയ കമ്പ്യൂട്ടിംഗ്
  • ടെക്സ്റ്റ് പ്രോസസ്സിംഗ്(ടെക്സ്റ്റിന്റെ കൃത്രിമം, പ്രത്യേകിച്ച് ഫോർമാറ്റിൽ നിന്ന് മറ്റൊരു ഫോർമാറ്റിലേക്ക് മാറ്റൽ.)
  • ചിത്ര പ്രക്രിയകൾ

വികസന പരിതഃസ്ഥിതികൾ

തിരുത്തുക

മിക്ക പൈത്തൺ ആവർത്തനങ്ങളും (CPython ഉൾപ്പെടെ) ഒരു റീഡ്-ഇവൽ പ്രിന്റ് ലൂപ് (REPL) ഉൾക്കൊള്ളുന്നു, അവ കമാൻഡ് ലൈൻ ഇന്റർപ്രെട്ടർ ആയി പ്രവർത്തിക്കാൻ അനുവദിക്കുകയും ഉപയോക്താവിന് സ്റ്റേറ്റ്മെന്റിനെ ക്രമാനുഗതമായി സമീപിക്കുകയും ഫലങ്ങൾ ഉടൻ ലഭിക്കുകയും ചെയ്യുന്നു.

ഐഡിഎൽഇ(IDLE), ഐപൈത്തൺ(IPython) എന്നിവയടക്കമുള്ള മറ്റ് ഷെല്ലുകൾ, സ്വയം പൂർത്തിയാക്കൽ, സെഷൻ സ്റ്റേറ്റ് നിലനിർത്തൽ, സിന്റാക്സ് ഹൈലൈറ്റ് എന്നിവ പോലുള്ള കൂടുതൽ കഴിവുകൾ ചേർക്കുക.

സ്റ്റാൻഡേർഡ് ഡെസ്ക് ടോപ്പ് ഇന്റഗ്രേറ്റഡ് ഡെവലപ്മെന്റ് എൻവിറോൺ മെന്റുകളും (വിക്കിപീഡിയയുടെ "പൈത്തൺ ഐഡിഇ" ലേഖനം കാണുക), വെബ് ബ്രൗസറധിഷ്ഠിത ഐഡിഇകൾ ഉണ്ട്; സേജ്മാത്ത്(SageMath) (ശാസ്ത്രവും ഗണിതവും ബന്ധപ്പെട്ട പൈത്തൺ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നതിന് ഉദ്ദേശിച്ചുള്ളതാണ്); ഒരു ബ്രൌസർ-അടിസ്ഥാനത്തിലുള്ള ഐഡിയും ഹോസ്റ്റിങ് അന്തരീക്ഷവും ഉണ്ട്; ശാസ്ത്രീയ കമ്പ്യൂട്ടിംഗിനെ ഊന്നിപ്പറയുന്ന ഒരു വാണിജ്യാടിസ്ഥാനത്തിലുള്ള പൈത്തൺ ഐഡിഇ ആണ് കാനോപ്പി ഐഡിഇ(Canopy IDE).

നടപ്പിലാക്കൽ

തിരുത്തുക

അവലംബം നടപ്പിലാക്കൽ

തിരുത്തുക

സിപൈത്തൺ(CPython)പൈത്തൺ പ്രോഗാമിന്റെ അവലംബം നടപ്പിലാക്കൽ പക്രിയ ആണ്. ഇത് സിയിൽ എഴുതിയിരിക്കുന്നതും,നിരവധി തിരഞ്ഞെടുപ്പുകൾ നടത്തുകയും, C99 ഫീച്ചറുകളുള്ള C89 മാനദണ്ഡം പാലിക്കുകയും ചെയ്യുന്നു. പൈത്തൺ പ്രോഗ്രാമുകളെ മധ്യവർത്തി ബൈറ്റ്കോഡായി സമാഹരിക്കുകയും, അത് അയഥാർത്ഥ യന്ത്രത്തിൽ(Virtual Machine) നടപ്പാക്കപ്പെടുന്നു. സിയുടെയും തനത് പൈത്തണിന്റെയും മിശ്രിതത്തിൽ എഴുതപ്പെട്ട വലിയ ഒരു ലൈബ്രറിയുമായാണ് സിപൈത്തൺ വിതരണം ചെയ്തിരിക്കുന്നത്. പല പ്ലാറ്റ്ഫോമുകളിലും, വിൻഡോസ് ഉൾപ്പെടെ ഏറ്റവും പുതിയ യുണിക്സ് പോലെയുള്ള സിസ്റ്റങ്ങളിലും ഇത് ലഭ്യമാണ്. വേദികളുടെ വഹനീയത(Platform portability) അതിന്റെ ആദ്യകാല മുൻഗണനകളിൽ ഒന്നായിരുന്നു.

മറ്റ് നടപ്പാക്കലുകൾ

തിരുത്തുക

പൈത്തൺ 2.7, 3.5 എന്നിവയുടെ വേഗത്തിലുള്ളതും പൊരുത്തമുള്ളതുമായ തർജ്ജമയാണ് പൈപൈ(PyPy). സിപൈത്തൺ ഉപയോഗിച്ചുള്ള വേഗതയേറിയ സ്പീഡ് മെച്ചപ്പെടുത്തൽ അതിന്റെ നീതി സമയ(Just-in-time) കമ്പൈലർ നൽകുന്നു. സിപൈത്തണിന്റെ ഒരു പ്രധാന വ്യുൽപ്പന്നമായി സ്റ്റാക്ക്ലസ് പൈത്തൺ പ്രവർത്തിക്കുന്നു. ഇത് സി മെമ്മറി സ്റ്റാക്ക് ഉപയോഗിക്കുന്നില്ല, അങ്ങനെ അതുല്യമായ പ്രോഗ്രാമുകൾ അനുവദിക്കുന്നു. പിവൈപിവൈയിൽ സ്റ്റേക്ക്ലെസ് പതിപ്പ് ഉണ്ട്.

മൈക്രോകൺട്രോളറുകളിൽ ഒപ്ടിമൈസ് അടിസ്ഥാനമാക്കിയുള്ള പൈത്തൺ 3 വേരിയന്റാണ് മൈക്രോ പൈത്തൺ.

പിന്തുണയ്ക്കാത്ത പ്രവർത്തനങ്ങൾ

തിരുത്തുക

മറ്റ് ജസ്റ്റ്-ഇൻ-ടൈം പൈത്തൺ കംപൈലറുകൾ വികസിപ്പിച്ചു, എന്നാൽ ഇപ്പോൾ പിന്തുണ ലഭ്യമല്ല:

  • 2009-ൽ അൺലാഡെൻ സ്വാളോ(Unladen Swallow) എന്ന പേരിൽ ഒരു പദ്ധതി ഗൂഗിൾ ആരംഭിച്ചു. എൽഎൽവിഎം ഉപയോഗിച്ചു് പൈത്തൺ ഇന്റർപ്രെട്ടർ അഞ്ച് ഇരട്ടി വേഗത വർദ്ധിപ്പിക്കാനും, ആയിരക്കണക്കിന് കോർ സ്കെയിലുകൾ ഉണ്ടാക്കുന്നതിനുള്ള മൾട്ടിടൈസ് സംവിധാനം മെച്ചപ്പെടുത്താനുമുള്ള ലക്ഷ്യം ഗൂഗിൾ ആരംഭിച്ചു.
  • സിപൈത്തണുമായി സംയോജിപ്പിച്ച്, ബൈറ്റ്കോഡ്, മെഷീൻ കോഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ പ്രവർത്തിപ്പിക്കുന്ന ഒരു ജസ്റ്റ്-ഇൻ-ടൈം സ്പെസിജിംഗ് കംപൈലറാണ് സൈക്കോ. നിർഗ്ഗളിച്ച കോഡ് ചില ഡാറ്റാ തരങ്ങൾക്ക് പ്രത്യേകവും പൈത്തൺ കോഡിനേക്കാൾ വേഗമേറിയതുമാണ്.

2005-ൽ, സീരീസ് 60 മൊബൈൽ ഫോണുകൾക്കായി പിവൈഎസ്60(PyS60), നോക്കിയ ഒരു പൈത്തൺ ഇന്റർപ്രെട്ടർ പുറത്തിറക്കി. സിംബിയൻ ഓപ്പറേറ്റിങ് സിസ്റ്റവുമായി സമന്വയിപ്പിക്കുന്നതിനായി സിപൈത്തൺ നടപ്പാക്കലുകളിൽ നിന്നുള്ള ചില ഘടകങ്ങളും ചില അധിക ഘടകങ്ങളും ഉൾപ്പെടുന്നു. എസ്60 പ്ലാറ്റ്ഫോമിന്റെ എല്ലാ വകഭേദങ്ങളും പ്രവർത്തിപ്പിക്കാൻ ഈ പദ്ധതി കാലികമായിട്ടുള്ളതാണ്, കൂടാതെ നിരവധി മൂന്നാം-കക്ഷി മൊഡ്യൂളുകൾ ലഭ്യമാണ്. ജിടികെ വിഡ്ജറ്റ് ലൈബ്രറികളോടൊപ്പം പൈത്തണിലും നോക്കിയ എൻ900 പിന്തുണക്കുന്നു, പ്രോഗ്രാമുകൾ തയ്യാറാക്കാനും ലക്ഷ്യമാക്കിയിട്ടുള്ള ഉപകരണത്തിൽ പ്രവർത്തിപ്പിക്കാനും ഇത് സഹായിക്കുന്നു.

മറ്റ് ഭാഷകളിലെ ക്രോസ്-കമ്പൈലറുകൾ

തിരുത്തുക

ഉയർന്ന നിലവാരത്തിലുള്ള ഒബ്ജക്ട് ഭാഷകൾക്ക് നിരവധി കംപൈലറുകൾ ഉണ്ട്, നിയന്ത്രണമില്ലാത്ത പൈത്തണിനൊപ്പം, പൈത്തണിൽ ഒരു നിയന്ത്രിത ഉപസെറ്റ്, അല്ലെങ്കിൽ പൈത്തൺ പോലുളള ഭാഷ ഉറവിട ഭാഷയായി ഉപയോഗിക്കുന്നു:

  • ജൈത്തൺ ജാവ ബൈറ്റ് കോഡായി കംപൈൽ ചെയ്യുന്നു, ഓരോ ജാവ അയഥാർത്ഥ യന്ത്രത്തിൽ (virtual machine) നടപ്പിലാക്കിലൂടെയും ഇത് നടപ്പിലാക്കാം. പൈത്തൺ പ്രോഗ്രാമിൽ നിന്നും ജാവ ക്ലാസ് ലൈബ്രറിയുടെ പ്രവർത്തനങ്ങളും ഇത് പ്രവർത്തന സജ്ജമാക്കുന്നു.
  • .നെറ്റ്(.NET)പൊതു ഭാഷാ റൺടൈമിലെ പൈത്തൺ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് അയൺ പൈത്തൺ സമാനമായ രീതി പിന്തുടരുന്നു.
  • ആർപൈത്തൺ ഭാഷ സി, ജാവ ബൈറ്റ്കോഡ്, അല്ലെങ്കിൽ പൊതു മധ്യവർത്തി ഭാഷ എന്നിവയിൽ കംപൈൽ ചെയ്യാവുന്നതാണ്, കൂടാതെ പൈത്തണിന്റെ പൈപൈ(PyPy) ഇന്റർപ്രെട്ടർ നിർമ്മിക്കാൻ ഇത് ഉപയോഗിക്കാൻ കഴിയും.
  • പൈജെഎസ്(Pyjs) ജാവാസ്ക്രിപ്റ്റിൽ നിന്ന് യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.
  • സിപൈത്തൺ സി, സി++ എന്നിവയിലൂടെ യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.
  • പൈത്രാനിൽ(Pythran) പൈത്തണിൽ നിന്ന് സി ++ യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.
  • പൈറെക്സ്(Pyrex)(2010 ലെ ഏറ്റവും പുതിയ റിലീസ്), ഷെഡ് സ്കിൻ (2013-ൽ ഏറ്റവും പുതിയ റിലീസ്) യഥാക്രമം സിയും സി++ ഉം യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.
  • ഗൂഗിളിന്റെ ഗ്രമ്പി ഗോ (Grumpy Go) പൈത്തണിൽ നിന്ന് ഗോയിലേക്ക്(Go) യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.
  • ന്യൂയിറ്റിക്ക(Nuitka)പൈത്തണെ സി++മായി കൂട്ടിചേർത്ത് യാന്ത്രിക ഗൂഡഭാഷയിലേക്ക് കമ്പ്യൂട്ടർ പ്രോഗ്രാം മാറ്റുന്നു.

പ്രകടനം

തിരുത്തുക

യൂറോസൈപൈ(EuroSciPy'13)13 ൽ അവതരിപ്പിച്ച സംഖ്യകളല്ലാത്ത(കോമ്പിനേറ്റർ) ദേഹണ്ഡ വിഹിതത്തിൽ(workload) വിവിധ പൈത്തൺ ആന്തരഘടനകളുടെ പ്രകടന താരതമ്യം നടത്തുന്നു.

പൈത്തൺ എൻഹാൻസ്മെന്റ് പ്രൊപ്പോസൽ (പിഇപി) പ്രക്രിയയിലൂടെ പൈത്തണുകളുടെ വികസനം പ്രധാനമായും, പുതിയ പ്രധാന സവിശേഷതകളെ നിർദ്ദേശിക്കുന്നതിനുള്ള പ്രാഥമിക സംവിധാനം, പ്രശ്നങ്ങൾക്ക് കമ്മ്യൂണിറ്റി ഇൻപുട്ട് ശേഖരണം, പൈത്തൺ ഡിസൈൻ തീരുമാനങ്ങൾ എന്നിവ രേഖപ്പെ ടുത്തുന്നു. മികച്ച പിഇപികൾ അവലോകനം ചെയ്ത് അഭിപ്രായമിടുകയും ചെയ്യുന്നത്, പൈത്തൺ കമ്മ്യൂണിറ്റിയും പൈത്തണിലെ ബെനവലന്റ് ഡിക്റ്റേറ്റർ ഫോർ ലൈഫ് എന്നറിയപ്പെടുന്ന ഗൈഡോ വാൻ റോസ്സമും ആണ്.

സിപൈത്തൺ റഫറൻസ് നടപ്പിലാക്കലിന്റെ വികസനം ഭാഷയെ മെച്ചപ്പെടുത്തുന്നു. മെയിലിംഗ് ലിസ്റ്റ് പൈത്തൺ-ദേവാണ് ഭാഷയുടെ വികസനത്തിന്റെ പ്രാഥമിക ഫോറം. പൈത്തൺ.ഓർഗ്ഗി(Python.org)-ൽ സൂക്ഷിച്ചിട്ടുള്ള റൗണ്ട് അപ്പ് ബഗ് ട്രാക്കറിൽ പ്രത്യേക പ്രശ്നങ്ങളെക്കുറിച്ച് ചർച്ച ചെയ്യുന്നു. 2017 ജനുവരിയിൽ പൈത്തൺ ഗിത്ബ്ബിലേക്ക് മാറുന്നതുവരെ സ്വയം വികസിപ്പിച്ച സോഴ്സ് കോഡ് റിപോസിറ്ററി മെർക്കുറിയൽ എന്ന നിലയിലാണ് വികസനം നടന്നത്.

സിപൈത്തണിന്റെ പൊതു റിലീസുകൾ മൂന്നു തരത്തിലാണ് വരുന്നത്, പതിപ്പ് നമ്പറിന്റെ ഏത് ഭാഗത്തെ വേർതിരിക്കുന്നു എന്നത്:

  • പിന്നോട്ട്-അനുയോജ്യമല്ലാത്ത പതിപ്പുകൾ, കോഡ് ബ്രേക്ക് ചെയ്യുമ്പോൾ, അത് മാനുവലായി പോർട്ട് ചെയ്യേണ്ടതാണ്. പതിപ്പ് നമ്പറിന്റെ ആദ്യ ഭാഗം വർദ്ധിപ്പിക്കും. ഈ പതിപ്പുകൾ അപൂർവ്വമായി സംഭവിക്കാറുണ്ട് - ഉദാഹരണത്തിന്, പതിപ്പ് 2.0 ഇറങ്ങി 8 വർഷങ്ങൾക്ക് ശേഷമാണ് പതിപ്പ് 3.0 പുറത്തിറങ്ങിയത്.
  • ഓരോ 18 മാസത്തിലും പ്രധാനപ്പട്ടത് അല്ലെങ്കിൽ "ഫീച്ചർ" റിലീസുകൾ, കൂടുതലും അനുയോജ്യമാണ്, പക്ഷേ പുതിയ സവിശേഷതകൾ പരിചയപ്പെടുത്തുന്നു. പതിപ്പ് നമ്പറിന്റെ രണ്ടാം ഭാഗം വർദ്ധിപ്പിക്കും. ഓരോ പ്രധാന പതിപ്പും റിലീസ് ചെയ്തതിന് ശേഷമുള്ള ഏതാനും വർഷങ്ങൾ കൂടി ബഗ്ഫിക്സുകൾ പിന്തുണയ്ക്കുന്നു.
  • ബഗ്ഫിക്സ് റിലീസ്, പുതിയ സവിശേഷതകളൊന്നും പരിചയപ്പെടുത്താതെ, എല്ലാ 3 മാസങ്ങളിലും റിലീസുകൾ ഉണ്ടാകാം, ബാക്കിയുള്ള ബഗ്ഗുകൾ കഴിഞ്ഞ റിലീസിനു ശേഷം അപ്സ്ട്രീമിൽ പരിഹരിച്ചിരിക്കുന്നു. സെക്യൂരിറ്റി പ്രശ്നങ്ങളും ഈ റിലീസുകളിൽ പാച്ച് ചെയ്തിട്ടുണ്ട്. പതിപ്പ് നമ്പറിന്റെ മൂന്നാമത്തേയും അവസാനത്തേയും ഭാഗം വർദ്ധിപ്പിക്കും.

നിരവധി ആൽഫ, ബീറ്റാ, റിലീസ് സ്ഥാനാർത്ഥികൾ എന്നിവ പ്രിവ്യൂകളായി പുറത്തിറങ്ങിയിട്ടുണ്ട്, അന്തിമ റിലീസുകൾക്ക് മുമ്പായി പരീക്ഷണങ്ങൾ നടത്തുന്നു. ഓരോ റിലീസിനും ഒരു പരുക്കൻ ഷെഡ്യൂൾ ഉണ്ടെങ്കിലും, കോഡ് തയ്യാറാകാത്ത പക്ഷം അവ പലപ്പോഴും വൈകുകയാണ്. വികസന സമയത്ത് വലിയ യൂണിറ്റ് ടെസ്റ്റ് സ്യൂട്ട് പ്രവർത്തിപ്പിച്ചും, ബിൽഡ്ബോട്ട്(BuildBot) എന്ന തുടർച്ചയായ സംയോജിത സംവിധാനവും ഉപയോഗിച്ച് പൈത്തണിന്റെ വികസന ടീം കോഡുകളുടെ അവസ്ഥ നിരീക്ഷിക്കുന്നു.

പൈത്തൺ ഡെവലപ്പർമാരുടെ സമൂഹം, പൈത്തൺ പാക്കേജ് ഇൻഡക്സ് (പൈപിഐ), മൂന്നാം കക്ഷി പൈത്തൺ ലൈബ്രറികളുടെ ഔദ്യോഗിക ശേഖരം, 86,000 സോഫ്റ്റ് വെയർ ഘടകങ്ങൾ (2016 ഓഗസ്റ്റ് 20 വരെ) സംഭാവന ചെയ്തിട്ടുണ്ട്.

പൈത്തണിലെ പ്രധാന അക്കാദമിക് സമ്മേളനം പൈക്കോൺ(PyCon)ആണ്. പ്രത്യേക പൈത്തൺ മാർഗ്ഗനിർദ്ദേശ പ്രോഗ്രാമുകൾ ഉണ്ട്, പൈലേഡീസ്(Pyladies) പോലുള്ളവ.

നാമകരണം

തിരുത്തുക

പൈത്തൺ എന്ന പേര് ലഭിച്ചത് ബ്രിട്ടീഷ് കോമഡി ഗ്രൂപ്പായ മോണ്ടി പൈത്തണിൽ നിന്നാണ്, പൈത്തൺ സ്രഷ്ടാവ് ഗൈഡോ വാൻ റോസ്സം ഭാഷ വികസിപ്പിക്കുന്ന വേളയിൽ വളരെയധികം ആസ്വദിച്ചു. പൈത്തൺ കോഡിലും സംസ്ക്കാരത്തിലും മോണ്ടി പൈത്തൺ റെഫറൻസുകൾ പതിവായി കാണപ്പെടുന്നു; ഉദാഹരണമായി പൈത്തൺ സാഹിത്യത്തിൽ ഉപയോഗിക്കപ്പെടുന്ന മെറ്റസ്സിന്റക്റ്റിക് വേരിയബിൾസ് പരമ്പരാഗത ഫൂ ആന്റ് ബാറിന്(foo and bar)പകരം സ്പാമും മുട്ടകളുമാണ്. ഔദ്യോഗിക പൈത്തൺ ഡോക്യുമെന്റേഷനിൽ മോണ്ടി പൈത്തൺ പ്രോഗ്രാമുകളെക്കുറിച്ചുള്ള നിരവധി പരാമർശങ്ങളും ഉൾക്കൊള്ളുന്നു.

പൈത്തണുമായുള്ള ബന്ധത്തെ കാണിക്കുന്നതിന് ഉപസർഗ്ഗമായി(prefix) പൈ(Py)ഉപയോഗിക്കുന്നു. പൈത്തൺ പ്രയോഗങ്ങൾ അല്ലെങ്കിൽ ലൈബ്രറികളുടെ പേരുകളിൽ ഈ ഉപസർഗ്ഗ ഉപയോഗത്തിന്റെ ഉദാഹരണങ്ങളിൽ പൈഗെയിം ഉൾപ്പെടുന്നു, പൈത്തണിന് എസ്ഡിഎലുമായുള്ള(SDL)ഒരു ബന്ധം(സാധാരണയായി ഗെയിമുകൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നു); ക്യൂട്ടി, ജിടികെ എന്നിവയെ യഥാക്രമം പൈത്തണിലേയ്ക്ക് കൊണ്ടുവരാനുള്ള പൈക്യൂട്ടി(PyQt), പൈജിടികെ (PyGTK) മുതലയാവ ഉപയോഗപ്പെടുത്തുന്നു; പൈത്തൺ നടപ്പിലാക്കുന്ന പൈപൈ (PyPy) യഥാർത്ഥത്തിൽ പൈത്തണിലാണ് എഴുതപ്പെട്ടത്.

ഉപയോഗങ്ങൾ

തിരുത്തുക

2003 മുതൽ, ടിഐബിഇ(TIOBE) പ്രോഗ്രാമിംഗ് കമ്യൂണിറ്റി ഇൻഡക്സിൽ ഏറ്റവും ജനകീയമായ പത്ത് പ്രോഗ്രാമിങ് ഭാഷകളിൽ സ്ഥിരമായി സ്ഥാനം പിടിച്ചിട്ടുണ്ട്, 2018 ജനുവരി വരെ, ഇത് നാലാമത്തെ ഏറ്റവും പ്രചാരമുള്ള ഭാഷയാണ് (ജാവ, സി, സി ++ എന്നിവയ്ക്ക് പിന്നിലായി). 2007 ലും 2010 ലും പ്രോഗ്രാമിംഗ് ലാങ്വവേജ് ഓഫ് ദി ഇയർ ആയി തിരഞ്ഞെടുക്കപ്പെട്ടു.

സി, ജാവ എന്നിവ പോലുള്ള പരമ്പരാഗത ഭാഷകളെക്കാൾ പൈത്തൺ പോലെയുള്ള സ്ക്രിപ്റ്റിംഗ് ഭാഷകൾ കൂടുതൽ ഉത്പാദനക്ഷമതയുള്ളതാണെന്ന് ഒരു പഠനത്തിൽ കണ്ടെത്തിയിരുന്നു. സ്ട്രിംഗ് മാനിപുലേഷനും നിഘണ്ടുവിൽ തിരയുന്ന പ്രോഗ്രാമിങ് പ്രശ്നങ്ങളും, കൂടാതെ മെമ്മറി ഉപഭോഗവും "ജാവയെക്കാൾ മികച്ചതും സി അല്ലെങ്കിൽ സി ++ നെ വച്ച് നോക്കുമ്പോൾ അത്ര മോശവുമല്ല" എന്ന് നിർണ്ണയിക്കുകയും ചെയ്തു.

വിക്കിപീഡിയ, ഗൂഗിൾ, യാഹൂ!, സേൺ(CERN), നാസ, ഫെയ്സ്ബുക്ക്, ആമസോൺ, ഇൻസ്റ്റാഗ്രാം, സ്പോട്ടിഫൈ മുതലായ വലിയ സ്ഥാപനങ്ങളും, ഐഎൽഎം, ഐടിഎ തുടങ്ങിയ ചെറു സ്ഥാപനങ്ങളും പൈത്തൺ ഉപയോഗിക്കുന്നു. സോഷ്യൽ ന്യൂസ് നെറ്റ് വർക്കിംഗ് സൈറ്റ് ആയ റെഡ്ഡിറ്റ് പൂർണ്ണമായും പൈത്തണിലാണ് എഴുതിയിരിക്കുന്നത്.

വെബ് ആപ്ലിക്കേഷനുകൾക്കായി പൈത്തൺ സ്ക്രിപ്റ്റിങ് ഭാഷയായി ഉപയോഗിക്കാനാകും, ഉദാഹരണത്തിന്, അപ്പാച്ചെ വെബ് സെർവറിനു വേണ്ടി mod_wsgi വഴി. വെബ് സെർവർ ഗേറ്റ് വേ ഇൻർഫേസ് ഉപയോഗിച്ച്, ഈ അപ്ലിക്കേഷനുകൾ സുഗമമാക്കുന്നതിന് ഒരു സാധാരണ എപിഐ(API) വികസിച്ചിട്ടുണ്ട്. വെബ് ചട്ടക്കൂടുകളായ ഡജാംഗോ, പൈലോൺസ്, പിരമിഡ്, ടർബോ ഗിയേഴ്സ്, വെബ് 2 പൈ, ടോർണോഡൊ, ഫ്ലാസ്ക്, ബോട്ടിൽ, സോപ്പ് തുടങ്ങിയ സങ്കീർണ്ണമായ പ്രയോഗങ്ങളെ രൂപകൽപ്പന ചെയ്യുന്നതിനും പരിപാലിക്കുന്നതിലും ഡവലപ്പർമാരെ പിന്തുണയ്ക്കുന്നു. അജാക്സ് അടിസ്ഥാനത്തിലുള്ള പ്രയോഗങ്ങളുടെ ക്ലയന്റ് സൈഡ് വികസിപ്പിക്കാൻ പൈജെഎസും അയൺപൈത്തണും(IronPython)ഉപയോഗിക്കാവുന്നതാണ്. എസ്ക്യൂഎൽആൽക്കെമി ഒരു റിലേഷണൽ ഡാറ്റാബേസിന് ഡാറ്റാ മാപ്പർ ആയി ഉപയോഗിക്കാവുന്നതാണ്. കമ്പ്യൂട്ടറുകൾക്കിടയിൽ പ്രോഗ്രാമിൽ ആശയവിനിമയത്തിനുള്ള ഒരു ചട്ടക്കൂടാണ് ട്വിസ്റ്റഡ്. ഡ്രോപ്പ്ബോക്സും (ഉദാഹരണം) ഉപയോഗിക്കുന്നു.

നംപൈ(NumPy), സൈപൈ(SciPy), മാറ്റ് ലോട്ട്ലിബ്(Matplotlib) തുടങ്ങിയ ലൈബ്രറികൾ ശാസ്ത്രീയ കമ്പ്യൂട്ടിംഗിൽ പൈത്തണിന്റെ ഫലപ്രദമായ ഉപയോഗം അനുവദിക്കുന്നു, ഡൊമൈൻ-നിർദ്ദിഷ്ട പ്രവർത്തനം നൽകുന്ന ബൈയോപൈത്തൺ, അസ്ട്രോപ്പി തുടങ്ങിയ പ്രത്യേക ലൈബ്രറികളുമുണ്ട്. പൈത്തണിൽ ഒരു "നോട്ട്ബുക്ക്" പ്രോഗ്രാമബിൾ ഉള്ള ഗണിത സോഫ്റ്റ് വെയറാണ് സേജ്മാത്ത്. ലൈബ്രറി, ഗണിതശാസ്ത്രത്തിലെ നിരവധി വശങ്ങൾ ഉൾക്കൊള്ളുന്നു, ബീജഗണിതം, കോമ്പിനേറ്ററികൾ, സംഖ്യാ ഗണിതം, സംഖ്യാ സിദ്ധാന്തം, കൽക്കുലസ്. ജാവ പ്ലാറ്റ്ഫോമിൽ പൈത്തൺ ഭാഷ വീണ്ടും നടപ്പിലാക്കിയതാണ്, ഇത് ഡിമെൽറ്റ് പ്രോജക്ടിന്റെ 2 ഡി / 3 ഡി തുടങ്ങിയ ദ്യശ്യചിത്രീകരണത്തോടു കൂടിയ സാംഖിക കണക്കുകൾക്കായി ഉപയോഗിക്കുന്നു.

പല സോഫ്റ്റ് വെയർ ഉൽപന്നങ്ങളിലും പൈത്തൺ വിജയകരമായി ഒരു സ്ക്രിപ്പിറ്റിംഗ് ഭാഷയായി ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, 3 ഡിഎസ് മാക്സ്, ബ്ലെൻഡർ, സിനിമാ 4 ഡി, ലൈറ്റ് വേവ്, ഹൗഡിനി, മായ, മോഡോ, മോഷൻബിൽഡർ, സോഫ്റ്റിമെജ്, വിഷ്വൽ എഫക്റ്റ്സ് കമ്പോസിറ്റർ ന്യൂക്, 2 ഡി ഇമേജിംഗ് പ്രോഗ്രാമുകൾ ജിമ്പ്, ഇങ്ക്സ്കേപ്പ്, സ്ക്രിബസ്, പെയിന്റ് ഷോപ്പ് പ്രോ, സംഗീത നോട്ടേഷൻ പ്രോഗ്രാമുകൾ, സ്കോർറൈറ്റർ, ക്യാപ്പെല്ല എന്നിവ. സി ++ പാറ്റേണുകൾ പോലെയുള്ള സങ്കീർണ്ണമായ ഘടനകൾ കാണിക്കുന്നതിനായി ഗ്നു ഡീബഗ്ഗർ പൈത്തൺ ഉപയോഗിക്കുന്നു. ആർക്ക്ജിഐഎസ്(ArchGIS)സ്ക്രിപ്റ്റുകൾ രചിക്കുന്നതിനുള്ള ഏറ്റവും നല്ല മാർഗ്ഗമായി എസ്റി(Esri)പൈത്തണിനെ പ്രോത്സാഹിപ്പിക്കുന്നു. പല വീഡിയോ ഗെയിമുകളിലും ഇത് ഉപയോഗിക്കപ്പെട്ടി ട്ടുണ്ട്, ഗൂഗിൾ ആപ്പ് എഞ്ചിനിൽ ആദ്യ മൂന്ന് പ്രോഗ്രാമിങ് ഭാഷകളിലും ആദ്യത്തേതായി സ്വീകരിച്ചിട്ടുണ്ട്. മറ്റു രണ്ടെണ്ണം ജാവയും ഗോയും ആണ്. അൽഗരിതമിക്ക് ട്രേഡിംഗിലും ക്വാണ്ടിറ്റേറ്റീവ് ഫിനാൻസ് ഉപയോഗത്തിലും പൈത്തൺ ഉപയോഗിക്കപ്പെടുന്നു. റാപ്പറുകൾ ഉപയോഗിച്ച് മറ്റ് ഭാഷകളിൽ പ്രവർത്തിപ്പിക്കുന്ന ഓൺലൈൻ ബ്രോക്കറേജുകളുടെ എപിഐ(API)കളിലും പൈത്തൺ നടപ്പിലാക്കാം.

കൃത്രിമ ബുദ്ധി പദ്ധതികളിൽ പൈത്തൺ ഉപയോഗിക്കാറുണ്ട്. ലളിതമായ വാക്യഘടന, ലളിതമായ സിന്റാക്സ്, റിച്ച് ടെക്സ്റ്റ് പ്രോസസ്സിംഗ് ടൂളുകൾ ഉള്ള ഒരു സ്ക്രിപ്റ്റിംഗ് ഭാഷ എന്ന നിലയിൽ പൈത്തൺ പലപ്പോഴും സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിംഗിനായി ഉപയോഗിക്കുന്നു.

നിലവാരമുള്ള ഭാഗമായി പൈത്തൺ പല ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങളിൽ പ്രവർത്തിക്കുന്നു. മിക്ക ലിനക്സ് വിതരണങ്ങളിലുമുള്ള, അമിഗോഒഎസ്(AmigaOS 4) 4, ഫ്രീബിഎസ്ഡി(FreeBSD), നെറ്റ്ബിഎസ്ഡി(NetBSD), ഓപ്പൺബിഎസ്ഡി, മാക്ഒഎസ് എന്നിവയുമായി ഇത് പ്രവർത്തിച്ച് വരുന്നു. കമാൻഡ് ലൈനിൽ (ടെർമിനൽ) ഉപയോഗിക്കാം.പല ലിനക്സ് വിതരണങ്ങളും പൈത്തണിൽ എഴുതപ്പെട്ട ഇൻസ്റ്റോളറുകൾ ഉപയോഗിക്കുന്നു: ഉബുണ്ടു ഉബിക്യൂറ്റി ഇൻസ്റ്റാളർ ഉപയോഗിക്കുന്നു, അതേസമയം റെഡ് എന്റർപ്രൈസ് ലിനക്സും ഫെറോഡയും ആനക്കോണ്ട ഇൻസ്റ്റോളർ ഉപയോഗിക്കുന്നു. ജെന്റു ലിനക്സ് പൈത്തൺ പാക്കേജ് മാനേജ്മെന്റ് സിസ്റ്റത്തിൽ പോർട്ട്ഗേജ് ഉപയോഗിക്കുന്നു.

പൂർണ്ണ വിനിയോഗം വികസനത്തിൽ ഉൾപ്പെടെ, വിവര സുരക്ഷ വ്യവസായത്തിൽ പൈത്തൺ വ്യാപകമായി ഉപയോഗിക്കുന്നു.

ഷുഗർ ലാബുകളിൽ വികസിപ്പിച്ച ഒരു കുട്ടിക്ക്‌ ഒരു ലാപ്ടോപ് എന്ന ആശയത്തിൽ XO-യുടെ മിക്ക ഷുഗർ സോഫ്റ്റ് വെയറുകളും പൈത്തണിലാണ് എഴുതിയിരിക്കുന്നത്.

റാസ്ബെറി പൈ സിംഗിൾ ബോർഡ് കമ്പ്യൂട്ടർ പ്രോജക്റ്റ് പൈത്തൺ അതിന്റെ പ്രധാന ഉപയോക്തൃ-പ്രോഗ്രാമിങ് ഭാഷയായി അംഗീകരിച്ചിട്ടുണ്ട്.

ലിബറെ ഓഫീസ് പൈത്തൺ ഉൾപ്പെടുത്തി, പൈത്തൺ ഉപയോഗിച്ച് ജാവയെ മാറ്റി സ്ഥാപിക്കുന്നു. 2013 ഫെബ്രുവരി 7 മുതൽ പതിപ്പ് 4.0 മുതൽ പൈത്തൺ സ്ക്രിപ്റ്റിങ് പ്രൊവൈഡർ ഒരു പ്രധാന സവിശേഷതയാണ്.

പൈത്തൺ സ്വാധീനിച്ച ഭാഷകൾ

തിരുത്തുക

പൈത്തണുകളുടെ രൂപകൽപനയും തത്ത്വശാസ്ത്രവും മറ്റു പല പ്രോഗ്രാമിങ് ഭാഷകളെയും സ്വാധീനിച്ചിട്ടുണ്ട്:

  • ബൂ ഇൻഡെന്റേഷൻ, സമാന പദവിന്യാസം, സമാനമായ ഒബ്ജക്റ്റ് മോഡൽ ഉപയോഗിക്കുന്നു.
  • കോബ്രാ(Cobra)ഇൻഡെന്റേഷനും സമാനമായ വാക്യഘടനയും ഉപയോഗിക്കുന്നു, കൂടാതെ അതിന്റെ "കടപ്പാടുകൾ" രേഖയിൽ പൈത്തൺ അതിനെ സ്വാധീനിച്ച ഭാഷകളെ ആദ്യം പട്ടികപ്പെടുത്തി. എന്നിരുന്നാലും, കോബ്ര നേരിട്ട് ഡിസൈൻ-അണ്ടർ-കോൺട്രാക്റ്റ്, യൂണിറ്റ് ടെസ്റ്റുകൾ, ഓപ്ഷണൽ സ്റ്റാറ്റിക് ടൈപ്പിംഗ് എന്നിവയെ പിന്തുണയ്ക്കുന്നു.
  • ജാവാസ്ക്രിപ്റ്റിലേക്ക് കോപ്പി കമ്പൈലർ ചെയ്യുന്ന ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയായ കോഫിസ്ക്രിപ്റ്റ്(CoffeeScript), പൈത്തൺ-സ്വാധീനിച്ച പദവിന്യാസം ഉണ്ട്.
  • ഇസിഎംഎസ്ക്രിപ്റ്റ്(ECMAScript) പൈത്തണിൽ നിന്നും എഡിറ്റർമാർ, ജനറേറ്ററുകൾ, ലിസ്റ്റ് കോംപ്രിഹെൻഷനുകൾ എന്നിവ കടം വാങ്ങി.
  • "പൈത്തൺ പോലുള്ള ചലനാത്മകമായ ഭാഷയിലുള്ള ജോലി വേഗത" ക്കായി ഗോ(Go)രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു, കൂടാതെ സ്ലൈസിംഗ്(slicing) അറേകളുടെ അതേ പദവിന്യാസം പങ്കിടുന്നു.
  • ജാവയിലേക്കുള്ള പൈത്തൺ ഡിസൈൻ തത്ത്വചിന്ത അവതരിപ്പിക്കുന്നതിനുള്ള ആഗ്രഹത്താൽ ഗ്രൂവിയെ(Groovy)പ്രചോദിപ്പിച്ചിരുന്നു.
  • "പൈത്തൺ (സൈദ്ധാന്തികൻ) പോലെ സാധാരണ പ്രോഗ്രാമിനായി ഉപയോഗിക്കാവുന്നതു പോലെ യഥാർത്ഥ മാക്രോകൾ ഉപയോഗിക്കാൻ കഴിയും. ജൂലിയോ അല്ലെങ്കിൽ വിളിക്കുന്നതു സാധ്യമാണ്; പൈകോൾ.ജെഎൽ(PyCall.jl), പൈത്തൺ പാക്കേജിൽ പൈൻജനിൽ നിന്നും മറ്റൊന്ന്, കോളിംഗ് അനുവദിക്കുന്നു.
  • പൈത്തൺ പോലുളള ഒരു ഇന്ററാക്ടീവ് ഷെൽ ഉപയോഗിച്ചുള്ള ഒരു പ്രവർത്തന പ്രോഗ്രാമിങ് ഭാഷയാണ് കോട്ലിൻ(Kotlin)(പ്രോഗ്രാമിങ് ഭാഷ). സ്റ്റാൻഡേർഡ് ജാവ ലൈബ്രറികളിലേക്കുള്ള പ്രവേശനം ശക്തമായി ടൈപ്പ് ചെയ്തു.
  • റൂബിയുടെ സ്രഷ്ടാവ് യൂകിഹിറോ മാറ്റ്സുമോട്ടോ പറഞ്ഞു: "പേളിനേക്കാളും കൂടുതൽ ശക്തമായ ഒരു സ്ക്രിപ്റ്റിംഗ് ഭാഷയും പൈത്തണേക്കാൾ കൂടുതൽ വസ്തുനിഷ്ഠമായ ഒത്തൊരുമയും എനിക്ക് ആവശ്യമായിരുന്നു, അതിനാലാണ് ഞാൻ എന്റെ ഭാഷ രൂപകൽപ്പന ചെയ്യാൻ തീരുമാനിച്ചത്.
  • ആപ്പിൾ വികസിപ്പിച്ച പ്രോഗ്രാമിങ് ഭാഷയായ സ്വിഫ്റ്റ് ചില പൈത്തൺ സ്വാധീനിച്ച പദവിന്യാസം ഉണ്ട്.

പൈത്തണുകളുടെ വികസന രീതികളും മറ്റ് ഭാഷകളും അനുകരിച്ചിട്ടുണ്ട്. ഉദാഹരണത്തിന്, ന്യായവാദം വിവരിക്കുന്ന ഒരു പ്രമാണം, ചുറ്റുപാടിലുള്ള പ്രശ്നങ്ങൾ, ടിസിഎൽ(Tcl), എർലാങ്(Erlang) എന്നിവയിലും ഭാഷയിലേക്കുള്ള മാറ്റം (പൈത്തൺ, പിഇപി) ഉപയോഗിക്കുന്നു.

2007 ലും 2010 ലും പൈത്തൺ പ്രോഗ്രാമിങ് ലാങ്ങ് വേജ് ഓഫ് ദ ഇയർ അവാർഡ് ലഭിച്ചു. TIOBE സൂചിക കണക്കാക്കിയതുപോലെ, വർഷത്തിൽ പ്രചാരം നേടിയ ഏറ്റവും മികച്ച വളർച്ചയുള്ള ഭാഷക്കാണ് അവാർഡ്.

പൈത്തൺ ഉപയോഗിക്കുന്ന സോഫ്റ്റ്‌വെയറുകൾ

തിരുത്തുക
  1. "General Python FAQ — Python 3.9.2 documentation". docs.python.org. Archived from the original on 24 October 2012. Retrieved 2021-03-28.
  2. "Why is Python a dynamic language and also a strongly typed language - Python Wiki". wiki.python.org. Archived from the original on 14 March 2021. Retrieved 2021-01-27.
  3. "PEP 483 -- The Theory of Type Hints". Python.org. Archived from the original on 14 June 2020. Retrieved 14 June 2018.
  4. "Starlark Language". Archived from the original on 15 June 2020. Retrieved 25 May 2019.
  5. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; faq-created എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  6. "Ada 83 Reference Manual (raise statement)". Archived from the original on 22 October 2019. Retrieved 7 January 2020.
  7. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; 98-interview എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  8. 8.0 8.1 "itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation". docs.python.org. Archived from the original on 14 June 2020. Retrieved 22 November 2016.
  9. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-1 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  10. 10.0 10.1 ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; classmix എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  11. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; effbot-call-by-object എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  12. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-2 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  13. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-3 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  14. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-4 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  15. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-5 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  16. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; AutoNT-6 എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  17. "CoffeeScript". coffeescript.org. Archived from the original on 12 June 2020. Retrieved 3 July 2018.
  18. "The Genie Programming Language Tutorial". Archived from the original on 1 June 2020. Retrieved 28 February 2020.
  19. "Perl and Python influences in JavaScript". www.2ality.com. 24 February 2013. Archived from the original on 26 December 2018. Retrieved 15 May 2015.
  20. Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". O'Reilly, Speaking JavaScript. Archived from the original on 26 December 2018. Retrieved 15 May 2015.
  21. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; Julia എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  22. Ring Team (4 December 2017). "Ring and other languages". ring-lang.net. ring-lang. Archived from the original on 25 December 2018. Retrieved 4 December 2017.
  23. ഉദ്ധരിച്ചതിൽ പിഴവ്: അസാധുവായ <ref> ടാഗ്; bini എന്ന പേരിലെ അവലംബങ്ങൾക്ക് എഴുത്തൊന്നും നൽകിയിട്ടില്ല.
  24. Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Archived from the original on 25 December 2018. Retrieved 3 June 2014. The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
  25. van Rossum, Guido (1996). "Foreword for "Programming Python" (1st ed.)". Retrieved 10 July 2014.
  26. "Automated Python 2 to 3 code translation — Python Documentation". Retrieved 11 February 2018.
  27. "PEP 373 -- Python 2.7 Release Schedule". python.org. Retrieved 9 January 2017.
  28. "PEP 466 -- Network Security Enhancements for Python 2.7.x". python.org. Retrieved 9 January 2017.
  29. "Google Open Source Blog: Grumpy: Go running Python!". 4 January 2017. Retrieved 7 March 2017.
  30. "15 Ways Python Is a Powerful Force on the Web". Archived from the original on 2015-09-06. Retrieved 2018-06-10.
  31. "pprint - Data pretty printer - Python Documentation".
  32. Guttag, John V. (2016-08-12). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN 978-0-262-52962-4.
  33. https://www.python.org/download/releases/2.5/
  34. https://www.python.org/download/releases/2.5/highlights/
  35. Sweigart, Al (2010). "Appendix A: Differences Between Python 2 and 3". Invent Your Own Computer Games with Python (2 ed.). ISBN 978-0-9821060-1-3. Retrieved 20 February 2014.

പുറം കണ്ണികൾ

തിരുത്തുക