__БЕЗКН__
-{Python}- () је програмски језик високог нивоа опште намене. Подржава, у првом реду императивни, објектно-оријентисан и функционални стил програмирања. Синтакса језика -{Python}- омогућава писање веома прегледних програма. Језик се брзо и лако учи.
Програми писани у језику -{Python}- се најчешће интерпретирају. Уз интерпретатор се обично испоручује и веома развијена стандардна библиотека модула.
Аутор овог језика је Гвидо ван Росум са Универзитета Стичинг у Холандији.
Здраво свете За испис текста "-{Zdravo svete!}-" (без знакова навода), у верзијама језика које претходе верзији 3.0, може да се употреби следећи код: print ('Zdravo svete!')
У верзији језика 3.0 синтакса је нешто измењена. Горњи пример би изгледао овако: print('Zdravo svete!')
Исти текст, али овога пута заједно са наводницима, могао би да буде приказан извршавањем следећег Пајтон кода у интерактивном начину рада: 'Zdravo svete!'
О имену
Име програмског језика асоцира на змију питон али, по речима аутора, инспирацију за име је добио везано за „Летећег циркуса Монтија Пајтона“ (), -{BBC}--еву серију комедија актуелну седамдесетих година.
Настанак програмског језика Пајтон
мини|170п|Гвидо ван Росум, аутор програмског језика Пајтон
Програмски језик -{Python}- настао је почетком деведесетих година прошлог века. Његов аутор је Гвидо ван Росум. Он је у време настанка језика био запослен у -{Stiching Mathematish Centrum}- (-{CWI}-) у Холандији. Значајан утицај на концепт овог језика, по речима аутора, имао је ауторов рад на креирању програмског језика -{ABC}-.
Програмски језик -{Python}- постепено стиче велику популарност. У изградњу језика и онога што га окружује укључује се велики број људи, иако Гвидо остаје његов главни аутор. Сва ауторска права за овај програмски језик држи непрофитна организација -{Python Software Foundation}- (-{PSF}-).
Свако може да користи програмски језик -{Python}- бесплатно било у комерцијалне или у друге сврхе.
Свако може да постане донатор -{Python Software Foundation}- у новцу, или својим доприносом у изградњи језика или у сродним областима.
Развој програма
Интерпретатори и преводиоци
Програми у језику -{Python}- се углавном интерпретирају. Интерпретатори и стандардне библиотеке модула се стално развијају и преносе на велики број различитих платформи. Главне подржане платформе су Линукс, BSD, Mac OS X, Microsoft Windows и Јава. Следи списак других платформи које подржавају Пајтон: -{AIX operating system, Amiga, AROS, AS/400, BeOS, BSD, FreeBSD, Mac OS 9, NetBSD, OpenBSD, OS/2, OS/390, Palm OS, Plan 9, PlayStation 2, Psion, QNX, RISC OS}- (раније -{Acorn}-), -{Sharp Zaurus, SPAR Solaris, Symbian OS, VMS, VxWorks, Windows CE/Pocket PC, Xbox, z/OS}- ...
Постоје и прави преводиоци, који -{Python}- код преводе у машински језик. Они омогућавају да се створе извршни модули независни од интерпретатора, те да се програми извршавају брже. Оно што се губи оваквим превођењем је преносивост овако преведеног програма на различите хардверске и софтверске платформе.
Стандардне библиотеке модула
мини|-{Python}- долази спреман за рад: „Батерије су укључене“ у испоруку
За програмски језик -{Python}-развијен је велики број стандардних модула који омогућавају ефикасан рад у многим областима. Већина ових модула преносива је на различите платформе што омогућава да често комплетни програми без прилагођавања раде на различитим машинама и под различитим оперативним системима.
Стандардна библиотека модула омогућава писање програма везаних за Интернет подржавајући велики број стандардних формата и протокола. Постоје модули за креирање графичког корисничког интерфејса, везу ка релационим базама података, за аритметику са произвољним жељеним бројем децимала, за рад на лексичкој анализи применом регуларних израза, као и стандардни модули за многе друге послове.
Развој нових модула
Уколико је потребно развити нови модул, то је могуће извести у језику -{Python}- или у неком другом подржаном језику. Обично је то C језик, када је потребно системско програмирање или када је брзина извршавања критична. Примери других програмских језика, који се користе у ове сврхе, су Јава или -{Pyrex}- језик који представља мешавину програмског језика -{Python}- и -{C}- језика.
Организација података
Представљање података
Подаци у програмском језику -{Python}- су представљени објектима (). Сваки податак је представљен објектом или релацијом међу објектима. Преведене функције, методе и неки други елементи језика -{Python}- такође су представљени објектима током извршавања програма.
Променљиве и тип података
Тип податка у програмском језику -{Python}- није везан за променљиву. Свакој променљивој током извршавања програма може да буде додељена вредност било ког типа као и да та вредност буде замењена другом различитог типа.
Тип податка везан је за вредност коју садржи променљива. Све вредности променљивих су објекти.
Објекти
Сваки објекат садржи тип објекта и његову вредност. Једном креирани објекат не може да мења тип, док вредност неких објеката може да буде промењена. Променљивост објеката одређена је њиховим типом. Постоје: непроменљиви () објекти на пример: бројеви, ниске () и -{n}--торке променљиви () објекти на пример: речници и листе
Објекти уграђени у језик
-{Python}- поседује један број типова објеката који су уграђени у језик. Језик може да се прошири додатним типовима преко модула.
Следећи списак садржи неке од типова објеката који су уграђени у програмски језик -{Python}- :
Бројеви () Ови објекти бивају креирани из нумеричких лексема у изворном програму, или као резултат аритметичких оператора или функција. Једном креирани, не мењају вредност. Постоје три врсте бројева. То су цели бројеви, бројеви са покретним зарезом и комплексни бројеви: Цели бројеви () Представљају елементе математичког скупа целих бројева. Постоје три типа целих бројева: Обични цели бројеви () Цели бројеви у распону од -2147483648 до 2147483647, или ширем. Дуги цели бројеви () Цели бројеви у неограниченом распону који је једино лимитиран количином расположиве виртуелне меморије. Булов тип () Булов тип садржи само две вредности које представљају истиносне вредности тачно и нетачно. У већини ситуација оне се понашају као цели бројеви 0 и 1, осим код конверзије у ниске када се добијају вредности -{"False"}- и -{"True"}-. Бројеви са покретним зарезом () На машинском нивоу представљени су бројевима са покретним зарезом у двострукој тачности. Комплексни бројеви () На машинском нивоу представљени су паром бројева у облику са покретним зарезом у двострукој тачности. Низови () Они представљају коначне уређене скупове чији су индекси ненегативни цели бројеви. Могу да се поделе на непроменљиве и променљиве низове: Непроменљиви низови () Објекат који по типу спада у непроменљиве низове не може да буде измењен након његовог креирања (али непроменљивост не важи за евентуалне изменљиве објекте чије референце садржи непромењиви низ). Следећи типови спадају у непроменљиве низове: Ниске () Елементи ниске су знакови. Не постоји посебан знаковни тип података. Појединачни знак је представљен низом од једног знака. Ниске могу да се користе и као низови бајтова и да се искористе, на пример, да би садржали податке учитане из датотеке. Уникод () Елементи оваквог низа су уникод кодови. n-торке () Елементи -{n}--торки су произвољни -{Python}- објекти. Синтаксно гледано -{n}--торке се формирају из листе израза међусобно раздвојених запетом. Променљиви низови () По креирању омогућавају измењивање: Листе () Садрже као елементе произвољне -{Python}- објекте. Синтаксно гледано добијају се уписивањем листе израза раздвојених запетом у угласте заграде. Пресликавања () Представљају коначан скуп објеката индексиран произвољним скупом индекса: Речници () То су коначни скупови објеката индексирани вредностима готово било ког типа. Једини типови објеката који нису прихватљиви као индекси су објекти типа листи или речника или други променљиви типови. Извршиви типови () Ово су објекти на које може да се примени позив (извршење) функције: Функције које дефинишу корисници () За сваку дефинисану функцију, у тренутку извршавања програма, креира се један овакав објекат. Он се позива (извршава) уз листу параметара која треба да садржи исти број параметара као и листа формалних параметара дефиниције функције. Методе које дефинишу корисници () Овакви објекти повезују класу, примерак класе и било који извршиви тип (обично функцију коју дефинишу корисници). .. .
Опис језика
оквир|десно|Интерактивни начин извршавања -{Python}- кода
Основна својства језика описана су кроз низ једноставних примера. Већина примера написана је као да се извршавају у интерактивном моду интерпретатора. Ознаке -{">>>"}- и -{"· ·"}- на почетку линије означавају оно што је корисник унео, док је одговор интерпретатора написан без ових уводних знакова. Примери одговарају верзији 3.0 -{Python}- језика.
Бројеви
Интерпретатор језика може да се користи за рачунање.
Цели бројеви
Примери рада са целим бројевима:
>>> 2 + 3 5 >>> 4 + 8 # Komentar počinje iza znaka "# " i završava se na kraju linije 12 >>> 3 * 2 # Množenje 6 >>> 4 + 3*5 # Koristi se u matematici uobičajeni redosled računanja 19 >>> 5*(4 + 3*(2 + 1)) # Grupisanje operanada se vrši jedino malim (oblim) zagradama 65 >>> 6 // 2 # Celobrojno deljenje 3 >>> 7 // 2 # Ostatak pri celobrojnom deljenju se zanemaruje u rezultatu 3
У раду са целим бројевима увек се добија тачан резултат. Ово омогућује прелазак (по потреби) на бројеве произвољне дужине:
>>> 2 ** 1024 # 2 na stepen 1024 179769313486231590772930519078902473361797697894230657273430 081157732675805500963132708477322407536021120113879871393357 658789768814416622492847430639474124377767893424865485276302 219601246094119453082952085005768838150682342462881473913110 540827237163350510684586298239947245938479716304835356329624 224137216
Бројеви у облику са покретним зарезом
Комплетно је подржан рад са бројевима са покретним зарезом. Синтаксно, они се разликују од целих бројева по присуству децималне тачке или евентуално експоненцијалне нотације. Уколико оператор има као операнде целе и бројеве у покретном зарезу, врши се претварање свих операнада у облик са покретним зарезом.
>>> 7.0 / 2 3.5 >>> 1e1 / 4 # Deset (jedan puta deset na prvi stepen) podeljeno na četiri dela 2.5 >>> 5 * 3.25 / 2.5 6.5
Комплексни бројеви
Подржани су и комплексни бројеви. Имагинарни део комплексног броја се означава суфиксом -{"j"}- или -{"J"}-. Комплексни бројеви чији је реални део различит од нуле пишу се у облим заградама.
>>> (5+4j) - (3+1j) (2+3j) >>> (3+5j) + (0+2j) (3+7j) >>> (3+5j) + 2j (3+7j) >>> 1j * 1j (-1+0j) >>> (2+3j) * 3 (6+9j) >>> 2 + 3j*3 (2+9j) >>> (4+9.5j) / (1.5+2j) (4+1j)
Додељивање вредности
Знак -{"="}- користи се код додељивања вредности променљивим: >>> цена = 3.50 >>> број_комада = 4 >>> цена * број_комада 14.0
Подржано је вишеструко додељивање вредности: >>> x = y = z = 17 >>> x 17 >>> y 17 >>> z 17
Окупљајући типови података
Ниске
Рад са нискама () је снажно подржан у -{Python}- језику. Ниске садрже низове знакова и нису изменљиве.
Ево неколико начина да се креира ниска:
>>> 'Ovo je niska' 'Ovo je niska' >>> "Mogu da se koriste i dvostruki navodnici" 'Mogu da se koriste i dvostruki navodnici' >>> niska = 'Pera je rekao "Ja volim da programiram".' >>> print(niska) Pera je rekao "Ja volim da programiram".
Ниске могу да се повежу употребом оператора "+" и да се понове више пута помоћу оператора "* ": >>> 'Ja' + 'Mislim' 'JaMislim' >>> 'Ja' + 3 * ' mislim,' + '...' 'Ja mislim, mislim, mislim,...'
Деловима ниске може да се приступи путем индекса. Почетни индекс је нула.
>>> реч = 'Престолонаследниковица' >>> реч 'П' >>> len(реч) # Враћа дужину ниске 22 >>> реч # Враћа последњи знак ове ниске у облику ниске дужине један 'а' >>> реч[3:6] # Део ниске од позиције 3 до, али не укључујући, позиције 6 'сто' >>> реч[:6] # Првих шест знакова 'Престо'