Ownagezone.files.wordpress.com



Програмски ?азик Па?тонСтудент: Даме ?ованоскиПрофесор: Д-р ?ор?и ?ованчевски2/7/2012Содржина TOC \o "1-3" \h \z \u Вовед PAGEREF _Toc316317198 \h 41.Теори?а на програмира?е PAGEREF _Toc316317199 \h 51.1Програмски ?азици и видови PAGEREF _Toc316317200 \h 61.2Програмски парадигми и карактеристики PAGEREF _Toc316317201 \h 81.2.1Структурно програмира?е PAGEREF _Toc316317202 \h 91.2.2Об?ектно-ориентирано програмира?е PAGEREF _Toc316317203 \h 101.2.3Функциско програмира?е PAGEREF _Toc316317204 \h 111.2.4Логичко програмира?е PAGEREF _Toc316317205 \h 121.3Елементи на програмските ?азици PAGEREF _Toc316317206 \h 131.3.1Лексика PAGEREF _Toc316317207 \h 141.3.2Синтакса PAGEREF _Toc316317208 \h 151.3.3Семантика PAGEREF _Toc316317209 \h 161.3.4Типови податоци PAGEREF _Toc316317210 \h 171.3.5Контрола на текот на програмата PAGEREF _Toc316317211 \h 182.Програмски ?азик - Па?тон PAGEREF _Toc316317212 \h 192.1Парадигма на програмскиот ?азик Па?тон PAGEREF _Toc316317213 \h 202.2Споредба со други ?азици PAGEREF _Toc316317214 \h 202.3Намена/користе?е PAGEREF _Toc316317215 \h 213.Програмска структура PAGEREF _Toc316317216 \h 223.1Типови податоци PAGEREF _Toc316317217 \h 253.2Деклараци?а на променливи и изрази PAGEREF _Toc316317218 \h 263.3Контролни структри PAGEREF _Toc316317219 \h 293.4Декларации PAGEREF _Toc316317220 \h 313.4.1Податочни структури PAGEREF _Toc316317221 \h 323.4.2Функции PAGEREF _Toc316317222 \h 333.4.3Класи и об?екти PAGEREF _Toc316317223 \h 343.5Исклучоци PAGEREF _Toc316317224 \h 363.6Библиотеки PAGEREF _Toc316317225 \h 374.Инсталаци?а на Па?тон работната околина PAGEREF _Toc316317226 \h 374.1Дебагира?е PAGEREF _Toc316317227 \h 40Заклучок PAGEREF _Toc316317228 \h 42Библиографи?а PAGEREF _Toc316317229 \h 43Вовед Со создава?ето на буловата алгебра од страна на ?орд Бул се поставуваат темелите на комп?утерската наука. Денес секо?дневието зависи од комп?утерските системи кои функционираат преку обработка на информации прикажани во бинарна форма т.е машински ?азик. За да можат лу?ето (програмерите) да програмираат во одреден систем се по?авило потреба од програмски ?азици на високо ниво со што би вовеле апстракци?а на функционира?ето на комп?терскиот систем. Таа апстракци?а се однесува на тоа да програмерот не му е важно ко? операции ги извршува процесорот. Според тоа потребата за создава?е на програмски ?азици е непоходна за креира?е на посложени комп?утерски апликации.Теори?а на програмира?еДенес не би можеле да замислиме ниту една технологи?а што би функционирала без користе?е на неко? програмски ?азик. Програмските ?азици му овозможи?а на програмерите комуникаци?а со машините т.е хардверот преку користе?е на команди (програмски кодови) коишто имаат функци?а да извршат одредена пресметка и да ги исполнат бара?ата на програмерот во зависност од поставената задача. Во оваа комуникаци?а (програмира?е) на корисник-машина/хардвер посто?ат пове?е нивоа на апстракци?а. Тие нивоа се поставени затоа што хардверот работи на машински код составен од единици и нули, што е неефикасно програмерот да поставува задачи во машински код затоа што ?е му биде потребно многу време да ги разбере. За олеснува?е на таа комуникаци?а е создаден ассемблер ко?што е програмски ?азик на ниво повисоко од машинскиот ?азик и е воведен да ?а намали апстракци?ата поме?у програмер/хардвер, но сепак е неефиксен за денешните комплексни апликации. Затоа се создадени програмските ?азици на високо ниво со на?голема апстракци?а за хардверот, воведени со цел да го олесни начинот на програмира?е на програмерите при креира?ето на комплексни апликации.Слика 1. Комуникаци?а корисник-харвер.Денес има голем бро? на програмски ?азици класифицирани према нивната употреба и начинот на програмира?е, но нивната природа е математички базирана. Во комп?утерската наука програмски ?азик е множество од зборови коишто се резервирани за да извршат одредена функци?а. Овие зборови (програмски кодови) при креира?ето на еден програмски ?азик се уникатно дефинирани и неможат да се употребат од страна на програмерот за друга нивна намена, пример командите while или for во зависност од програмскиот ?азик имаат одредена функци?а.Претходно споменавме дека употребата на програмските ?азици е математички базирана, праша?ето е ко?а е поврзаноста поме?у математиката и програмира?ето. Одговорот на тоа праша?е е природата на проблемите што се решаваат, што значи дека проблемите што се решаваат во програмира?ето се тесно поврзани со математички теореми не зависност од ко?а математичка област припа?аат. Проблемите во програмира?ето се поврзани со тоа како и на ко? начин ?е се изврши пресметка и процесира?е на податоците, па за таа цел се воведени алгоритмите кои имаат математичка позадина. Чекорите за создава?е на теоретска анализа за математички модели се:податоциначинот на процесира?е на податоцитеалгоритми за процесира?е на податоципарадигми и програмски ?азици за изразува?е на алгоритмисистемска и машинска архитектура за имплементаци?а на програмските ?азици. Овие чекори всушност ги опишуваат ме?усебните зависности на елементите податоци-алгоритам-програмски ?азик-имплементаци?а на алогоритам во прорамски ?азик. Во креира?ето на теоретската анализа на математичките модели се започнува од податоците, како тие ?а променуваат сво?ата вредност (форма) преку одредени пресметки со користе?е на одредени алгоритми и зависностите на алгоритмите креирани во одредениот програмски ?азик имплементирани на одредена системска или машинска архитектура.Програмски ?азици и видовиЗа да можеме да ги разбереме како функционираат програмските ?азици треба да ги разбереме нивните три на?важни концепти и тоа:ПодатоциСинтакса СемантикаЗа улогата на податоците во програмските ?азици често се поставуваат праша?ата што се подразбира под податоци, какви видови на податоци треба да се употребат, како тие се имплементираат во програмскиот ?азик. Исто така често поставувани праша?а за синтаксата се како се декларираат променливи, функции, класи, потоа ко? се резервирани функции во еден програмски ?азик, на ко? начин можеме да ги детектираме грешките во програмата и сл. За семантиката често поставувани праша?а се што типови на елементи се фунцкициите, класите, об?ектите, полиморфизмот, наследува?ето и сл. Доколку дадеме одговор на сите овие праша?а ние всушност ?е дефинираме што претставува еден програмски ?азик како целина. Како резултат на секо?а успешно извршена команда во еден програмски ?азик ние секогаш добиваме одреден излез без разлика дали тоа е само обична вредност или неко?а датотека. Според сложеноста програмските ?азици се делат на : машински, симболични и виши програмски ?азици.Машински ?азик претставува ?азик на на?ниско ниво т.е ниво на коешто работи процесорот, а тоа се одредени инструкции составени од бинарни 1 и 0.Во симболичните ?азиците спа?аат претставуваат програмски ?азици коишто се на ниско ниво и ко? се на?блиску до машинскиот ?азик. Оваа група на ?азици се користи за програмира?е на процесори, микропроцесори и микроконтролери. Тие функционираат на то? начин што податоците се внесуваат во посебни мемориски локации преку користе?е на процесорските регистри. Во оваа група на ?азици спа?аат: x86, MASM, NASM, GAS и други.Виши програмски ?азици се програмски ?азици кои при извршува?ето користат компа?лери за преведува?е на изворниот код во машински код. Преведува?ето се врши на то? начин што се извршуваат одредени операции како проверка на грешки, пред-процесира?е, парсира?е, анализа на семантиката, генерира?е на код и оптимизаци?а. Како дел од вишите програмски ?азици се и интерпретираните ?азици кои претставуваат програмски ?азици во коишто извршните датотеки индиректно се извршуваат. За разлика од компа?лерите, интерпретерите изворниот код директно го извршуваат и се побавни од нив. Во оваа група на ?азици спа?аат: Па?тон, Perl, Ruby и други. Слика 2. Процес на преведува?е на изворен код во машинскиКако резултат на компа?лира?ето се создава извршна датотека. Во оваа група на ?азици спа?аат: C, C++, Lisp и други.Слика 3. График на програмски ?азици според употребатаПрограмски парадигми и карактеристикиПрограмска парадигма е логички пристап во софтверското инжи?ерство за да се опише како програмскиот ?азик е имплементиран. Програмските парадигми се уникатни за секо? програмски ?азик во сво?от домен. Многу програмски ?азици подржуваат пове?е програмски парадигми. Теминот прадигма на?добро се опишува како “шема или модел”, затоа програмската парадигма може да се дефинира како шема или модел во софтверското инжи?ерство со цел креира?е на апликации. Денес посто?ат многу различни програмски парадигри, но на?користени и на?популарни се:ИмперативноСтруктурно програмира?еОб?ектно-ориентирано програмира?еФункциско програмира?еЛогичко програмира?еСтруктурно програмира?е Структурното програмира?е е програмерска парадигма ко?а била предложена од два?цата математичари Corrado Boh (Корадо Бох) и Guiseppe Jacopini (?узепе ?акопини), ко?што математички претставиле дека секо?а комп?утерска апликаци?а може да биде составена само од три дела и тоа: услови, низи и циклуси. Исто така Edsger Dijkstra (Едгер Ди?стра) во едно од неговите натписи познато под името Go To Statement Considered Harmful ?а об?аснува важноста на структурното програмира?е во комп?утерските науки. Според неговиот модел секо?а апликаци?а ко?ашто е развиена од програмерот е поделена на помали под-секции коишто имаат единствен влез или излез.Скоро секо? програмски ?азик може да ?а употребува оваа парадигма за да се избегнат одредени замки во неструктурните ?азици, но програмските ?азици кои не се наменети да ?а користат оваа парадигма се препорачува програмерот да го избегнува ово? начин на програмира?е, затоа што развиената апликаци?а може да даде слаби резултати во организаци?ата. Пове?ето модерни процедурални ?азици вклучуваат карактеристи ко?што ги има во структурното програмира?е. Како тип на структурното програмира?е може да се наведе и об?ектно-ориентираното програмира?е ко?што ги користи истите карактеристики како дел од об?ектите и класите.Структурното програмира?е ги има следниве карактеристики:Структурното програмира?е е тесно насочено кон решава?е на еден посебен проблемСтруктурното програмира?е се изведува преку постепено разградува?е на функцискоста#include<stdio.h> main(){ int n, sum = 0, remainder; printf("Enter an integer\n"); scanf("%d",&n); while( n != 0 ) { remainder = n % 10; sum = sum + remainder; n = n / 10; } printf("Sum of digits of entered number = %d\n",sum); return 0;}Код 1. Пример за програмска структура во ЦОб?ектно-ориентирано програмира?еОб?ектно-ориентирано програмира?е е програмерска парадигма ко?а има различен концепт на програмира?е за разлика од останатите програмски парадигми. Во об?ектно ориентираното програмира?е на?важна улога имаат об?ектите и класите. Об?ектите всушност претставуваат апстранкта слика на предметите од реалниот свет. На пример об?ектот “рака” ко? е дел од нашето тело има одредени променливи карактеристики и функции. Класите како апстрактно множество се употребуваат во ово? вид на програмира?е за креира?е на инстанци (об?екти), кои имаат свои карактеристики ( пример. во класата може да има елемент тип на рака). При креира?ето на инстанците (об?екти) ние ги наведуваме тие карактеристики па потоа ги креираме. Главни особини карактеристични за об?екто-ориентираното програмира?е се:об?екти и класи – класите и об?ектите претставуваат апстрактни слики на поими од реалниот свет. Преку дефинира?ето на класата т.е не?зините особини како име, типови на променливи, функции се овозможува креира?е на об?екти кои ?е ги имаат карактеристиките на класите.наследува?е – преку употребата на наследува?ето се овозможува наследува?е на карактеристиките на претходно дефинираните класи.полиморфизам – преку полиморфизмот одредени функции за одредени податочни типови или класи податоците процесираат ги процесираат на различен начин.Dynamic binding (динамичко поврзува?е/обврзува?е)енкапсулаци?а – спо?ува?е на одредени поими – дефинира?е на типот на елементитеинтерфе?си – групира?е на одредени елементи во класа или стурктура.Програмски ?азици кои спа?аат во оваа програмска парадигма се: C++,C#, PHP, Lua, JavaScript, Visual Prolog и други. <?php class test { public static function run() { print "Works\n"; } } $className = 'test'; $className::run();?>Код 2. Пример за употреба и креира?е на об?екти и класи во PHP програмскиот ?азикФункциско програмира?еФункциско програмира?е е програмерска парадигма се базира на математичка теори?а и теори?а на функции. Оваа програмерска парадигма специфицира што треба да се пресмета во апстрактна форма, и исто така се базира на креира?е на математички функции. Функциското програмира?е ги има следниве карактеристики:програмата се состои од последователни функционални имплементации,функциите можат да имаат локални имплементации од други функции ( исто така можат да бидат и вгнездени),функциите неможат да имаат несакани последици ( пример. ако на името Х му е доделена одредена вредност, при повикува?ето на функци?ата не би се дозволило промена на оваа вредност).Причинити за одбира?е на програмски ?азик од оваа парадигма се:сигурност (програмите во програмските ?азици од оваа парадигма се стремат кон тоа да имаат што е можно помалку грешки),продуктивност (програмите во програмските ?азици од оваа парадигма се стремат на скратува?е на времето при програмира?е на одредена апликаци?а за разлика од другите програмски ?азици.ефикасност на пове?епроцесорски системи.LISP е еден од првите програмски ?азици од оваа парадигма, ко?што на?многу се користел за вештачка интелегенци?а поради тоа што на?добро се соодветствувал со симболичното процесира?е. Името LISP го добило од “LISt Processing”, затоа што листите биле во главно употребувани како податочни структури. (defun factorial (N) "Compute the factorial of N." (if (= N 1) 1 (* N (factorial (- N 1)))))Код 3. Пример за програмска структура во LISPЛогичко програмира?еЛогичкото програмира?е е програмерска парадигма во ко?ашто се прави обид да се овозможи изразува?е на логиката различно од особините на другите парадигми кои користат множество на дефинирани иструкции. Ово? тип на програмира?е е претставена во 1970 од Robert Kowalski (Роберт Ковалски) и Alain Colmerauer (Алаин Колмерауер). Логичкото програмира?е е базирано на first order predicate логиката. Програмите во логичкото програмира?е се базираат на колекции на клаузули. Пролог е акроним за програмира?е логика и логичките програмерски концепти. Карактеристични концепти за логичкото програмира?е се:Fакт (единица клаузула): На?едноставен вид на тврде?е се нарекува факт во ко? се наведува однос поме?у об?ектиПравило (програмска клаузула)Квери (цел): Кверито се употребува за добива?е на информации од логичкатаПрограмски ?азици кои спа?аат во оваа програмска парадигма се: Alma-0, CLACL, Curry, Formula One, Fril, Janus и други.proc Factorial(x:<I,yy:.L) iff if x > 0 then Factorial(x-1,yy) & yy := yy*x & if x mod 100 = 0 then {show progress} Print('\r',x) end else yy := 1 end Код 4. Пример за употреба на логичкиот програмски ?азик Formula OneЕлементи на програмските ?азициПретходно споменавме дека главните елементи на програмските ?азици се: симантика, синтакса и податоци, но за добро да ги разбереме треба да ги дефинираме подетално што подразбираат овие карактеристики, и исто така треба да го об?аснеме кои се тие елементи од ко?што е составен еден програмски ?азик. За дефинира?е на овие елемнти ?е користеме псевдокод ко?што не е програмски ?азик туку е симолично прикажува?е (со зборови) на програмскиот код на еден програмски ?азик ко?што е разбирлив за секо? програмер без разлика ко? програмски ?азик го познава. Во ово? дел ?е ги об?аснеме следниве елементи ко?што ги има во пове?ето популарни програмски ?азици:ПроменливиУсловиЦиклусиПоли?а и низиФункцииПодаточни типовиПокажувачиДинамичка алокаци?а на мемори?ата и податочни структуриЛексикаЛексичката структура на еден програмски ?азик претставува множество на правила што треба да не насочат како треба да пишуваме програми (апликации) во одреден програмски ?азик. Со тоа се дефинираат правилата на на?ниско ниво како на пример како правилно се дефинира име на променлива и какви карактери можат да бидат употребувани, како се пишуваат коментари во една програма и сл. Делот ко?што компа?лерите или интерпретерите ко?што се проверува дали лексиката на програмскиот код е точна се вика лексичка анализа. Посто?ат и други начини за проверка на лексиката и тоа:Regular expressions (регуларни изрази) – препознава?е на одредена група на точни изразиFinite-state automata (FSAs) – претставуваат апстракни машини кои можат да се искористат за лексичка анализаDeterministic ?nite-state automata – преставува апстрактна машина што исто така може да препознава карактери и да прави нивна анализа.Преведувачи од FSA во регуларни изрази.променлива=3+2ЛексичкаАнализаЗнакsumизраз=оператор6бро?+оператор4бро?Код 5. Пример за лексичка анализа СинтаксаСинтаксата во програмските ?азици се однесува на начините со ко?што сиболите можат да бидат комбинирани со цел креира?е на правилна реченица (програмски код или програма). Синтаксата ?а дефинира формалната врска но структурата на програмскиот ?азик и можноста за опишува?е на различни изрази како дефинирани изрази во то? ?азик. Синтаксата единствено се однесува на формата и сруктурата на симболите во програмскиот ?азик без оглед на нивното значе?е. Со други зборови синтаксата се однесува на тоа како програмите всушност изгледаат во еден програмски ?азик, нивната форма и структура, и всушност таа ги дефинира правилата на граматиката во програмскиот ?азик. Lexical AnalyzerSourceprogramGet next tokentokenParserRest of front endParserParsetreeIntermediaterepresentationСлика 4. Процес на синтаксна анализа преку користе?е на парсер.СемантикаСемантиката го открива значе?ето на синтаксички правилната низа на карактери во еден програмски ?азик. Ка? природните ?азици, семантиката ?а претставува врската поме?у ме?усебно поврзани реченици и фрази со об?екти, мисли, и чуства од нашите искуства. Во програмските ?азици, семантиката го опишува однесува?ето на комп?утерот при извршува?е на програма. На то? начин ние можеме да го откриеме начинот на однесува?е на програмата и врската поме?у влезот и излезот, или при об?аснува?е на чекор по чекор извршува?е на програмата на одреден систем. Синтаксата мора да биде одредена пред семантиката биде??и значе?е може да му се даде само на точно формирани изрази. Истотака, семантиката мора да биде формулирана пред да се земат во предвид проблемите на прагматиката, биде??и интеракци?ата со корисниците може да се смета во изрази чие значе?е ве?е е дефинирано.Backus–Naur формализамот обезбедува концизен начин на опишува?е на можни начини на комбинаци?а на конституенти т.е ово? начин претставува нотаци?а за опишува?е на синтаксата на ?азикот во програмските ?азици. То? има дополнителна предност за имплементаци?а на програмските ?азиците, и ни прикажува како се формира рекуризи?а и податочните структури (дрвата за синтакса). <conditional stmt> ::= if <boolean expr> then <stmt> else<stmt>| if <boolean expr> then<stmt> Код 6. Пример за Backus–Naur формаКако алтернатива на Backus–Naur форма се употребуваат и синтаксните ди?аграми, кои се користат за одредува?е на точниот редослед на извршува?е на програмските команди во еден програмски ?азик.Слика 5. Процес на синтаксна анализа преку употреба на синтаксни ди?аграми.Типови податоциПодаточен типови претставуваат класификаци?а т.е дефинира?е на типот на податокот, големината на податок, значе?ето на податокот, начинот на ко?што типот на податок може да биде зачуван и функциите ко?што можат да се извршат на то? податок. Скоро сите програмски ?азици ги подржуваат следниве податочни типови:integers (цели броеви)booleans (булеан или логички броеви)characters (карактери)floating point/float (реални броеви)alphanumeric string (алфанумерички низи)Integers или целите броеви претставуваат податочни типови составени од математички вредности со негативни и позитивни цели броеви. Обсегот на овие типови на множества е следен:ГолеминаОбсег8 bits-128 .. 12716 bits-32768 .. 3276732 bits-2147483648 .. 214748364764 bits-9223372036854775808 .. 9223372036854775807Табела 1. Опсег на вредностите на целите броевиboolean или булеан броевите се податочни типови кои можат да имаат вредност точно или неточно што претсавуваат вистинити вредности од логиката и од буловата алгебра.Characters или карактер податочните типови можат да имаат вредност составени од карактери од природниот ?азик и броеви.Floating point/float претставуваат податочни типови се всушност исти на реалните броеви од математиката и опфа?аат вредности кои содржат поместувачка точка (пример 1.34).Аlphanumeric string претставуваат податочни типови ко?што всушност се опишуваат како низа на последователни карактери. Контрола на текот на програматаВо програмира?ето концептот “контрола на текот на програмата” се однесува на редоследот на извршува?е т.е добива?е на резултати преку одреден дефиниран избор. Во програмските ?азици има пове?е видови за контрола на текот и тоа:редоследна или секвенцнаПочеток чекор-А чекор-Б ...кра?Код 7. Псевдокод за редоследна контролна структураВо контролна структура текот на извршува?е зависи од редоследот на командите што се наведени.избор или селекци?аКонтролните структури за избор и селекци?а функционираат на то? начин што текот на извршува?ето зависи од еден или пове?е услови.ако логички израз тогаш чекор-А инаку чекор-Бкра?-ако (логички израз)Код 2. Псевдокод за контролна структура за изборповторува?е или циклусциклус чекор-А чекор-Б .... чекор-Мкра?_циклусКод 8. Псевдокод за повторува?е или циклус Контролните структури за повторува?е, функционираат на то? начин што извршуваат одредени команди се додека одреден услов не биде задоволен.скокПочеток скок-лини?а ....Код 9. Псевдокод за скок Исто така во минатото се употребувала и наредбата за безусловен скок goto што се сметала дека со не?зината употреба се нарушува функцискоста на апликаци?ата. Оваа команда работи на принцип со наведува?е на делот до ко? сакаме моменталното извршува?е да продолжи.Програмски ?азик - Па?тонКреира?ето на програмскиот ?азик па?тон е започнато кон кра?от на 80тите години, а неговата имплементаци?а е направена во Декември 1989 од страна на Guido van Rossum (Гвидо Ван Росим) во институтот за истражува?е CWI во Холанди?а. Како наследник на ABC програмскиот ?азик, па?тон имал можност за справува?е со испади и овозможувал подршка со Amoeba оперативниот систем. Во Февруари 1991 Ван Росим ?а об?авил верзи?ата 0.9.0 ко?ашто ги имала можности во процесот на разво? на апликаци?а, користе?е на класи, наследува?е, фунцкии, податочни типови и модули кои биле поза?мени од програмскиот ?азик Modula-3. Името ово? програмски ?азик го добило од британскиот филмот Monty Па?тон's Flying Circus.Парадигма на програмскиот ?азик Па?тонДенес Па?тон програмскиот ?азик го има во многу модифицирани и адаптирани верзии. На интернет страната на the Па?тон Software Foundation, е наведено дека ово? програмски ?азик е создаден во програмскиот ?азик C, ?ава базирана верзи?а на па?тон постои во ?ython и ко?акористи ?ава фунцкии. Iron па?тон, претставува C# верзи?а и е достапна за .Net и Mono платформата со што на C# програмерите им се овозможува пристап до па?тон. На секо?а од овие инстанци, Па?тон е имплементиран со цел да работи заедно со тие ?азици, поради добрата интеракци?а со модулите од различни работни околини.За целите на истражува?е и разво?, исто така има имплементаци?а во Па?тон работната околина. Проектот PyPy ко? е создададен во 2003 година им овозможи на Па?тон програмерите да можат да го менуваат интерпреторт на Па?тон во сво?а корист. Тоа укажува на фактот дека е развиван како open source проект, развиен од страна на заедницата на програмери за коишто е достапен за бесплатен разво? и дистрибуци?а. PyPy исто така е подржан од Европската Уни?а како Specified Targeted Research Project (STReP), како дел од FP6 фондаци?ата.Па?тон е програмски ?азик ко?што спа?а во об?ектно-ориентиранита парадигма. Изворниот код не е директно преведен во машински код пред програмата да се изврши, туку додека се извршува програмата. Исто така подржува и други видови на парадигми како функциската и структруната.Споредба со други ?азициПа?тон програмскиот ?азик во споредба со другите програмски ?азици прикажува одлични перформанси. За пример ?е ?а земеме примената на Па?тон во веб апликативното програмира?е во споредба со другите популарни ?азици како: PHP, Ruby и Perl.Слика 6. Мере?е на брзината при испишува?е на Hello WorldНа слика 3 ни е прикажано испитува?ето на брзината на програмскиот ?азик Па?тон при испишува?ето на низата карактери Hello World, и како што можеме да забележеме дека ово? програмски ?азик за прилично брз период го извршува тоа. На десниот дел од графикот ни е прикажано преку ко?а парадигма какви перформански се постигнати т.е преку користе?е на об?ектно-ориентираната, структурната и без користе?е на ниту една парадигма. Слика 7. Мере?е потребната мемори?а при извршува?е на апликациитеНамена/користе?еПа?тон е програмски ?азик за општа намена, и мо?е да биде употребен од страна на било ко? оперативен систем. Лесно може да биде употребен за процесира?е на текст, броеви, слики, специфични податоци и секаков тип на податоци или датотеки што сакаме да бидат снимено на нашиот комп?утер. Пребарувачот на Google исто така употребва скрипти во Па?тон за извршува?е на дневни операции, YouTube користи Па?тон за дистрибуци?а на видео записи, а исто така од поголемите компании што користат Па?тон се NASA и New York Stock Exchange. Овие се само примери за тоа каде ово? програмски ?азик се користи,а има важна улога во успехот на бизнис компаниите, државните агенции и непрофитните организации.Hunch е нов вид на AI филтер, како и систем за детално пребарува?е како и социеална мрежа. Hunch користи Па?тон примарно за нивниот интерфе?с, како и останатите составни делови користат фунции во Па?тон кои функционираат како една целина. ltraseek Server е комерциален пребарувач, во ко? е имплементиран пристап со користе?е на пове?е-нишки. Во главно поголемиот дел од ово? пребарувач е составен од програми направени во Па?тон како на пример HTTP оптимизатор и web crawler. Ово? пребарувач е составен од 11.000 линии од код во Па?тон, а додека корисничкиот интерфе?с е составен од 17.000 линии програмски код.Програмска структураПа?тон програмскиот ?азик припа?а на групата на интерпретирани програмски ?азици, и неговата програмска структура зависи од тоа ко? начин на програмира?е се употребува. Па?тон програмскиот ?азик може да се употреби за:об?ектно-ориентирано програмира?ефункциско програмира?еструктурно програмира?еВо зависност од тоа каков вид на програмира?е ?е се употреби зависи и структурата на ово? програмски ?азик. За секо?а структура има посебно дефинирани програмски команди кои што можат да се употребуваат. За да можеме да ?а забележеме разликата во начинот на програмира?е, ?е дадеме пример на апликаци?а во Линукс оперативниот систем за следе?е на состо?бата на хард дискот (disk-monitoring): Структурно програмира?е и неговата програмска структура во Па?тон from subprocess import Popen, PIPEimport redef disk_space(pattern="2[0-9]%", message="CAPACITY WARNING:"): #takes shell command output ps = Popen("df -h", shell=True,stdout=PIPE, stderr=PIPE) output_lines = ps.stdout.readlines() for line in output_lines: line = line.strip() if re.search(pattern,line): print "%s %s" % (message,line)disk_space()Код 10. Пример за програмска структура во Па?тон со користе?е на структурното програмира?еКако што можеме да видеме со ово? пример е прикажано програма т.е програмската структура во Па?тон со користе?е на структурното програмира?е. Ово? пример нема да биде об?аснет во целост како фунцкионира туку е употребен само за да се види начинот на ко? се креира процедура (фунцки?а) и како таа се повикува. Об?ектно-ориентирано програмира?е и неговата програмска структура во Па?тонfrom subprocess import Popen, PIPEimport reclass DiskMonitor(): """Disk Monitoring Class""" def __init__(self, pattern="2[0-9]%", message="CAPACITY WARNING", cmd = "df -h"): self.pattern = pattern self.message = message self.cmd = cmd def disk_space(self): """Disk space capacity flag method""" ps = Popen(self.cmd, shell=True,stdout=PIPE,stderr=PIPE) output_lines = ps.stdout.readlines() for line in output_lines: line = line.strip() if re.search(self.pattern,line): print "%s %s" % (self.message,line)if __name__ == "__main__": d = DiskMonitor() d.disk_space()Код 11. Пример за програмска структура во Па?тон со користе?е на об?ектно-ориентирано програмира?еПри користе?ето на об?ектно-ориентираното програмира?е во Па?тон се користат об?екти и класи. Според примерот можеме да го забележеме начинот на користе?е на класи и об?екти и нивна употреба. Програмската структура во употребата на класи и об?екти можеме да забележеме употреба на програмски код со што се назначува почетокот на апликаци?ата, а тоа е __main__. На почетокот на апликаци?ата се дефинираат ко? библиотеки ?е бидат искористени како додатоци на апликаци?ата.Функциско програмира?е и неговата програмска структура во Па?тонfrom subprocess import Popen, PIPEimport redef disk_space(pattern="2[0-9]%", message="CAPACITY WARNING:"): #Generator Pipeline To Search For Critical Items ps = Popen("df -h", shell=True,stdout=PIPE, stderr=PIPE) outline = (line.split() for line in ps.stdout) flag = (" ".join(row) for row in outline if re.search(pattern, row[-2])) for line in flag: print "%s %s" % (message,line)disk_space()Код 12. Пример за програмска структура во Па?тон со користе?е на функциско програмира?еЗа разлика од останатите начини на програмира?е и структури во Па?тон, оваа програмска структура т.е програмска структура на функциското програмира?е дефинира решава?е на одреден проблем различен од об?екно-ориентираното програмира?е и структурното. Разликата е во тоа што наместо класи, об?екти и програмски блокови (структурно програмира?е), како главни составни елементи се користат функциите. На примерот е прикажано како се користи функциското програмира?е и неговата програмска структура.Слика 8. Работна околина на Па?тон во Windows оперативниот системНа сликата е прикажана работната околина на програмскиот ?азик Па?тон во Windows оперативниот систем, исто така ово? програмски ?азик е подржан скоро од сите модерни оперативни системи како Linux, Windows и Mac, тоа значи дека апликациите во Па?тон без разлика во ко? оперативен систем се програмира?е функционираат и на другите оперативни системи (освен апликациите во кои се користени системски датотеки).Типови податоциВо Па?тон програмскиот ?азик посто?ат пове?е типови на податоци и тоа:int (integer) – цели броевиfloat – реални броевиlong – големи вредности за броеви или низиcomplex – комплексни броеви составени од реален и имагинарен делКа? ово? програмски ?азик при дефинира?ето на променливите ние не треба да го наведуваме типот на променлива за разлика ка? некои програмски ?азици. Големината на овие променливи е прикажана на претходните страни кадешто е дефинирано општо за сите програмски ?азици.Ц – програмскиот ?азикЦ# – програмски ?азикПа?тон – програмски ?азикPHP – програмски ?азикint a;a=2;int a;a=2;a=1$a=2;Код 13. Пример за инициализаци?а на променливи спрема типот на променливатаДеклараци?а на променливи и изразиКако што претходно споменавме дека деклараци?ата на променливите е прилично едноставна, и за разлика од останатите програмски ?азици не се наведува од ко? тип на променлива се променливите. Примери за иници?ализаци?а на променливи:>>> a=12>>> print a12Код 14. Пример за инициализаци?а на целобро?ни променливиКако што можете да видете од примерот е направена инициализаци?а на променлива, ко?а добива целобро?на вредност и исто така е искористена наредба за прикажува?е на екранот т.е печате?е на екранот (print).>>> a=”dame jovanoski">>> print adame jovanoski>>>Код 15. Пример за инициализаци?а на низа на знациНа ово? пример ни е прикажано како се инициализира променлива ко?а содржи низа на знаци т.е каракетери. Карактерите се ASCII знаци кои се разбирливи за човекот, а имаат и сво? код со цел да бидат разберени или процесирани од страна на машината (комп?утерот).>>> a=1.2>>> print a1.2Код 16. Пример за инициализаци?а на променливи од реалните броевиНа ово? пример ни е прикажано како се инициализира променлива од реалните броеви. За разлика од математиката каде инциализаци?а имаме со користе?е на децималната запирка, овде се користи точка за назначува?е од каде започнуваат децималните вредности.Исто така има и резевирани оператори што можат да бидат искористени на променливите што сме ги декларирале, и улогата на секо? од операторите исто така зависи од тоа ко? тип на променлива сме употребиле.Операци?аРезултатX+YСума на x и yX - YРазлика на x и yX * YПроизвод на x и yX / YКоличник на x и yX // YКоличник на x и y без остатокX % YОстатокот на првиот количник на x и y-XНегативно x+XПозитивно xabs(x)Абсолутна вредност на xint(x)Претвора?е на x во цел бро?long(x)Претвора?е на x во долг бро?float(x)Претвора?е на x во реален бро?complex(re,im)Комплексен бро? со реален и имагинарен делc. conjugate()кон?угат на комплексниот бро? cdivmod(x,y)исто е како (x // y, x % y)pow(x,y)x на степен yx ** yx на степен yКод 17. Примери за оператори на променливи и нивна употребаКако што можеме да видеме на табелата ни се прикажани операндите на проемнливите во Па?тон и нивната соодветна улога.Исто така важна улога имаат операторите за печате?е и внесува?е на вредности. За употребата на операторот за печате?е е прикажан на пример Код 8.>>> a=12>>> print a12Код 18. Пример за употреба на операторот за печате?е.За внесува?е на вредности се користи операторот raw_input и начинот на ко?што то? се употребува е следен:raw_input(порака што сакаме да се испише на екранот први внесува?е на вредност)Код 19. Начин на употреба на операторот за внесува?е на карактери.Според тоа како се употребува ово? оператор можеме да го дадеме следниов пример, за тоа како ово? оператор може да се искористи за внесува?е и инициализаци?а на вредност на одредена променлива, и потоа таа вредност ние ?е можеме да ?а употребеме за извршува?е на одредени операции или искуристува?е на одреден оператор во зависност од типот на променлива ко? го користеме.>>> b=raw_input("Vnesete ime i prezime:")Vnesete ime i prezime:dame jovanoski>>> print bdame jovanoskiКод 20. Пример за употреба за внесува?е на карактери.Според примерот Код 10 ние внесуваме одредена низа на карактери, вредност ко?а ?е биде доделена на променливата b, и со искористуваа?е на операторот за печате?е (операторот за испишува?е на екран) ?е ?а прикажеме вредноста на променливата што ?а имаме внесено. Контролни структриПретходно споменавме кои се контролни структури посто?ат ка? програмските ?азици. Па?тон програмскиот ?азик ги има следниве резервирани комади за контрола на текот на извршува?е:If изразотFor изразотbreak, continue и else изразитеWhile изразотНачинот на ко?што тие се користат во Па?тон е следен:If изразотIf условот спа?а во групата на изрази каде доколку е извршен одреден услов се извршуваат и група на изрази. Пример за негова употреба е прикажано на пример Код 11>>> a=raw_input("Vnesete eden broj:")Vnesete eden broj:22>>> if a>0:print "Brojot sto go vnesovte e pogolem od 0"Brojot sto go vnesovte e pogolem od 0Код 21. Пример за употреба на if условотПреку примерот може да се забележи дека имаме внесува?е на одредена вредност и иници?ализаци?а на истата во променлива “a”, потоа со користе?е на резервираниот збор if поставуваме одреден услов. Доколку условот е исполнет (како што е случа? во ово? пример), ?е биде испишано на екранот “Brojot sto go vnesovte e pogolem od 0” т.е секо?а команда што следи после операторот “:” со ко?што се започнува внесува?е на низа на команди дефинирани да бидат извршени доколку условот биде исполнет, а доколку условот не биде исполнет се претскокнува извршува?е на овие команди т.е командите после операторот “:”.>>> a=raw_input("Vnesete eden broj:")Vnesete eden broj:22>>> if a>0:print "Brojot sto go vnesovte e pogolem od 0" elif a==0: print “Brojot sto go vnesovte e ednakov na 0”Brojot sto go vnesovte e pogolem od 0Код 22. Пример за употреба на if условотИсто така можеме да го употребеме и резервираниот збор elif, доколку сакам нашата програма да проверува пове?е услови, доколку првиот услов не биде остварен. Деклараци?ата на командите што треба да се извршат за секо? услов посебно е ист како и за главниот услов if.For изразотFor изразот спа?а во групата на изрази каде се извршува множество на изрази се додека одреден услов не биде исполнет. Употребата на ваквот тип на израз ?е биде прикажано на пример Код 13.>>> a="dame">>> for x in a:print xdameКод 23. Пример за употреба на for циклусотПреку пример Код 13 ние можеме да видеме како се употребува for изразот т.е преку дефинира?е на одредена низа на карактери, со што преку променливата x се поминува низ секо?а буква од низата на карактери преку одредени итерации наречени циклуси, затоа и for изразот уште го нарекуваме и цуклус. Тие циклуси се извршуваат се додека не биде извршен одреден услов, а во ово? случа? условот е “Извршува? итерации се додека има карактери во ‘a’ “, тоа значи дека условот во ово? пример е бро?от на карактери во низата ‘a’.break, continue и else изразитеBreak и continue изразите се користат како дел од циклусите со цел прекин доколку одредени други услови се исполнети. Према пример Код 14 можеме да заклучиме дека имаме одреден услов со ко? наведуваме дали x е еднакво на ‘a’, и доколку е исполнет условот да се прекинат останатите итерации на циклусот. >>> a=”dame”>>> for x in a:if x=="a":print xbreakaКод 24. Пример за употреба на break изразот во for циклусРазликата поме?у break и continue, е таа што кога се извршува break изразот останатите команди што следат во продолжение се претскокнуваат т.е не се извршуваат, а додека па со continue се извршуваат и останатите кодови што следат после оваа команда.Else изразот се користи доколку одреден услов не е исполнет да се извршат други команди коишто немаат никаков услов (ова значи дека не е исто со elif) т.е се извршуваат доколку главниот услов не е исполнет.a = 100if a>0: print "a e polemo od 0"else: print "a e pomalo od 0"Код 25. Пример за употреба на break изразот во for циклусWhile изразотWhile изразот се користи слично како и for циклусот за извршува?е на одредени итерации се додека одреден услов не биде извршен. На пример Код ни е прикажана неговата употреба, и како што можеме да видеме дека во заградите се дефинира условот што сакаме да биде исполнет, а после операторот “:” се дефинираат командите што сакаме да се извршуваат.>>>а=5>>> b=0>>> while (b<a):b=b+1print b12345>>>Код 26. Пример за употреба на while циклусотДекларации Преку дефинира?е на основните елементи на програмскиот ?азик Па?тон т.е како се дефинираат променливи и како се употребуваат контролните структури, може да се креираат апликации за манипулира?е (пресметка на податоците). Со користе?е на податочни структури всушност можеме да ги организираме податоците според одредана структура. Преку дефинира?е на функции, класи и об?екти можеме да ?а подобреме организираноста и воведеме реупотребува?е на одредени делови програмски код.Податочни структуриНа?често користиени податочни структури во Па?тон се листи, стекови и кврериа. Во Па?тон за да ?а прикажеме употребата на стекови и квери?а ?е бидат употребени листите со функции денифирани за овие два типови на податочни структури. >>> a = [66.25, 333, 333, 1, 1234.5]>>> print a.count(333), a.count(66.25), a.count('x')2 1 0>>> a.insert(2, -1)>>> a.append(333)>>> a[66.25, 333, -1, 333, 1, 1234.5, 333]>>> a.index(333)1>>> a.remove(333)>>> a[66.25, -1, 333, 1, 1234.5, 333]>>> a.reverse()>>> a[333, 1234.5, 1, 333, -1, 66.25]>>> a.sort()>>> a[-1, 1, 66.25, 333, 333, 1234.5]Код 27. Листи и нивни фунцкииНа пример Код 17 е прикажано како се дефинираат листи т.е со употреба на ‘[‘ и ’]’ и внесува?е на елементите поме?у овие оператори. Со print a.count(333) се прикажува на ко?а позаци?а се нао?а елементот во листата, и доколку го нема елементот т.е доколку не е дел од листата се вра?а вредност 0. За внесува?е и ваде?е на елементи од листата се употребуваат фунцкиите insert и append каде се дефинира (за insert) на кое место се внесува нов елемент, а со append со вредноста на елементот, се отстранува од листата. За отстраву?е на елементи од листите исто така се користи и remove, кадешто се наведува вредноста на елементот што сакаме да се отстрани. Со reverse и sort функциите ние можеме да го менува?е редоследот на листите т.е со reverse елементите на листата ?е ни се прикажат во спротивен редослед т.е првиот елемент сега ?е биде последниот елемент на листата. Со sort функци?ата ние можеме да ?а сортираме листата спрема вредностите на елементите.ФункцииЗа да можеме да имаме подобра организаци?а и реупотребува?е на одреден програмски код се воведува употребата на фунцките. Тие ни овозможуваат преку дефинира?е на параметри т.е аргументи кои ?е бидат процесирани од страна програмскиот код дефинирани во рамките на фунцки?ата и добива?е на резултат ко? што може да биде вратен назад до делот каде што се повикува фунцки?ата.>>> def fib(n): ... "Pecatenje na fibonaci nizata do n."... a, b = 0, 1... while a < n:... print a,... a, b = b, a+bКод 28. Фибоначи низата во функци?аНа пример Код 18 ни е прикажана фунцки?а ко?што ?е ?а дефинира фибоначи низата. Дефинирнира?ето на фунцкиите се врши со резервираниот збор def, потоа наведуваме како ?е се вика функци?ата што сме ?а дефинирале (во ово? случа? fib), и влезните аргументи во фунцки?ата (во ово? случа? n). Откако сме ?а дефинирале фунцки?ата ?а повикуваме на следниов начин.... fib(2000)0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597Код 29. Фибоначи низата во функци?аКако што можеме да видеме дека со наведува?е на името на фунцки?ата и не?зиниот влезен аргумент, ние ?а повикуваме функци?ата да се изврши т.е кодот што сме го дефинирале, со што во ово? случа? ние имаме како резултат на успешно извршува?е печате?е на резултатот од пресметките на екранот.>>> def fib2(n): ... """Vrakanje na lista koja sodrzi fibonaci nizata."""... result = []... a, b = 0, 1... while a < n:... result.append(a) ... a, b = b, a+b... return result...>>> f100 = fib2(100) # повикува?е на функци?а>>> f100 # печате?е на резултатот[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]Код 30. Фибоначи низата во функци?аОд пример Код 20 користе?е на резервираниот збор return. Во ово? пример имаме и употреба на листа кадешто ?е бидат сместени вредностите кои се резултат од пресметките. Тие резултати ?е бидат вратени до делот кадешто била повикана оваа функци?а и исто така ?е бидат иници?ализирани (во ова? случа? променливата f100).Класи и об?ектиДефинира?ето и користе?ето на класите и об?ектите е воведено со подобра организаци?а и дефинира?е на фунцките. Употребата на класите и об?ектите се воведени од страна на об?ектно-ориентираното програмира?е. Употребата на класи и об?екти е воведена со цел отсликува?е на реалните факти и предмети со цел употреба во комп?утерските науки.class ИмаНаКласа: <израз-1> . . . < израз -N>Код 31. Дефинира?е на класиВо една класа можеме да ги дефинираме сите променливи и фунцкии со што би ?а карактеризирале класата како еден апстрактен модел т.е целина дефинирана од овие променливи и функции. Дефинира?ето на класи во Па?тон е прикажано на пример Код 20, каде со употребата на резервираниот збор class дефинираме како ?е се вика класата, а потоа следуваат изразите кои ?е бидат карактеристични за таа класа.class NekojaKlasa: Name = " NekojaKlasa" def __init__(self, arg1, arg2): self.value1 = arg1 self.value2 = arg2 def display(self): print self.Name print self.value1 print self.value2Код 32. Дефинира?е на класиНа пример Код 21 е прикажано како се дефинира класа (во ово? случа? името на класата е NekojaKlasa). Со def се дефинирани две функции, од кои со __init__ се дефинира конструкторот ко?што е функци?а ко?а се повикува автоматски при повикува?е на класата. Со self резервираниот збор се дефинира дека фунцки?ата или променливите повикани од страна на об?ектот, да се иници?ализираат со променливите на класата. На следниот пример е прикажано како тоа се извршува.A = BaseClass(“Hello”,”World!”)A.display()Код 33. Дефинира?е на инстанциНа Код 22 примерот, кога креираме об?ект, наведуваме од ко?а класа ?е биде об?ектот и ко? вредности ?е ги искористиме за иници?ализаци?а. Во ово? случа? за да креираме об?ект се потребни два аргументи, ко?што се всушност аргументи на конструкторот на класата. Следно според примерот е тоа повикува?е на функци?а со што би се овозможило печате?е на вредностите на екранот. class ИмеНаКласа(ПретхоноДефиниранаКласа):Код 23. Наследува?е во Па?тонНаследува?ето е важен концепт во об?ектно-об?ектно ориентираното програмира?е, неговата употреба во Па?тон е прикжана на пример Код 23.class NovaKlasa(NekojaKlasa): Name = " NovaKlasa " def __init__(self, arg1): self.value3 = arg1 Код 34. Наследува?е на класиКласите кои се декларираат со наследува?е ги добиваат карактеристиките на нивните родител класи и исто така можат да воведат нови параметри и фунцкии кои ?е бидат карактеристични за неа. На пример Код 24 може да се виде дека класата од ко?а што треба да бидат наследени особинете и наведена после името на новата класа поме?у операторите ‘(‘ и ‘)’.ИсклучоциИсклучоците се воведен со цел справува?е со грешки, со што би се спречило прекин на работата на една апликаци?а. Нивната употреба е прикажана на пример Код 25.>>> while True:... try:... x = int(raw_input("Vnesete cel broj: "))... break... except ValueError:... print "Vneseniot broj ne e validen"Код 35. ИсклучоциНа пример Код 25 можеме да забележеме како се применуваат исклучоците и на ко? начин тие фунцкионираат. Според примерот треба да се внесе вредност што ?е биде целобро?на, и доколку таа вредност не е целобро?на ?е се прикаже грешка. Кодот што се проверува дали има грешка се става после резервираниот збор try, и доколку се се по?ави грешка таа ?е биде прикажана. Except ValueError е делот кошто ракува со грешката што се по?авила и како резултат на тоа извршува одреден програмски код ко?што е дефиниран после ‘:’.БиблиотекиСо Па?тон работната околина има додатни библиотеки коишто можат да се употребат со цел да не бидат повторно пишувани од страна на програмерот. За таа цел е овозможено и креира?е на библиотеки од страна на програмерот. Начинот на креира?е на библиотеки е дефинира?е на фунцкии или класи и истите тие да бидат зачувани во датотека со екстензи?а .py. Начинот на повикува?е на дефинираните библиотеки е дефиниран на пример код 26.import ИмеНаФолдер.Датотека.ИмеНаФункци?аКод 36. Приклучни датотеки Листа на приклучи датотеки кои се дел од Па?тон програмскиот ?азик:sysconfig – датотека за конфигураци?а на Па?тон работната околинаpoplib – датотека за POP3 протокол за клиентhttplib – датотека за HTTP протокол за клиентcgi – датотека за подршка на Common Gateway Interfacethread - датотека за употреба на нишкиmath – датотека за употреба на математички функции Инсталаци?а на Па?тон работната околинаИнсталира?ето на работната околина е прилично едноставно. Таа на?првин треба да биде превземна од , во завиност од ко? оперативен систем го употребуваме различен е и начинот на не?зина инсталаци?а. Во Линукс оперативниот систе инсталаци?ата се врши со внесува?е на команди во командната лини?а во фолдерот на датотеките потребни за инсталаци?а на Па?тон.python setup.py installКод 37. Инсталира?е на Па?тон во ЛинуксИнсталира?ето на Па?тон програмскиот ?азик во оперативниот систем Windows е исто така прилично едноставен. На?првин се превзема извршната датотека од офици?алната страна и преку не?зино активира?е се по?авува прозорец во ко? се дефинираат локаци?ата и корисниците за кои ?е биде инсталирана работната околина.Слика 9. Чекор 1: Дефинира?е на група на корисници кои ?е можат да ?а користат работната околина на Па?тон програмскиот ?азикСлика 10. Чекор 2: Дефинира?е на локаци?ата кадешто ?е биде инсталирана работната околина на Па?тон програмскиот ?азикСлика 11. Чекор 3: Дефинира?е на датотеките кои се дел од работната околина на Па?тон програмскиот ?азик Слика 12. Чекор 4: Инсталаци?а на работната околина на Па?тон програмскиот ?азик Слика 13. Чекор 5: Нотификаци?а за успешна инсталаци?а на работната околина на Па?тон програмскиот ?азик Дебагира?еДебагира?ето е карактеристика на скоро секо? програмски ?азик кое е воведено со цел тестира?е и детектира?е на програски грешки на креираната апликаци?а. Како дел од Па?тон работната околина е pdb коешто е скратеница од Python Debugger т.е Па?тон дебагер. python -m pdb scripta.pyКод 38. Дебагира?е во Па?тонНа пример Код 28 е прикажано начин на автоматско дебагира?е т.е повикува?е на одредена апликаци?а за тестира?е, и доколку таа неуспешно се изврши, дебагерот ?е ни даде детален опис за грешката што настанала.>>> import pdb>>> import mojmodul>>> pdb.run('mojmodul.test()')> <string>(0)?()(Pdb) continue> <string>(1)?()(Pdb) continueNameError: 'spam'> <string>(1)?()(Pdb)Код 39. Дебагира?е во Па?тон преку команда лини?аНа пример Код 29 е прикажан пример на употреба на командната лини?а на Па?тон дебагерот. Преку import наведуваме ко?а програма, а пото?а преку pdb.run наведуваме ко?а функци?а сакаме да ?а дебагираме, и доколку при извршува?ето се по?ават грешки ?е ни бидат прикажани деталите за тоа на ко?а лини?а е грешката и ко? вид на грешка е.ЗаклучокДенешните апликации се производ на програмските ?азици кои се направени со цел да извршуваат одредени операции т.е се направени со одредена цел. Сложеноста на апликациите значително расти поради потребата на извршува?е на покомплицирани задачи и според тоа потребно е користе?е на одредени програмски ?азици кои се оптимизирани за извршува?е на тие сложени задачи. Па?тон програмскиот ?азик денес е употребен од страна на големи компании како Google, Facebook, NASA со што се докажува неговиот квалитет во извршува?е, брзина и точност.Библиографи?аThe C++ Programming Language: Special Edition - Bjarne StroustrupProgramming: Principles and Practice Using C++ - Bjarne StroustrupDesign Concepts in Programming Languages - Franklyn Turbak, David GiffordОснови на програмира?е C++ - Д-р ?ор?и ?ованчевски(computing)Па?тон-vs.-Perl-vs.-Ruby.html ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download