പ്രോഗ്രാമിങ് ഭാഷ From Wikipedia, the free encyclopedia
കമ്പ്യൂട്ടർ ശാസ്ത്രത്തിലെ ഒരു ഹൈലെവൽ പ്രോഗ്രാമിങ് ഭാഷയാണ് പൈത്തൺ. എഴുതുന്ന പ്രോഗ്രാം എളുപ്പത്തിൽ വായിച്ചു മനസ്സിലാക്കാം എന്നത് പൈത്തണിന്റെ പ്രധാന സവിശേഷതകളിലൊന്നാണ്. 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 |
പൈത്തൺ ഒരു ഡൈനാമിക് ടൈപ്പ് സിസ്റ്റം, ഓട്ടോമാറ്റിക് മെമ്മറി മാനേജ്മെന്റ് എന്നിവ ലഭ്യമാക്കുന്നു. ഇത് ഒന്നിലധികം പ്രോഗ്രാമിങ് പരാമീറ്ററുകൾ പിന്തുണയ്ക്കുന്നു,ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ, ഇംപരേറ്റീവ്, ഫങ്ഷണൽ ആൻഡ് പ്രൊസീജ്യറൽ, കൂടാതെ വലിയൊരു സമഗ്രമായ ലൈബ്രറിയും ഉണ്ട്.
പല ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾക്കും പൈത്തൺ വ്യാഖ്യാതാക്കൾ ലഭ്യമാണ്. പൈത്തണിന്റെ റഫറൻസ് നിർവ്വഹണ രീതിയായ സിപൈത്തൺ, ഒരു ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയർ ആണ്. അതിന്റെ എല്ലാ വകഭേദങ്ങളും പോലെ തന്നെ ഒരു സാമുദായിക അടിസ്ഥാന വികസന മോഡലും ഉണ്ട്. സിപൈത്തൺ ലാഭരഹിത പൈത്തൺ സോഫ്റ്റ് വെയർ ഫൗണ്ടേഷൻ ആണ് കൈകാര്യം ചെയ്യുന്നത്.
1980-കളുടെ അവസാനം പൈത്തൺ ഉരുത്തിരിഞ്ഞു. എബിസി പ്രോഗ്രാമിംഗ് ഭാഷക്ക് പിൻഗാമിയായി (SETL പ്രചോദനം) നെതർലണ്ടിലെ സെൻട്രം വിസ്കുണ്ടെ & ഇൻഫോമാറ്റിക്ക (CWI) എന്ന ഗവേഷണ കേന്ദ്രത്തിൽ ഗൈഡോ വാൻ റോസ്സം 1989 ഡിസംബറിലായിരുന്നു ഇത് നടപ്പിലാക്കിയത്. ഒഴിവാക്കൽ കൈകാര്യം ചെയ്യാനുള്ള ശേഷിയും, അമീബ ഓപ്പറേറ്റിങ് സിസ്റ്റവുമായുള്ള സമ്മേളനവും(interface) പൈത്തൺ നല്കുന്നു. പൈത്തണിന്റെ മുഖ്യരചയിതാവായി വാൻ റോസ്സം തുടരുന്നു. പൈത്തൺ വികസനത്തിൽ അദ്ദേഹത്തിന്റെ പ്രധാന പങ്ക് മൂലം പൈത്തൺ കമ്യൂണിറ്റി വിശേഷിപ്പിക്കുന്നത് ഇപ്രകാരമാണ്: ബെനവലൻറ് ഡിക്റ്റേറ്റർ ഫോർ ലൈഫ് (ബി.ഡി.എഫ്.എൽ).
പൈത്തണിന്റെ ഉത്ഭവത്തെക്കുറിച്ച് വാൻ റോസ്സ് 1996 ൽ എഴുതി [25]:
“ | ....1989 ഡിസംബറിൽ ഒരു "ഹോബി" പ്രോഗ്രാമിങ് പ്രോജക്ടിനായി ഞാൻ അന്വേഷിക്കുകയായിരുന്നു. ക്രിസ്മസിന് അടുത്തുള്ള ആഴ്ചയിൽ അത് എന്നെ പിടിച്ചുനിർത്തി, എന്റെ ഓഫീസ് ... അടക്കും പക്ഷെ എനിക്ക് ഒരു ഹോം കമ്പ്യൂട്ടർ ഉണ്ടായിരുന്നു, എന്റെ കൈയിൽ അധികം മറ്റൊന്നും ഇല്ല. പുതിയ സ്ക്രിപ്റ്റിംഗ് ഭാഷയ്ക്കുള്ള ഒരു ഇൻർപ്രെട്ടർ എഴുതാൻ ഞാൻ തീരുമാനിച്ചു. ഈയിടെയായി ഞാൻ ചിന്തിച്ചുകൊണ്ടിരുന്നു: യുണിക്സ് / സി ഹാക്കർമാരെ ആകർഷിക്കുന്ന എബിസിയുടെ പിൻഗാമിയെ സൃഷ്ടിക്കുക. ഞാൻ പ്രോജക്ടിനായി ഒരു തൊഴിൽ തലക്കെട്ടായി പൈത്തൺ തെരഞ്ഞെടുത്തു, ചെറുതായ് തികച്ചും യാഥാർഥ്യമല്ലാത്ത മൂഡിലായിരുന്നു അത് സംഭവിച്ചത് (ഫ്ലയിങ് സർക്കസിലെ മോണ്ടി പൈത്തണിന്റെ വലിയ ഫാൻ). | ” |
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
സ്റ്റേറ്റ്മെന്റ് ഒരു ഫങ്ഷൻ അല്ലെങ്കിൽ രീതി നിർവ്വചിക്കുന്നു.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-ൽ നിന്നും വിവരങ്ങൾ അയയ്ക്കാൻ സാധിക്കും, ഒന്നിലധികം സ്റ്റാക്ക് അളവുകൾ വഴി വിവരങ്ങൾ നേടാം.
ചില പൈത്തൺ ആശയപ്രകാശനരീതികൾ സി, ജാവ എന്നിവ പോലുള്ള ഭാഷകൾക്ക് സമാനമാണ്, ചിലപ്പോൾ അവ ഇല്ല:
@
ഇൻഫിക്സ് ഓപ്പറേറ്റർ അവതരിപ്പിച്ചു. മെട്രിക്സ് ഗുണനത്തിനായി നംപൈ(NumPy)പോലുള്ള ലൈബ്രറികളാണ് ഇത് ഉപയോഗിക്കുന്നത്.equals()
രീതി ഉപയോഗിച്ച് ചെയ്യാം.) ഒബ്ജക്റ്റ് ഐഡന്റിറ്റികൾ (റഫറൻസ് അനുസരിച്ച് താരതമ്യം ചെയ്യുക) താരതമ്യം ചെയ്യാൻ പൈത്തണിന്റെ is
ഓപ്പറേറ്റർ ഉപയോഗിക്കാം. പൈത്തണിൽ താരതമ്യനെ ചങ്ങലകണ്ണികൾപോലെ ഉൾപ്പെടുത്താം, ഉദാഹരണത്തിന് a <= b <= c
.and
,or
,not
പ്രതീകാത്മകത്തിന് പകരം ബൂളിയൻ ഓപ്പറേറ്ററുകൾ&&
,||
,!
ജാവയിലും സിയിലും ഉപയോഗിച്ചിട്ടുള്ളതാണ്.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}'.
r.
എസ്കേപ് സീക്വൻസുകൾ വ്യാഖ്യാനിക്കുന്നില്ല; അതുകൊണ്ട് റോ സ്ട്രിംഗുകൾ പ്രയോജനകരമാണ്, ലിറ്ററൽ ബാക്കസ്ലാഷുകൾ സാധാരണമാണ്, റെഗുലർ എക്സ്പ്രഷനുകൾ, വിൻഡോസ് സ്റ്റൈൽ പാത്തുകൾ എന്നിവ പോലുള്ളവ. സി# ൽ "@
-quoting" താരതമ്യം ചെയ്യുന്നു.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) പിന്തുണയ്ക്കുന്ന കമ്പൈൽ ടൈം ടൈപ്പ് പരിശോധന നടത്തുന്നു.
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 |
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 |
പൈത്തണിൽ സാധാരണ സി ക്രിയകൾ ആണ് ഉള്ളത്. (+
,-
, *
, /
,%
). ഇത് മൂല്യനിർണ്ണയത്തിനായി **
ഉണ്ട്, ഉദാ: 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)
.
ഹരണ സ്വഭാവം കാലക്രമേണ മാറ്റിയിരിക്കുന്നു:
7/3 == 2
ഉം-7/3 == -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 /
ക്ലാസിക്ക് ഡിവിഷൻ, പതിപ്പ് 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 വേരിയന്റാണ് മൈക്രോ പൈത്തൺ.
മറ്റ് ജസ്റ്റ്-ഇൻ-ടൈം പൈത്തൺ കംപൈലറുകൾ വികസിപ്പിച്ചു, എന്നാൽ ഇപ്പോൾ പിന്തുണ ലഭ്യമല്ല:
2005-ൽ, സീരീസ് 60 മൊബൈൽ ഫോണുകൾക്കായി പിവൈഎസ്60(PyS60), നോക്കിയ ഒരു പൈത്തൺ ഇന്റർപ്രെട്ടർ പുറത്തിറക്കി. സിംബിയൻ ഓപ്പറേറ്റിങ് സിസ്റ്റവുമായി സമന്വയിപ്പിക്കുന്നതിനായി സിപൈത്തൺ നടപ്പാക്കലുകളിൽ നിന്നുള്ള ചില ഘടകങ്ങളും ചില അധിക ഘടകങ്ങളും ഉൾപ്പെടുന്നു. എസ്60 പ്ലാറ്റ്ഫോമിന്റെ എല്ലാ വകഭേദങ്ങളും പ്രവർത്തിപ്പിക്കാൻ ഈ പദ്ധതി കാലികമായിട്ടുള്ളതാണ്, കൂടാതെ നിരവധി മൂന്നാം-കക്ഷി മൊഡ്യൂളുകൾ ലഭ്യമാണ്. ജിടികെ വിഡ്ജറ്റ് ലൈബ്രറികളോടൊപ്പം പൈത്തണിലും നോക്കിയ എൻ900 പിന്തുണക്കുന്നു, പ്രോഗ്രാമുകൾ തയ്യാറാക്കാനും ലക്ഷ്യമാക്കിയിട്ടുള്ള ഉപകരണത്തിൽ പ്രവർത്തിപ്പിക്കാനും ഇത് സഹായിക്കുന്നു.
ഉയർന്ന നിലവാരത്തിലുള്ള ഒബ്ജക്ട് ഭാഷകൾക്ക് നിരവധി കംപൈലറുകൾ ഉണ്ട്, നിയന്ത്രണമില്ലാത്ത പൈത്തണിനൊപ്പം, പൈത്തണിൽ ഒരു നിയന്ത്രിത ഉപസെറ്റ്, അല്ലെങ്കിൽ പൈത്തൺ പോലുളള ഭാഷ ഉറവിട ഭാഷയായി ഉപയോഗിക്കുന്നു:
യൂറോസൈപൈ(EuroSciPy'13)13 ൽ അവതരിപ്പിച്ച സംഖ്യകളല്ലാത്ത(കോമ്പിനേറ്റർ) ദേഹണ്ഡ വിഹിതത്തിൽ(workload) വിവിധ പൈത്തൺ ആന്തരഘടനകളുടെ പ്രകടന താരതമ്യം നടത്തുന്നു.
പൈത്തൺ എൻഹാൻസ്മെന്റ് പ്രൊപ്പോസൽ (പിഇപി) പ്രക്രിയയിലൂടെ പൈത്തണുകളുടെ വികസനം പ്രധാനമായും, പുതിയ പ്രധാന സവിശേഷതകളെ നിർദ്ദേശിക്കുന്നതിനുള്ള പ്രാഥമിക സംവിധാനം, പ്രശ്നങ്ങൾക്ക് കമ്മ്യൂണിറ്റി ഇൻപുട്ട് ശേഖരണം, പൈത്തൺ ഡിസൈൻ തീരുമാനങ്ങൾ എന്നിവ രേഖപ്പെ ടുത്തുന്നു. മികച്ച പിഇപികൾ അവലോകനം ചെയ്ത് അഭിപ്രായമിടുകയും ചെയ്യുന്നത്, പൈത്തൺ കമ്മ്യൂണിറ്റിയും പൈത്തണിലെ ബെനവലന്റ് ഡിക്റ്റേറ്റർ ഫോർ ലൈഫ് എന്നറിയപ്പെടുന്ന ഗൈഡോ വാൻ റോസ്സമും ആണ്.
സിപൈത്തൺ റഫറൻസ് നടപ്പിലാക്കലിന്റെ വികസനം ഭാഷയെ മെച്ചപ്പെടുത്തുന്നു. മെയിലിംഗ് ലിസ്റ്റ് പൈത്തൺ-ദേവാണ് ഭാഷയുടെ വികസനത്തിന്റെ പ്രാഥമിക ഫോറം. പൈത്തൺ.ഓർഗ്ഗി(Python.org)-ൽ സൂക്ഷിച്ചിട്ടുള്ള റൗണ്ട് അപ്പ് ബഗ് ട്രാക്കറിൽ പ്രത്യേക പ്രശ്നങ്ങളെക്കുറിച്ച് ചർച്ച ചെയ്യുന്നു. 2017 ജനുവരിയിൽ പൈത്തൺ ഗിത്ബ്ബിലേക്ക് മാറുന്നതുവരെ സ്വയം വികസിപ്പിച്ച സോഴ്സ് കോഡ് റിപോസിറ്ററി മെർക്കുറിയൽ എന്ന നിലയിലാണ് വികസനം നടന്നത്.
സിപൈത്തണിന്റെ പൊതു റിലീസുകൾ മൂന്നു തരത്തിലാണ് വരുന്നത്, പതിപ്പ് നമ്പറിന്റെ ഏത് ഭാഗത്തെ വേർതിരിക്കുന്നു എന്നത്:
നിരവധി ആൽഫ, ബീറ്റാ, റിലീസ് സ്ഥാനാർത്ഥികൾ എന്നിവ പ്രിവ്യൂകളായി പുറത്തിറങ്ങിയിട്ടുണ്ട്, അന്തിമ റിലീസുകൾക്ക് മുമ്പായി പരീക്ഷണങ്ങൾ നടത്തുന്നു. ഓരോ റിലീസിനും ഒരു പരുക്കൻ ഷെഡ്യൂൾ ഉണ്ടെങ്കിലും, കോഡ് തയ്യാറാകാത്ത പക്ഷം അവ പലപ്പോഴും വൈകുകയാണ്. വികസന സമയത്ത് വലിയ യൂണിറ്റ് ടെസ്റ്റ് സ്യൂട്ട് പ്രവർത്തിപ്പിച്ചും, ബിൽഡ്ബോട്ട്(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 മുതൽ പൈത്തൺ സ്ക്രിപ്റ്റിങ് പ്രൊവൈഡർ ഒരു പ്രധാന സവിശേഷതയാണ്.
പൈത്തണുകളുടെ രൂപകൽപനയും തത്ത്വശാസ്ത്രവും മറ്റു പല പ്രോഗ്രാമിങ് ഭാഷകളെയും സ്വാധീനിച്ചിട്ടുണ്ട്:
പൈത്തണുകളുടെ വികസന രീതികളും മറ്റ് ഭാഷകളും അനുകരിച്ചിട്ടുണ്ട്. ഉദാഹരണത്തിന്, ന്യായവാദം വിവരിക്കുന്ന ഒരു പ്രമാണം, ചുറ്റുപാടിലുള്ള പ്രശ്നങ്ങൾ, ടിസിഎൽ(Tcl), എർലാങ്(Erlang) എന്നിവയിലും ഭാഷയിലേക്കുള്ള മാറ്റം (പൈത്തൺ, പിഇപി) ഉപയോഗിക്കുന്നു.
2007 ലും 2010 ലും പൈത്തൺ പ്രോഗ്രാമിങ് ലാങ്ങ് വേജ് ഓഫ് ദ ഇയർ അവാർഡ് ലഭിച്ചു. TIOBE സൂചിക കണക്കാക്കിയതുപോലെ, വർഷത്തിൽ പ്രചാരം നേടിയ ഏറ്റവും മികച്ച വളർച്ചയുള്ള ഭാഷക്കാണ് അവാർഡ്.
Seamless Wikipedia browsing. On steroids.