Python
Python (անգլ.՝ python, արտասանվում է որպես [ˈpaɪθ⟨ə⟩n] (փայթըն), սակայն հաճախ օգտագործվում է նաև պիտոն (ռուսերենից եկած) տարբերակը, որը նշանակում է կենդանի)[12], ընդհանուր նշանակության բարձր մակարդակի ծրագրավորման լեզու, որը հիմնականում կենտրոնացած է ծրագիրը արագ մշակելու և կոդի հեշտ ընթերցանությունն ապահովելու վրա։ Python-ի միջուկի շարահյուսությունը շատ պարզ և հեշտ է։ Միևնույն ժամանակ, ստանդարտ գրադարանը ներառում է բազմաթիվ օգտակար ֆունկցիաներ։
Տեսակ | օբյեկտ կողմնորոշված ծրագրավորման լեզու |
---|---|
Սեմանտիկա | օբյեկտային կողմնորոշում |
Կատարման ձև | ինտերպրետացվող, MSIL կոմպիլյացվող, Ջավայի բայթ-կոդ կոմպիլյացվող |
Առաջացել է | փետրվարի 20, 1991[1] |
Ստեղծող | Python Software Foundation և Գվիդո վան Ռոսում[1] |
Նախագծող | Գվիդո վան Ռոսում[1] |
Ընդլայնումներ | .py, .pyw, .pyc, .pyo, .pyd |
ՕՀ | բազմապլատֆորմ[2] |
Տիպիզացիա | խիստ, դինամիկ |
Ներշնչվել է | Ալգոլ 68[3], ABC[4], Modula-3?[5], Սի (ծրագրավորման լեզու)[6], C++[5], Perl, Ջավա[7], Լիսպ[8], Haskell[9], APL?[10], Կլու, Dylan?, Icon? և Standard ML[10] |
Արտոնագիր | Python Software Foundation License[1] |
Անվանված է | Մոնթի Փայթն[11] |
Սխալնելի հայտման էջ | github.com/python/cpython/issues |
Կայք | python.org(անգլ.) |
Python (programming language) Վիքիպահեստում |
Python-ն աջակցում է ծրագրավորման մի քանի նմուշներ, այդ թվում՝ կառուցվածքային, օբյեկտային կողմնորոշմամբ, ֆունկցիոնալ, իմպերատիվ և ասպեկտային կողմնորոշմամբ։ Հիմնական կառուցվածքային գծերն են՝ դինամիկ տիպավորումը, հիշողության ավտոմատ կառավարումը, լրիվ ինքնադիտողությունը, բացառությունների վերամշակման մեխանիզմը և բարձր մակարդակի տվյալների կառուցվածքը։ Պիտոնում կոդը կազմված է ֆունկցիաներից և դասերից, որոնք կարող են միավորվել մոդուլներում, որոնք էլ, իրենց հերթին, փաթեթներում։
Python-ի հիմնական ինտերպրետատորը CPython-ն է։ Այն աջակցվում է ակտիվ օգտագործվող հարթակների մեծամասնության կողմից[13]։ Այն տարածվում է Python Software Foundation License ազատ արտոնագրով, որն թույլ է տալիս օգտագործել այն ցանկացած ծրագրերում առանց սահմանափակման[14]։ Գոյություն ունեն նաև ինտերպրետատորի տարբերակներ JVM-ի (կոմպիլյացիայի հնարավորությամբ), MSIL-ի (կոմպիլյացիայի հնարավորությամբ), LLVM-ի համար։ PyPy նախագիծն առաջարկում է Պիտոնի համար հենց Պիտոնով գրված ինտերպրետատոր։
Python-ը ակտիվ զարգացող ծրագրավորման լեզու է։ Նոր տարբերակները (լեզվի հատկությունների ավելացմամբ/փոփոխմամբ) թողարկվում են մոտավորապես 2.5 տարին մեկ անգամ։ Այդ և որոշ այլ պատճառներով, Python-ում բացակայում են ANSI, ISO և այլ պաշտոնական ստանդարտներ, որոնց դերը կատարում է CPython-ը։
Փիլիսոփայություն
խմբագրելPython-ի մշակողները հետևում են ծրագրավորման որոշ փիլիսոփայության, որն անվանում են «The Zen of Python» («Պիտոնի զենը» կամ «Փայթոնի զենը»)[15]։ Ինտերպրետատորը import this
հրամանի դեպքում կարտածի այդ կոդը (աշխատում է միևնույն սեսիայում միայն մեկ անգամ)։ Այդ փիլիսոփայության հեղինակը Թիմ Փեյթերսն է։
Փիլիսոփայության տեքստը՝
Բնօրինակ տեքստ (անգլ.)
|
Պատմություն
խմբագրելPython լեզվի մշակումն սկսվել է 1980-ական թվականներին[17] հոլանդական CWI համալսարանի աշխատակից Գվիդո վան Ռոսումի կողմից։ Այն ժամանակ տարածված Amoeba օպերացիոն համակարգի համար անհրաժեշտ էր ընդլայնվող սկրիպտային ծրագրավորման լեզու, և Գվիդոն ազատ ժամանակ սկսեց գրել Python-ը, վերցնելով որոշ առանձնահատկություններ ABC լեզվից (Գվիդոն մասնակցել էր այդ լեզվի ստեղծմանը, որն կենտրոնացված է ծրագրավորման ուսուցման վրա)։ 1991 թ․ փետրվարին Գվիդոն հրապարակեց Python-ի ելակետային տեքստը alt.sources լրատվական խմբում[18]։ Ամենասկզբից Python-ն նախագծված էր որպես օբյեկային կողմնորոշմամբ ծրագրավորման լեզու։
Հեղինակի խոսքերով, լեզուի անվանումն ծագել է ոչ թե սողունի անվանումից, այլ 1970-ական թվականներին հայտնի բրիտանական հումորային «Մոնթի Փայթոնի թռչող կրկեսը» անվանումից։ Չնայած դրան, լեզվի անվանումը շատ հաճախ ասոցիացվում է օձի, ոչ թե ֆիլմի հետ։ Այդ մասին են խոսում KDE-ում կամ Microsoft Windows-ում .py ընդլայնմամբ ֆայլերի պատկերները, և նույնիսկ python.org կայքի պատեկերանիշը (մինչև 2.5 տարբերակը)։
2008 թվականի դեկտեմբերի 8-ին[19], երկարատև փորձարկումներից հետո, թողարկվեց Python 3000-ի նոր տարբերակը (կամ Python 3.0-ն, հաճախ օգտագործվում է նաև Py3k հապավումը)։ Python 3000-ում վերացված են կառուցվածքի որոշ թերություններ՝ հնարավորինս (բայց ոչ լրիվ) պահպանելով համատեղելիությունը Python-ի հին տարբերակների հետ։
Այլ լեզուների ազդեցություն
խմբագրելՀայտնվելով համեմատականորեն ավելի ուշ, Python-ը ստեղծվել է մի քանի լեզուների ազդեցության տակ՝
- ABC - օպերատորների խմբավորման համար հեռավորությունների կիրառումը, տվյալների բարձր մակարդակի կառուցվածքը (map)[20][21] (Python-ը, փաստորեն, ստեղծվել է նրա համար, որպեսզի ուղղվեն ABC-ի նախագծման ժամանակ առաջացած սխալները),
- Modula-3 - փաթեթներ, մոդուլներ,
else
-ի օգտագործումըtry
-ի ևexcept
-ի հետ համատեղ, ֆունկցիաների արգումենտներին անվանումներ տալը (դրա վրա ազդել է նաև Common Lisp լեզուն), - С, C++ - որոշ շարահյուսական կառուցներ (ինչպես գրում է Գվիդո վան Ռոսումը, նա օգտագործել է C-ի ամենից շատ չհակասող կառույցներ, որպեսզի Python-ը C-ծրագրավորողների մոտ զզվանք չառաջացնի Python[20]),
- Smalltalk - օբյեկտային կողմնորոշմամբ ծրագրավորումը,
- Լիսպ - ֆունկցիոնալ ծրագրավորման առանձին գծեր (
lambda, map, reduce, filter
և ուրիշներ), - Ֆորտրան - շերտավոր զանգվածները, թվաբանությունները,
- Miranda - ցանկային արտահայտությունները,
- Ջավա - logging, unittest, threading մոդուլները (դրանց բնօրինակների հնարավորությունների մի մասն իրագործված չէ), xml.sax ստանդարտ գրադարանները, բացառությունների վերամշակման ժամանակ finally-ի և except-ի համատեղ օգտագործումը, @-ի օգտագործումը դեկորատորներում,
- Icon - գեներատորները։
Python-ի այլ առանձնահատկությունների մեծ մասը (օրինակ, ելատեքստային կոդի բայթ-կոմպիլյացիան) նույնպես այլ լեզուներում ավելի վաղ արդեն իրագործ են եղել։
Դյուրատարություն
խմբագրելPython-ն աշխատում է գրեթե բոլոր հայտնի հարթակների վրա՝ Գրպանի անձնական համակարգիչներից մինչև մեյնֆրեյմներ։ Գոյություն ունեն տարբերակներ Microsoft Windows-ի, գրեթե բոլոր UNIX համակարգերի (այդ թվում՝ FreeBSD-ի և Լինուքսի), Plan 9-ի, Մաք ՕԷսի, iPhone OS 2.0 և ավելի բարձր տարբերակների, Palm OS-ի, OS/2-ի, Amiga-ի, HaikuOS-ի, AS/400-ի և նույնիսկ OS/390-ի, Windows Mobile-ի, Symbian-ի և Անդրոիդի[22] համար։
Այս կամ այն հարթակի հնանալուց հետո լեզվի հիմնական ճյուղում դրա աջակցումը դադարեցվում է։ Օրինակ, 2.6 տարբերակից սկսած դադարեցվել է Windows 95-ի, Windows 98-ի և Windows ME-ի[23] աջակցությունը։ Սակայն այդ հարթակների վրա կարելի է օգտագործել Python-ի նախկին տարբերակներ․ այս պային Python-ի համայնքը աջակցում է լեզվի 2.3-ից սկսած բոլոր տարբերակները (դրանց համար ժամանակ առ ժամանակ թարմացումներ են թողարկվում)։
Չնայած այս ամենին, ի տարբերություն այլ դյուրատար համակարգերի, բոլոր հիմնական հարթակների համար Python-ն ունի տվյալ հարթակին բնորոշ տեխնոլոգիաների աջակցությւոն (օրինակ, Microsoft COM/DCOM)։ Ավելին, գոյություն ունեն Python-ի հատուկ տարբերակ Java―ի համար՝ Jython-ը։ Այն թույլ է տալիս ինտերպրետատորին կատարվել Java―ի աջակցությամբ ցանկացած համակարգում։ Java―ի դասերը կարող են օգտագործվել և նույնիսկ գրվել Python-ի միջոցով։ Որոշ նախագծեր ապահովում են նաև Microsoft .NET հարթակի հետ ինտեգրացիան։ Դրանցից հիմնականներն են IronPython-ը և Python.Net-ը։
Տվյալների տիպերն ու կառուցվածք
խմբագրելPython-ն աջակցում է տվյալների դինամիկ տիպավորում, այսինքն՝ փոփոխականի տեսակը որոշվում է այն օգատգործելու ժամանակ։ Այդ իսկ պատճառով, «փոփոխականին արժեք վերագրել» արտահայտության փոխարեն ավելի ճիշտ է օգտագործել «արժեքի կապումը որոշակի անվան հետ» արտահայտությունը։ Python-ն ունի հետևյալ ներկառուցված տիպերը՝ տրամաբանական (boolean), տողային, Յունիկոդ-տողեր, կամայական ճշտությամբ ամբողջ թվեր, լողացող կետով թվեր, բարդ թվեր և մի շարք այլ տիպեր։ Հավաքածուներից Python-ում կան հետևյալ տիպերը՝ ցուցակներ, կորտեժներ (չփոփոխվող ցուցակ), բառարաններ, բազմություններ և այլն[24]։ Բոլոր արժեքները, այդ թվում՝ ֆունկցիաները, մեթոդները, մոդուլները, դասերը, համարվում են օբյեկտներ։
Տվյալների նոր տիպ ստեղծելու համար անհրաժեշտ է կամ գրել նոր դաս (class), կամ հրապարակել նոր տիպը ընդլայնման մոդուլում (օրինակ, Սի լեզվով գրված մոդուլում)։ Դասերի համակարգը աջակցում է ժառանգում (միակի և բազմակի) և մետածրագրավորում։ Ներկառուցված տիպերի և ընդլայնումների տիպերի մեծ մասը հնարավոր է ժառանգել[25] և bpython[26]։
Բոլոր օբյեկտներն բաժանվում են երկու մասի՝ հղումային և ատոմային։ Ատոմային են int
-ը, long
-ը, complex
-ը և մի շարք այլ օբեկտներ։ Ատոմային օբյեկտների վերագրման ժամանակ պատճենվում են դրանց արժեքները, մինչդեռ հղումային օբյեկտների դեպքում պատճենվում է միայն դեպի այդ օբյեկտ հղումը, որի շնորհիվ երկու փոփոխականներն էլ օգտագործում են միևնույն արժեքը։ Հղումային օբյեկտներն իրենց հերթին լինում են 2 տեսակի՝ փոփոխվող և չփոփոխվող։ Օրինակ, տողերը և կորտեժները չփոփոխվող են, իսկ ցուցակները, բառարանները՝ փոփոխվող։ Python-ում կորտեժը, փաստորեն, համարվում է չփոփոխվող ցուցակ։ Շատ դեպքերում կորտեժներն ցուցակներից ավելի արագ են աշխատում[27], ուստի, եթե չեք ցանկանում փոփոխել հաջորդականությունը, ապա ավելի լավ է օգտագործել դրանք։
Տես նաև
խմբագրելՆշումներ
խմբագրելPython-ը ստաբիլ և բավականին տարածված լեզու է։ Այն օգտագործվում է բազմաթիվ նախագծերում։ Դրանցից մի մասում այն օգտագործվում է որպես հիմնական ծրագրավորման լեզու, մյուսներում՝ ծրագրերում ընդլայնումների ստեղծման համար։ Python լեզվով են ստեղծվել բազմաթիվ մեծ ու փոքր նախագծեր։ Այն նաև օգտագործվում է ապագայում ստեղծվելիք ծրագրերի համար նախատիպեր ստեղծելու համար։ Python-ը օգտագործվում է բազմաթիվ ընկերություններում[28]։
Python-ը, իր NumPy, SciPy և MatPlotLib փաթեթների շնորհիվ, շատ դեպքերում օգտագործվում է որպես գիտական հաշվարկների համար ունիվերսալ միջավայր։ Այդպիսով, այն շատ դեպքերում կարող է փոխարինել այնպիսի կոմերցիոն ծրագրերին, ինչպիսիք են Matlab-ը և IDL-ը[29][30]։
Ծանոթագրություններ
խմբագրել- ↑ 1,0 1,1 1,2 1,3 History and License - Python documentation
- ↑ Download Python
- ↑ https://impythonist.wordpress.com/2014/02/16/open-heart-with-guido-van-rosuuma-lost-interview-of-python-creator-part2/
- ↑ Why was Python created in the first place? — PSF.
- ↑ 5,0 5,1 Classes The Python Tutorial — PSF.
- ↑ An Introduction to Python for UNIX/C Programmers
- ↑ https://peps.python.org/pep-0318/
- ↑ https://docs.python.org/3.2/tutorial/controlflow.html
- ↑ Functional Programming HOWTO
- ↑ 10,0 10,1 https://docs.python.org/3/library/itertools.html
- ↑ Rossum G. v. Foreword for "Programming Python" (1st ed.) — Reston: 1996.
- ↑ Լեզվի ստեղծող Գվիդո վան Ռոսումի խոսքերով, անվանումը եկել է ոչ թե նույնանուն կենդանու կամ պիֆոն գերբնական էակի, այլ «Մոնթի Փայթոնի թռչող կրկեսը» հեռուսատշոույից։ Տես՝ http://docs.python.org/faq/general#why-is-it-called-python, սակայն օձի պատկերը արդեն վաղուց դարձել է լեզվի պաշտոնական պատկերանիշի մի մասը։
- ↑ About Python
- ↑ History and License - Python documentation
- ↑ PEP 20 - The Zen of Python
- ↑ Հումորային ակնարկ Գվիդոյի ազգությանը
- ↑ The Making of Python
- ↑ «Արխիվացված պատճենը». Արխիվացված է օրիգինալից 2016 թ․ փետրվարի 17-ին. Վերցված է 2012 թ․ սեպտեմբերի 23-ին.
- ↑ Python 3.0 Release
- ↑ 20,0 20,1 Foreword for «Programming Python» (1st ed.)
- ↑ The Making of Python
- ↑ «Python on Android» (անգլերեն). www.damonkohler.com. Արխիվացված օրիգինալից 2011 թ․ հունվարի 28-ին. Վերցված է 2009 թ․ դեկտեմբերի 19-ին.
- ↑ «Port-Specific Changes: Windows». Python v2.6.1 documentation. What’s New in Python 2.6 (անգլերեն). Python Software Foundation. Արխիվացված օրիգինալից 2011 թ․ հունվարի 28-ին. Վերցված է 11 դեկտեմբերի, 2008-ին.
- ↑ Python Documentation - Built-in Types
- ↑ [https://web.archive.org/web/20180804135112/http://ipython.scipy.org/ Արխիվացված 2018-08-04 Wayback Machine
- ↑ [1]Արխիվացված 2011-05-11 Wayback Machine bpython interpreter]
- ↑ Are tuples more efficient than lists in Python? - Stack Overflow
- ↑ Python Success Stories
- ↑ Python vs Matlab Արխիվացված 2014-08-24 Wayback Machine Python for scientists blog
- ↑ IDL vs. Python AstroBetter Tips and Tricks for Professional Astronomers
Գրականություն
խմբագրել- Think Python by Allen Downey
- Python Programming for Data Science by Tomas Beuzen
- A. Sweigart., Invent Your Own Computer Games with Python, 2008-2010 — 436 էջ, ISBN 978-0-9821060-1-3։
- A. Sweigart., Core Python Applications Programming, 2012 — 888 էջ, ISBN 978-0-1326782-0-9։
Արտաքին հղումներ
խմբագրել- The Python Tutorial - Python documentation
- Python-ի դասընթացներ
- Learn Python the Right Way
- Learn Python Programming
- Python-ի հիմունքների դասընթաց
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Python» հոդվածին։ |