Pythondı úyreniw: 1-lekciya

Pythondı úyreniw
I BÓLIM. Baslaw

1-BAP
Python boyınsha soraw-juwap sessiyası
Python programmalastırıw tili

Adamlar nege Python qollanadı?
Házirgi waqıtta kóplegen programmalastırıw tilleri bar bolǵanlıqtan, bul jańadan baslaǵan adamlardıń birinshi sorawı boladı. Házirgi waqıtta 1 millionǵa jaqın Python paydalanıwshısı bar ekenligin esapqa alǵanda, bul sorawǵa tolıq anıqlıq penen juwap beriw múmkin emes; programmalastırıw quralların tańlaw girewli sheklewlerge yamasa jeke qálewge tiykarlanǵan bolıwı múmkin. Biraq sońǵı 12 jıl dawamında 225 toparda hám 3000 nan artıq studentke Python úyretkennen keyin, bazı ulıwma temalar payda boldı. Python paydalanıwshıları tárepinen keltiriletuǵın tiykarǵı faktorlar tómendegilerden ibarat:

Programmalıq támiynattıń sapası
Kópshilik ushın Pythonnıń oqıwǵa qolaylılıǵı, tutaslıǵı hám ulıwma programmalıq támiynattıń sapasına itibarı onı skriptlew dúnyasındaǵı basqa qurallardan parıqlı qıladı. Python kodı oqıwǵa qolay etip islengen, sonlıqtan qayta paydalanıwǵa hám saqlaw ushın qolay - dásturiy skriptlew tillerine qaraǵanda ádewir qolaylı. Python kodınıń bir tekliligi onı, eger siz onı jazbaǵan bolsańız da, túsiniwge jeńil qıladı. Bunnan tısqarı, Python obyektke baǵdarlanǵan programmalastırıw (OBP) sıyaqlı qosımsha programmalıq támiynattı qayta paydalanıw mexanizmlerine tereń qollawǵa iye.

Programmalıq támiynattı islep shıǵarıwshınıń ónimliligi
Python programmalıq támiynattı islep shıǵarıwshınıń ónimliligin C, C++ hám Java sıyaqlı kompilyaciya etiletuǵın yamasa statikalıq tiplengen tillerge qaraǵanda bir neshe ese asıradı. Python kodı uqsas C++ yamasa Java kodınıń úshten bir yamasa besten bir bólegin quraydı. Bul degeni azıraq jazıw, azıraq qátelerdi tekseriw hám keyinirek azıraq texnikalıq xızmet kórsetiw kerek degendi ańlatadı. Python programmaları basqa qurallar talap etetuǵın uzaq kompilyaciya hám baylanıstırıw basqıshlarısız birden isleydi, bul programmalıq támiynattı islep shıǵarıwshınıń tezligin ele de asıradı.

Programmanıń portativligi
Kópshilik Python programmaları barlıq tiykarǵı kompyuter platformalarında ózgerissiz isleydi. Mısalı, Python kodın Linux penen Windows arasında kóshiriw, ádette tek skript kodın mashinalar arasında kóshiriwden ibarat. Bunnan tısqarı, Python grafikalıq paydalanıwshı interfeyslerin, maǵlıwmatlar bazasına kiriwdi támiyinleytuǵın programmalardı, vebke tiykarlanǵan sistemalardı hám basqalardı kodlaw ushın bir neshe varianttı usınadı. Hátte programmalardı iske túsiriw hám kataloglardı qayta islew sıyaqlı operaciyalıq sistema interfeysleri de Python da múmkin bolǵanınsha portativ.

Qollaw kitapxanaları
Python aldınnan qurılǵan hám portativ funkcionallıqtıń úlken toplamı menen birge keledi, ol standart kitapxana dep ataladı. Bul kitapxana tekst úlgilerin salıstırıwdan baslap, tarmaqlı skriptlerge shekem bolǵan qollanba dárejesindegi programmalastırıw wazıypaların qollaydı. Bunnan tısqarı, Python óz betinshe islep shıǵılǵan kitapxanalar menen de, úshinshi tárep qollanbalardı qollaw baǵdarlamaları menen de keńeytiliw múmkin. Pythonnıń úshinshi tárep domeni veb-saytlardı qurıw, sanlı programmalastırıw, seriyalı portqa kiriw, oyın islep shıǵıw hám basqa kóp nárseler ushın qurallar usınadı. Mısalı, NumPy keńeytiwi Matlab sanlı programmalastırıw sistemasınıń biypul hám quwatlıraq ekvivalenti dep súwretlengen.

Komponentlerdi birlestiriw
Python skriptleri hár qıylı integraciya mexanizmlerinen paydalanıp, qollanbanıń basqa bólimleri menen ańsat baylanısa aladı. Bunday integraciyalar Pythondı ónim sazlawı hám keńeytiw quralı sıpatında qollanıwǵa múmkinshilik beredi. Búgingi kúnde Python kodı C hám C++ kitapxanaların shaqıra aladı, C hám C++ programmaları tárepinen shaqırılıwı múmkin, Java hám .NET komponentleri menen birge isle aladı, COM sıyaqlı freymvorklar arqalı baylanısa aladı, seriyalı portlar arqalı qurılmalar menen baylanısa aladı hám SOAP, XML-RPC hám CORBA sıyaqlı interfeysler arqalı tarmaqlarda óz-ara tásir ete aladı. Bul avtonomlı qural emes.

Ráhát
Pythonnıń qollanıwǵa qolaylılıǵı hám qurılǵan quralları toplamı arqasında programmalastırıw processi minnetke qaraǵanda kóbirek ráhát boladı. Bul materialıq emes payda bolsa da, onıń ónimlilikke tásiri áhmiyetli aktiv bolıp tabıladı. Bul faktorlardan birinshi ekewi (sapa hám ónimlilik) kópshilik Python paydalanıwshıları ushın eń itibarǵa ılayıq payda bolıwı múmkin.

Programmalıq támiynattıń sapası
Dizaynı boyınsha Python arnawlı ápiwayı hám oqıwǵa qolay sintaksisti hám joqarı dárejede tutaslıqqa iye programmalastırıw modelin ámelge asıradı. Jaqında bolıp ótken Python konferenciyasındaǵı slogannan kórinip turǵanınday, nátiyjede Python "siziń miyińizge sáykes keliwi" múmkin - yaǵnıy, tildiń ózgeshelikleri tutaslıqlı hám sheklengen usıllar menen óz-ara baylanısqa kiredi hám tiykarǵı túsiniklerdiń kishi toplamınan tábiyiy kelip shıǵadı. Bul tildi úyreniw, túsiniw hám este saqlawdı ańsatlastrıradı.

Ámeliyatta, Python programmalıq támiynattı islep shıǵarıwshılarına kodtı oqıw yamasa jazıw waqtında qollanbalardı úziliksiz qarap shıǵıwdıń zárúrligi joq; bul kópshilik adamlar tańqalarlıqtay qálipli kórinisten kóriniwshi kod beredi dep esaplaytuǵın izbe-iz proektlestirilgen sistema.

Filosofiyası boyınsha Python bir qansha minimalist usıldı qabıl etedi. Bul kodlaw wazıypasın orınlaw ushın ádette bir neshe usıl bar bolsa da, ádette tek bir anıq usıl, bir neshe azıraq anıq alternativalar hám tildiń hámme jerinde kishi tutaslıqlı óz-ara tásirler toplamı bar ekenligin ańlatadı. Bunnan tısqarı, Python siz ushın ıqtıyarlı sheshimler qabıl etpeydi; óz-ara tásirler anıq bolmaǵanda, "sıyqırlıqqa" qaraǵanda anıq aralasıw artıq kóriledi. Python oylaw usılında anıq bolǵanı únsiz esapqa alınǵannan jaqsı, al ápiwayısı quramalıdan jaqsı.

Usınday dizayn temasınan tısqarı, Python tábiyiy túrde kodtı qayta qollanıwdı alǵa súretuǵın moduller hám OBP sıyaqlı qurallardı óz ishine aladı. Python sapanı basshılıqqa alǵanlıqtan, Python programmalıq támiynattı islep shıǵarıwshıları da, tábiyiy túrde sapanı basshılıqqa aladı.

Programmalıq támiynattı islep shıǵarıwshınıń ónimliligi
1990-jıllardıń ortasınan aqırına shekem dawam etken ullı Internet boom dáwirinde programmalıq támiynattı jobalardı ámelge asırıw ushın jetkilikshe programmalıq támiynattı islep shıǵarıwshılardı tabıw qıyın boldı; programmalıq támiynattı islep shıǵarıwshılardan sistemalardı Internet rawajlanǵan tezlikte ámelge asırıw talap etildi. Búgin, jumısshılardı qısqartıw hám ekonomikalıq recessiya dáwirinde, kórinis ózgerdi. Programmalastırıw xızmetkerleri kóbinese házir sol wazıypalardı ele de az adam menen orınlawı talap etiledi.

Bul scenariylerdiń ekewinde de Python programmalıq támiynattı islep shıǵarıwshılarǵa az kúsh jumsap kóbirek is tamamlawǵa múmkinshilik beretuǵın qural sıpatında ilgerledi. Ol arnawlı rawajlanıw tezligi ushın optimallastırılǵan - onıń ápiwayı sintaksisi, dinamikalıq tiplew, kompilyaciya basqıshlarınıń joqlıǵı hám qurılǵan qurallar toplamı programmalıq támiynattı islep shıǵarıwshılarǵa basqa qurallardan paydalanǵanda kerek bolatuǵın waqıtqa salıstırǵanda programmalardı az waqıtta rawajlandırıw múmkinshiligin beredi.

Juwmaqlawshı tásir sonnan ibarat, Python programmalıq támiynattı islep shıǵarıwshınıń ónimliligin dástúriy tillerdi qollaw dárejesinen bir neshe ese asıradı. Bul ekonomikanıń kóteriliw hám hálsirew dáwirlerinde de jaqsı jańalıq hám programmalıq támiynatlı industriya usı aralıqta qay jerge barsa da jaqsı jańalıq.

Python "Skriptlew tili" me?
Python kóbinese skriptlew rollerin atqarıwda qollanılatuǵın ulıwma maqsetli programmalastırıw tili. Ol kóbinese obyektke baǵdarlanǵan skriptlew tili dep anıqlanadı - bul anıqlama OBP nı qollawdı skriptlew rollerine qaratılǵan ulıwma baǵdar menen birlestiredi. Haqıyqatında, adamlar kóbinese Python kod faylın súwretlew ushın "programma" sózi ornına "skript" sózin qollanadı.

Bul kitapta "skript" hám "programma" terminleri bir-biriniń ornına qollanıladı, biraq ápiwayıraq joqarı dárejeli fayl ushın "skript" sózine hám kóp fayllı quramalıraq qollanba ushın "programma" sózine azǵana artıqmash beriledi.

"Skriptlew tili" termini hár qıylı basqıshlar ushın sonshelli kóp hár qıylı mánilerge iye bolǵanlıqtan, ayırımlar onı Python ǵa ulıwma qollanılmawın qálegen bolar edi. Haqıyqatında, adamlar Python usılay belgilengenin esitkeninde, ayırımları basqalarına qaraǵanda paydalıraq bolǵan úsh hár qıylı baylanıstı eslerine túsiredi:

Shell quralları
Ayırım adamlar Pythondı skriptlew tili dep súwretlengenin esitkeninde, bul Python operaciyalıq sistemanı baǵdarlaw skriptlerin kodlaw ushın qural ekenligin ańlatadı dep oylaydı. Bunday programmalar kóbinese konsol buyrıq qatarlarınan iske túsiriledi hám tekst faylların qayta islew hám basqa programmalardı iske túsiriw sıyaqlı wazıypalardı orınlaydı. Python programmaları bunday rollerdi atqara aladı hám atqaradı, biraq bul Python qollanbasınıń onlaǵan keń tarqalǵan domenleriniń tek biri. Bul tek jaqsıraq shell-skript tili emes.

Basqarıw tili
Basqalar ushın skriptlew basqa qollanba komponentlerin basqarıw hám baǵdarlaw (yaǵnıy, skriptlew) ushın qollanılatuǵın "jelim" qatlamın ańlatadı. Python programmaları haqıyqatında da kóbinese úlken qollanbalardıń kontekstinde ornalastırıladı. Mısalı, apparatlıq qurılmalardı sınaw ushın Python programmaları qurılmaǵa tómen dárejeli kiriwdi beretuǵın komponentlerdi shaqırıwı múmkin. Sol sıyaqlı, programmalardı pútin sistemanıń derek kodın jiberiw hám qayta kompilyaciya qılıw zárúrlisiz aqırǵı paydalanıwshı ónimlerin sazlawdı támiyinlew ushın strategiyalıq noqatlarda Python kodınıń bóleklerin orınlawı múmkin. Pythonnıń ápiwayılıǵı onı tábiyiy iykemli basqarıw quralına aylandıradı. Biraq, texnikalıq jaqtan, bul da tek keń tarqalǵan Python roli; kóplegen (bálkim kópshilik) Python programmalıq támiynattı islep shıǵarıwshıları birlestiriwshi komponentlerdi hesh qollanbastan yamasa olar haqqında bilmesten avtonomlı skriptlerdi kodlaydı. Bul tek basqarıw tili emes.

Qollanıwǵa qolaylıǵı
"Skriptlew tili" terminin oylaw ushın eń jaqsı usıl, bálkim, onıń wazıypalardı tez kodlaw ushın qollanılatuǵın ápiwayı tilge tiyisli ekenligin túsiniw. Bul, ásirese, C++ sıyaqlı kompilyaciya etiletuǵın tillerge qaraǵanda programmalardı ádewir tezirek rawajlandırıwǵa múmkinshilik beretuǵın Pythonǵa qollanılǵanda durıs. Onıń tez rawajlanıw cikli bahalawǵa turaqlı tájiriybe jıynawdı talap etetuǵın izertlew, artıwshı programmalastırıw usılın qollap-quwatlaydı.

Biraq aldanbań - Python tek ápiwayı wazıypalar ushın emes. Kerisinshe, ol óziniń qollanıwǵa qolaylılıǵı hám iykemliliginiń arqasında wazıypalardı ápiwayılastıradı. Python ápiwayı funkcionallıq toplamına iye, biraq ol programmalardıń kerek bolǵanda quramalılıq boyınsha ósiwine múmkinshilik beredi. Usıǵan baylanıslı, ol kóbinese tez taktikalıq wazıypalar hám uzaq múddetli strategiyalıq rawajlanıw ushın qollanıladı.

Solay etip, Python skript tili me yaki joq pa?
Bul kimnen sorawıńızǵa baylanıslı. Ulıwma alǵanda, "skript" termini Pythonnıń qollap-quwatlaytuǵın tez hám iykemlі rawajlanıw usılın táriyiplew ushın qollanılǵanı maqul, al belgili bir qollanıw tarawın emes.

Yaqshı, biraq kemshiligi ne? Onı 17 jıl dawamında qollanıp, 12 jıl oqıtqannan keyin, men Pythonnıń jalǵız kemshiligin taptım: házirgi ámelge asırılıwında onıń orınlanıw tezligi C hám C++ sıyaqlı kompilaciya etiletuǵın tillerge salıstırǵanda bárqulla joqarı bolmawı múmkin. Biz ámelge asırıw koncepciyaları haqqında bul kitaptıń keyingi bólimlerinde tolıq sóz etemiz. Qısqasha aytqanda, búgingi kúndegi Pythonnıń standart ámelge asırılıwları derek kodı kórsetpelerin byte kod dep atalatuǵın aralıq formatqa kompilaciya etedi (yaǵnıy, awdaradı), keyin byte kodtı interpretaciya etedi. Byte kod platformaǵa ǵárezsiz format bolǵanlıqtan, kóshirmeligin támiyinleydi. Biraq, Python tolıq binary mashina kodına deyin kompilaciya etilmegenligi sebepli (mısalı, Intel chipi ushın kórsetpeler), ayırım baǵdarlamalar Pythonda C sıyaqlı tolıq kompilaciya etilgen tilge salıstırǵanda ásterek isleydi.

Orınlaw tezligindegi parqtıń sizge qashan áhmiyetli bolatuǵını qanday programmalardı jazatuǵınıńızǵa baylanıslı. Python bir neshe márte optimallastırılǵan hám Python kodı kópshilik qollanba domenlerinde ózi jetkilikli tezlikte isleydi. Bunnan tısqarı, Python skriptinde fayl menen islew yamasa grafikalıq paydalanıwshı interfeysin (GUI) qurıw sıyaqlı "haqıyqıy" nárseni islegen waqtıńızda, programmanıź haqıyqatında da C tezliginde isleydi, sebebi bunday wazıypalar Python interpretatorı ishindegi kompilyaciya etilgen C kodına birden jiberiledi.

Bunnan da tiykarǵısı, házirgi kompyuter tezliklerin esapqa alǵanda, Pythonnıń rawajlanıw tezliginiń artıwı kóbinese orınlaw tezliginiń joǵalıwınan ádewir áhmiyetlirek. Biraq, hátteki búgingi CPU tezliklerinde de optimal orınlaw tezligin talap etetuǵın ayırım domenler ele bar. Mısalı, sanlı programmalastırıw hám animaciya kóbinese óz tiykarǵı sanlar menen islew komponentleriniń hesh bolmaǵanda C tezliginde (yamasa onnan da jaqsıraq) islewin talap etedi. Eger siz usınday domende isleseńiz, siz ele de Pythondı qollana alasız - tek qollanbanıń optimal tezlikti talap etetuǵın bóleklerin kompilyaciya etilgen keńeytiwlerge bólip alıń hám olardı Python skriptlerinde qollanıw ushın sistemaǵa baylanıstırıń.
Biz bul tekstte keńeytiwler haqqında kóp aytpaymız, biraq bul haqıyqatında da bizler aldın talqılaǵan Python-basqarıw-tili roliniń bir kórinisi. Bul eki tilli strategiyanıń tiykarǵı mısalı - Python ushın NumPy sanlı programmalastırıw keńeytiwi; kompilyaciya etilgen hám optimallastırılǵan sanlı keńeytiw kitapxanaların Python tili menen birlestiriw arqalı NumPy Pythondı nátiyjeli hám qollanıwǵa qolaylı sanlı programmalastırıw quralına aylandıradı. Siz óz Python jumısıńızda bunday keńeytiwlerdi kodlawǵa hesh qashan múmkinshilikke iye bolmawıńız múmkin, biraq eger qashan da bir kerek bolıp qalsa, olar quwatlı optimallastırıw mexanizmin usınadı.

Búgingi kúnde Python dı kim qollanadı?
Usı waqıtqa kelip, Python paydalanıwshılar bazasınıń kóleminen birewlerdiń jasay alatuǵın eń jaqsı bahalawı - búgingi kúnde dúnya júzi boyınsha shama menen 1 million Python paydalanıwshısı bar (bir neshe artıq yamasa kem). Bul bahalaw júklep alıw tezlikleri hám programmalıq támiynattı islep shıǵarıwshılardıń sorawnamaları sıyaqlı túrli statistikalıq maǵlıwmatlarǵa tiykarlanǵan.

Python ashıq kodlı bolǵanlıqtan, anıǵıraq esaplaw qıyın - esaplaw ushın licenziya dizimnen ótkeriwleri joq. Bunnan tısqarı, Python avtomatik túrde Linux distribuciyalarına, Macintosh kompyuterlerine hám ayırım ónimler menen apparatlıq úskenelerge qosıladı, bul paydalanıwshılar bazası kórinisiniń ele de quramalılasıwına alıp keledi.
Biraq, ulıwma alǵanda, Python úlken paydalanıwshılar bazasına hám júdá aktiv programmalıq támiynattı islep shıǵarıwshılar jámiyetine iye. Python shama menen 19 jıl dawamında bar bolǵanlıqtan hám keń qollanılǵanlıqtan, ol sonday-aq júdá turaqlı hám isenimli. Jeke paydalanıwshılar tárepinen qollanılıwdan tısqarı, Python haqıyqıy kompaniyalar tárepinen haqıyqıy tabıs keltiriwshi ónimlerde de qollanılmaqta. Mısalı:
• Google óziniń veb-izlew sistemalarında Pythondı keń qollanadı hám Pythonnıń dóretiwshisin jumısqa alǵan.
• YouTube video bólisiw xızmeti tiykarınan Python da jazılǵan.
• Keń tarqalǵan BitTorrent bir-rangalı fayl bólisiw sisteması Python programması bolıp tabıladı.
• Googledıń keń tarqalǵan App Engine veb-rawajlanıw freymvorki Pythondı qollanba tili sıpatında qollanadı.
• EVE Online, Massivli Kóp Oyınshılı Onlayn Oyın (MMOG), Pythondı keń qollanadı.
• Maya, quwatlı integraciyalanǵan 3D modellestiriw hám animaciya sisteması, Python skriptlew API sin usınadı.
• Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm hám IBM Pythondı apparatlıq úskenelerdi sınaw ushın qollanadı.
• Industrial Light & Magic, Pixar hám basqalar Pythondı animaciyalı filmlerdi islep shıǵarıwda qollanadı.
• JPMorgan Chase, UBS, Getco hám Citadel Pythondı finanslıq bazar boljawın jasawda qollanadı.
• NASA, Los Alamos, Fermilab, JPL hám basqalar ilimiy programmalastırıw wazıypaları ushın Pythondı qollanadı.
• iRobot kompaniyası kommerciyalıq robototexnikalıq qurılmalardı rawajlandırıw ushın Pythondı paydalanadı.
• ESRI kompaniyası óziniń keń tarqalǵan GIS kartografiyalıq ónimlerin aqırǵı paydalanıwshı tárepinen sazlaw quralı sıpatında Pythondı qollanadı.
• AQSH Milliy qáwipsizlik agentligi (NSA) kriptografiya hám barlawshılıq analizi ushın Pythondı paydalanadı.
• IronPort elektron pochta serveri óniminde óz wazıypasın orınlaw ushın 1 millionnan artıq qatar Python kodı qollanıladı.
• "Hár bir balaga bir noutbuk" (One Laptop Per Child, OLPC) joybarı óziniń paydalanıwshı interfeysin hám xızmet modelin Pythonda quradı.

Hám solay dawam etedi. Búgingi kúnde Pythondı qollanıp atırǵan kompaniyalar arasındaǵı birden-bir ulıwma ózgeshelik, onıń qollanıw tarawları boyınsha hár jerge qollanılıwı. Onıń ulıwma maqsetli tábiyatı onı tek bir emes, derlik barlıq tarawlarǵa qollanıwǵa múmkinshilik beredi. Shınında da, programmalıq támiynat jaratıp atırǵan barlıq iri shólkemlerde Python qollanıladı dep isenim menen aytıwǵa boladı, ol qısqa múddetli taktikalıq wazıypalar ushın (mısalı, sınaw hám basqarıw) yamasa uzaq múddetli strategiyalıq ónim rawajlandırıw ushın bolsın. Python eki rejimde de jaqsı isleytuǵınlıǵın dálilledi.

Búgingi kúnde Pythondı qollanıp atırǵan kompaniyalar haqqında tolıǵıraq maǵlıwmat alıw ushın, Pythonnıń http://www.python.org saytına kirip kóriń.

Python menen ne islew múmkin? Jaqsı dizayn etilgen programmalastırıw tili bolıwdan tısqarı, Python haqıyqıy dúnyadaǵı wazıypalardı orınlaw ushın paydalı - programma islep shıǵıwshılar kúndelikli isleytuǵın nárseler. Ol hár qıylı tarawlarda keń qollanıladı, basqa komponentlerdi skriptlew hám ǵárezsiz programmalardı ámelge asırıw quralı sıpatında. Shınında da, ulıwma maqsetli til sıpatında, Pythonnıń wazıypaları derlik sheksiz: onı veb-sayt rawajlandırıwdan baslap oyınlar, robototexnika hám kosmoslıq apparat basqarıwına shekem hámme nárse ushın qollanıwıńız múmkin. Biraq, házirgi waqıtta Pythonnıń eń keń tarqalǵan wazıypaları bir neshe keń kategoriyalarǵa bólinedi. Keyingi bir neshe bólimde Pythonnıń búgingi kúndegi eń keń tarqalǵan qollanıwları, sonday-aq hár bir tarawda qollanılatuǵın qurallar táriyiplengen. Biz bul jerde tilge alınǵan qurallarǵa tereń toqtala almaymız - eger usı temalardıń qaysı biri menen qızıqsańız, qosımsha maǵlıwmat alıw ushın Python veb-saytına yamasa basqa dereklere baylanısıń.

Sistemalı programmalastırıw
Pythonnıń operaciyalıq sistema xızmetlerine arnalǵan qurılǵan interfeysleri onı kóshirmeli hám saqlanıwı ańsat bolǵan sistema-basqarıw quralların hám utilitaların (geyde shell quralları dep ataladı) jazıw ushın júdá qolaylı etedi. Python programmaları fayllar hám direktoriya aǵashların izley aladı, basqa programmalardı iske túsire aladı, processler hám threadler menen parallel islewdi ámelge asıra aladı hám taǵı basqalar. Pythonnıń standart kitapxanası POSIX baylanısları hám barlıq ádetdegi OS quralların qollap-quwatlawı menen birge keledi: ortalıq ózgeriwshiler, fayllar, soketler, qubırlar, processler, kóp sanlı threadler, regulyar ańlatpalar úlgilerin salıstırıw, komanda qatarı argumentleri, standart aǵım interfeysleri, shell komandaların iske túsiriwshiler, fayl atların keńeytiw hám taǵı basqalar. Bunnan tısqarı, Pythonnıń sistemalıq interfeysleriniń kóp bólimi kóshirmeli bolıwǵa arnalǵan; mısalı, direktoriya aǵashların kóshiriwshi skript ádette Pythonnıń barlıq tiykarǵı platformalarında ózgerissiz isleydi. EVE Online tárepinen qollanılatuǵın Stackless Python sisteması kóp processli talaplardı orınlaw ushın aldıńǵı qatardaǵı sheshimlerdi usınadı.

Grafikalıq paydalanıwshı interfeysleri (GUI)
Pythonnıń ápiwayılıǵı hám tez nátiyjege erisiw qábileti onı grafikalıq paydalanıwshı interfeysin programmalastırıw ushın da jaqsı tańlaw etedi. Python, Tk GUI API ushın tkinter dep atalatıǵın (2.6 versiyasında Tkinter) standart obyektke baǵdarlanǵan interfeys penen birge keledi, bul Python programmaların jergilikli kóriniske hám sezimge iye kóshirmeli GUI-lerdi ámelge asırıwǵa múmkinshilik beredi. Python/tkinter GUI-leri Microsoft Windows, X Windows (Unix hám Linux-te) hám Mac OS (Classic hám OS X ekewinde de) sistemalarında ózgerissiz isleydi. Biypul keńeytiwshi paket PMW tkinter qurallar toplamına qosımsha widget-lerdi qosadı. Bunnan tısqarı, C++ kitapxanasına tiykarlanǵan wxPython GUI API, Python-da kóshirmeli GUI-lerdi dúziw ushın alternativ qurallar toplamın usınadı.

PythonCard hám Dabo sıyaqlı joqarı dárejeli qurallar toplamları wxPython hám tkinter sıyaqlı tiykarǵı API-lerge tiykarlanǵan. Sáykes kitapxana menen siz Python-da basqa qurallar toplamlarındaǵı GUI qollap-quwatlawın da qollana alasız, mısalı, PyQt menen Qt, PyGTK menen GTK, PyWin32 menen MFC, IronPython menen .NET hám Jython (2-bapda túsindiriletuǵın Pythonnıń Java versiyası) yamasa JPype menen Swing. Veb-brauzerlerda isleytuǵın yamasa ápiwayı interfeys talaplarına iye qollanbalardı, kelesi bólimde túsindiriletuǵın Jython hám Python veb-freymvorkleri hám server tárepindegi CGI skriptleri qosımsha paydalanıwshı interfeysi variantların usınadı.

Internet skriptleri
Python standart Internet modulleri menen birge keledi, bul Python programmalarına klient hám server rejimlerinde kóp túrli tarmaqlıq wazıypalardı orınlawǵa múmkinshilik beredi. Skriptler soketler arqalı baylanısa aladı; server tárepindegi CGI skriptlerine jiberilgen forma maǵlıwmatların alıp shıǵa aladı; FTP arqalı fayllar jibere aladı; XML faylların tallaw, payda etiw hám analiz qıla aladı; elektron pochtanı jiberiw, alıw, dúziw hám tallaw; URL-ler arqalı veb-betlerdi júklep alıw; júklep alınǵan veb-betlerdiń HTML hám XML-in tallaw; XML-RPC, SOAP hám Telnet arqalı baylanısıw; hám basqalar. Pythonnıń kitapxanaları bul tapsırmalardı ájaiyıp dárejede ápiwayılastıradı. Bunnan tısqarı, Python-da Internet programmalastırıw ushın úshinshi tárep qurallardıń úlken toplamı vebte bar. Mısalı, HTMLGen sisteması Python klassa tiykarlanǵan táriyiplerinen HTML faylların payda etedi, mod_python paketi Pythondı Apache veb-serverinde nátiyjeli isletedi hám óziniń Python Server Pages járdeminde server tárepindegi shablonlastırıwdı qollap-quwatlaydı, al Jython sisteması Python/Java integraciyasın hám klientlerde isleytuǵın server tárepindegi appletlerdi kodlastırıwdı qollap-quwatlaydı. Bunnan tısqarı, Django, TurboGears, web2py, Pylons, Zope hám WebWare sıyaqlı Python ushın tolıq web-rawajlandırıw freymvork paketleri Python menen tolıq funkcionallı hám óndiriske tayın veb-saytlardı tez qurıwdı qollap-quwatlaydı. Bulardıń kópshiligi tolıq hám kárxana dárejesindegi veb-rawajlandırıw sheshimlerin usınıw ushın obyekt-relyaciyalıq mapperleri, Model/View/Controller arxitekturası, server tárepindegi skriptlew hám shablonlastırıw hám AJAX qollap-quwatlaw sıyaqlı ózgesheliklerdi óz ishine aladı.

Komponent integraciyası
Biz komponent integraciyası rolin Python basqarıw tili sıpatında táriyiplegende aldın talqılaǵan edik. Pythonnıń C hám C++ sistemaları tárepinen keńeytiliw hám olarǵa kirgiziw qábileti onı basqa sistemalar hám komponentlerdiń háreketlerin skriptlew ushın iykemli baylanıstırıwshı til sıpatında paydalı etedi. Mısalı, C kitapxanasın Pythonǵa birlestiriw Pythonǵa kitapxana komponentlerin sınaw hám iske túsiriw múmkinshiligin beredi, al Pythondı ónim ishinde qollanıw tolıq ónimdi qayta kompilaciya qılmay-aq (yamasa onıń derek kodın hesh qanday jibermey-aq) ornında qáliplestiriwlerdi kodlastırıwǵa múmkinshilik beredi.

SWIG hám SIP sıyaqlı kod generatorları kompilaciya etilgen komponentlerdi skriptlerde paydalanıw ushın Pythonǵa baylanıstırıw ushın kerek bolǵan jumıstıń kóp bólegin avtomatlastra aladı, al Cython sisteması kodlawshılarǵa Python hám C tárizli kodtı aralastırıw múmkinshiligin beredi. Windows-taǵı Pythonnıń COM qollap-quwatlawı, Java tiykarlanǵan Jython ámelge asırılıwı, .NET tiykarlanǵan IronPython ámelge asırılıwı hám Python ushın hár qıylı CORBA qurallar toplamı sıyaqlı úlken freymvorkler komponentlerdi skriptlewdiń basqa usılların usınadı. Mısalı, Windows-ta Python skriptleri freymvorklardı qollanıp Word hám Excel programmaların skriptley aladı.

Maǵlıwmatlar bazası menen programmalastırıw
Dástúriy maǵlıwmatlar bazası talapları ushın, Pythonda barlıq keń qollanılatuǵın relyaciyalıq maǵlıwmatlar bazası sistemlerine - Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite hám basqalarǵa interfeysleri bar. Python dúnyası sonday-aq Python skriptlerinen SQL maǵlıwmatlar bazası sistemalarına kirisiw ushın kóshirmeli maǵlıwmatlar bazası API-sin belgiledi, ol hár qıylı tiykarǵı maǵlıwmatlar bazası sistemalarında birdey kórinedi. Mısalı, vendor interfeysleri kóshirmeli API-di ámelge asırǵanlıqtan, biypul MySQL sistemasında islew ushın jazılǵan skript basqa sistemalarda (mısalı, Oracle-de) kóp ózgerissiz isleydi; tek ǵana tiykarǵı vendor interfeysin almastırıw kerek boladı. Pythonnıń standart pickle moduli ápiwayı obyekt saqlanıwshılıq sistemasın usınadı - ol programmalarǵa tolıq Python obyektlerin fayllarda hám fayl tárizli obyektlerde ańsat saqlaw hám qayta tiklew múmkinshiligin beredi. Internette, siz sonday-aq Python skriptleri ushın tolıq obyektke baǵdarlanǵan maǵlıwmatlar bazası sistemasın usınatuǵın ZODB dep atalatıǵın ashıq kodlı úshinshi tárep sistemasın hám relyaciyalıq kestelewlerdi Pythonnıń klass modeline sáwlelendiretuǵın basqaların (mısalı, SQLObject hám SQLAlchemy) tabıwıńız múmkin. Bunnan tısqarı, Python 2.5 versiyasınan baslap, process ishindegi SQLite jaylastırılǵan SQL maǵlıwmatlar bazası dvigateli Pythonnıń óziniń standart bólegi bolıp tabıladı.

Tez prototiplestiriw
Python programaları ushın Python hám C tillerinde jazılǵan komponentler birdey kórinedi. Usıǵan baylanıslı, sistemalardı dáslepki Python tilinde prototiplewge, keyin bolsa tańlanǵan komponentlerdi C yamasa C++ sıyaqlı kompilyaciyalanatuǵın tilge kóshiriwge boladı. Geypara prototiplewshi qurallardan parqı, Python prototip bekkemlengennnen keyin tolıq qayta jazıwdı talap etpeydi. Sistemanıń C++ sıyaqlı tildiń nátiyjeligin talap etpeytuǵın bólimleri ańsat texnikalıq xızmet kórsetiw hám paydalanıw ushın Python tilinde kodlanǵan halda qalıwı múmkin.

Sanlı hám ilimiy programmalastırıw
Joqarıda aytıp ótilgen Python ushın NumPy sanlı programmalastırıw keńeytpesi massiv obyekti, standart matematikalıq kitapxanalarǵa interfeysleri hám basqa da kóplegen quramalı qurallardı óz ishine aladı. NumPy Pythondı kompilaciyalanǵan tilde tezlik ushın kodlanǵan sanlı proceduralar menen birlestiriw arqalı onı quramalı, biraq paydalanıwǵa ańsat sanlı programmalastırıw quralına aylandıradı, ol kóbinese FORTRAN yamasa C++ sıyaqlı dástúriy kompilaciyalanatuǵın tillerde jazılǵan bar kodtı almastıra aladı. Python ushın qosımsha sanlı qurallar animaciya, 3D vizualizaciya, parallel proceslerdi qayta islew hám basqalardı qollap-quwatlaydı. Mısalı, keń tarqalǵan SciPy hám ScientificPython keńeytpeleri ilimiy programmalastırıw qurallarınıń qosımsha kitapxanaların usınadı hám NumPy kodın qollanadı.

Oyınlar, súwretler, seriyalı portlar, XML, robotlar hám basqalar
Python bul jerde aytıp ótiliwi múmkin bolǵannan da kóbirek tarawlarda qollanıladı. Mısalı, siz tómendegilerdi isley alasız:

• Pygame sistemasın qollanıp Python tilinde oyın programmalastırıw hám multimedia
• PySerial keńeytpesi menen Windows, Linux hám basqa sistemalarda seriyalı port baylanısı
• PIL, PyOpenGL, Blender, Maya hám basqalar menen súwretti qayta islew
• PyRo qurallar toplamı menen robot basqarıw programmalastırıwı
• xml kitapxana paketi, xmlrpclib moduli hám úshinshi tárep keńeytpeleri menen XML tallaw
• Neyronnıń tor simulyatorları hám ekspert sistema qabıqları menen jasalma intellekt programmalastırıwı
• NLTK paketi menen tábiyǵıy tildi tallaw

Hátte PySol programması menen solitaire oyının oynawıńız múmkin. Bul sıyaqlı kóplegen tarawlar ushın qollap-quwatlawdı PyPI veb-saytlarınan hám veb-izlewler arqalı tabıwıńız múmkin (Google yamasa http://www.python.org saytınan siltemelerdi izleń).

Bul arnawlı tarawlardıń kópshiligi tiykarınan Pythonnıń komponentlerdi birlestiriw rolin ámelge asırıwdıń mısalları bolıp tabıladı. Onı C sıyaqlı kompilaciyalanatuǵın tilde jazılǵan komponentler kitapxanalarına aldıńǵı interfeys retinde qosıw, Pythondı hár qıylı tarawlarda skript jazıw ushın paydalı etedi. Integraciyaǵa qollaw kórsetiwshi ulıwma maqsetli til sıpatında Python keń qollanıladı.

Python qalay qollap-quwatlanadı?
Keń tarqalǵan ashıq kodlı sistema sıpatında, Python úlken hám aktiv rawajlanıw jámáátine iye, ol máselelerge juwap beredi hám kóplegen kommerciyalıq programma táreptarlawshıları tańqalarlıq (yamasa pútkilley hayranqalarlıq) tezlikte jaqsılanıwlardı islep shıǵadı. Python rawajlandırıwshıları jumıstı onlayn túrde derektlerdi basqarıw sisteması menen birge alıp baradı. Ózgerisler rásmiy PEP (Python Enhancement Proposal - Pythondı jaqsılaw usınısı) protokolın izleydi hám Pythonnıń keń regression testing sistemasına keńeytpeler menen birge bolıwı kerek. Haqıyqatında, búgingi kúnde Pythondı ózgertiw kommerciyalıq programmalıq támiynattı ózgertiwge jaqın - bul Pythonnıń dáslepki dáwirinen, yaǵnıy onıń dóretiwshisine xat jiberiw jetkilikli bolǵan waqıttan úlken parq qıladı, biraq házirgi úlken paydalanıwshılar bazasın esapqa alǵanda bul jaqsı.

PSF (Python Software Foundation), rásmiy kommerciyalıq emes topar, konferenciyalardı shólkemlestiredi hám intellektual múlk máseleleri menen shuǵıllanadı. Dúnya boyınsha kóplegen Python konferenciyaları ótkiziledi; O'Reilly shólkemlestirgen OSCON hám PSF shólkemlestirgen PyCon eń úlkenleri bolıp esaplanadı. Bulardıń birinshisi bir neshe ashıq kodlı joybarlardı qamtıydı, al ekinshisi tek ǵana Pythonǵa arnalǵan waqıya bolıp, sońǵı jıllarda kúshli ósimdi basınan keshirmekte. 2008-jılǵı PyConǵa qatnasıwshılar sanı aldıńǵı jılǵa salıstırǵanda derlik eki ese kóbeydi, 2007-jıldaǵı 586 qatnasıwshıdan 2008-jılı 1000-nan aslamǵa jetti. Bul 2007-jılı 2006-jılǵı 410-nan 40% óskeninen keyingi kórsetkish edi. 2009-jılǵı PyCon 943 qatnasıwshını jıynadı, bul 2008-jılǵa salıstırǵanda azǵana kemeyiw bolsa da, global ekonomikalıq qıyınshılıq dáwirinde júdá jaqsı nátiyje boldı.

Pythonnıń texnikalıq artıqmashılıqları qanday?

Tábiyiy, bul programma islep shıǵıwshınıń sorawı. Eger sizde aldınnan programmalastırıw tájiriybesi bolmasa, kelesi bólimlerdiń tili azǵana túsiniksiz bolıwı múmkin - qáweterlenbeń, biz bul kitaptı dawam etip bul terminlerdiń hámmesin tolıǵıraq úyrenemiz. Biraq, programma islep shıǵıwshılar ushın, mine Pythonnıń ayırım joqarı texnikalıq ózgesheliklerine qısqasha kirisiw.

Ol obyektke baǵdarlanǵan

Python tiykarınan obyektke baǵdarlanǵan til. Onıń klass modeli polimorfizm, operatorlardı qayta júklew hám kóp múyeshli miyras alıw sıyaqlı quramalı túsiniklerdi qollap-quwatlaydı; sonday-aq, Pythonnıń ápiwayı sintaksisi hám tiplerdi anıqlaw kontekstinde, OBP (obyektke baǵdarlanǵan programmalastırıw) tańqalarlıq dárejede qollanıwǵa ańsat. Haqıyqatında, eger siz bul terminlerdi túsinbeseńiz, olardı Python járdeminde úyreniw basqa qálegen OBP tiline salıstırǵanda ádewir ańsat ekenin kóresiz.

Kúshli kodtı strukturalaw hám qayta paydalanıw qurılması sıpatında xızmet etiwden tısqarı, Pythonnıń OBP tábiyatı onı C++ hám Java sıyaqlı obyektke baǵdarlanǵan sistemalı tiller ushın skript qurılması sıpatında ideal etedi. Mısalı, sáykes baylanıstırıwshı kod penen, Python programmaları C++, Java hám C# te ámelge asırılǵan klasslardı subklass (arnawlı) qılıwı múmkin.

Birdey áhmiyetke iye bolǵan nárse, OBP Pythonda qosımsha variant; siz birden obyekt gurusı bolıwǵa májbúr bolmastan-aq kóp nársege erisiwiń'iz múmkin. C++ sıyaqlı, Python proceduralıq hám obyektke baǵdarlanǵan programmalastırıw rejimlerin qollap-quwatlaydı. Onıń obyektke baǵdarlanǵan qurılmaları, eger sharayat ruqsat etse, qollanılıwı múmkin. Bul ásirese, dizayn basqıshların alıp taslaytuǵın taktikalıq rawajlanıw rejimlerinde ayqın paydalı.

Ol biypul

Python tolıǵı menen biypul paydalanıw hám tarqatıw ushın. Tcl, Perl, Linux hám Apache sıyaqlı basqa ashıq derektegi programmalıq támiyinlew sıyaqlı, siz Python sistemasınıń pútkil derektegi kodın Internetten biypul alıwıńız múmkin. Onı kóshirip alıwǵa, sistemalarıńızǵa jaylastırıwǵa yamasa ónimleriń menen birge jiberiw boyınsha hesh qanday sheklewler joq. Haqıyqatında, eger qáleseńiz, Python derek kodın satıwıńız da múmkin.

Biraq nadurıs túsinik payda bolmasın: " biypul " degen "qollap-quwatlanbaytuǵın" degendi ańlatpaydı. Kerisinshe, Python onlayn jámiyeti paydalanıwshılardıń sorawlarına kópshilik kommerciyalıq programmalıq támiyinlew járdem xızmetleri úlgi alıwǵa háreket etiwi kerek bolǵan tezlik penen juwap beredi. Bunnan tısqarı, Python tolıq derektegi kod penen birge kelgenligi sebepli, ol rawajlandırıwshılardı kúsheytedi, úlken ámelge asırıw ekspertleri toparınıń payda bolıwına alıp keledi. Programmalastırıw tiliniń ámelge asırılıwın úyreniw yamasa ózgertiw hámmeniń kewline jaqpaǵan menen, kerek bolǵanda bunı isley alıwıńızdı biliw júdá qolaylı. Siz kommerciyalıq vendardiń qálew-qálemewine ǵárezli emessiz; eń jaqsı hújjetlestiriw deregi siziń qolıńızda.

Aldın aytıp ótilgenindey, Python rawajlandırıwı tiykarınan óz háreketlerin Internet arqalı muwapıqlastıratuǵın jámiyet tárepinen ámelge asırıladı. Ol Pythonnıń jaratıwshısı - Guido van Rossum, rásmiy tayınlaǵan Python ushın Ómirlik Miyrimli Diktator (BDFL) hám mıńlaǵan qollap-quwatlawshılardan ibarat. Tilge ózgerisler kirgiziwde rásmiy jaqsılaw procedurasın orınlaw hám basqa rawajlandırıwshılar hám BDFL tárepinen tekseriliwi shárt. Quwanıshlısı, bul Pythondı basqa tillerge salıstırǵanda ózgerislerge kóbirek konservativ qaraytuǵın etedi.

Ol kóshirmeli

Pythonnıń standart ámelge asırılıwı kóshirmeli ANSI C tilinde jazılǵan hám házirgi waqıtta qollanılıp atırǵan derlik barlıq tiykarǵı platformalarda kompilaciya qılınadı hám iske túsedi. Mısalı, Python programmaları búgin PDA-lardan baslap superkompyuterlerge shekem barlıq nársede jumıs isleydi. Tómendegiler Python qollanılatuǵın platformalardıń tek bir bólimi:

• Linux hám Unix sistemaları
• Microsoft Windows hám DOS (barlıq házirgi versiyaları)
• Mac OS (OS X hám Classic ekewi de)
• BeOS, OS/2, VMS hám QNX
• VxWorks sıyaqlı real waqıt sistemaları
• Cray superkompyuterleri hám IBM úlken EEM-leri
• Palm OS, PocketPC hám Linux-ta isleytuǵın PDA-lar
• Symbian OS hám Windows Mobile-de isleytuǵın uyalı telefonlar
• Oyın pristavkaları hám iPod-lar
• Hám basqalar

Til interpretatorınıń ózi sıyaqlı, Python menen birge jiberiletuǵın standart kitapxana modulleri de platformalar arasında múmkin bolǵanınsha kóshirmeli bolıwı ushın ámelge asırılǵan. Bunnan tısqarı, Python programmaları avtomatik túrde kóshirmeli bayt-kodqa kompilaciya qılınadı, ol Python-nıń úylesimlі versiyası ornatılǵan qálegen platformada birdey isleydi (bul haqqında keyingi bapda kóbirek aytıladı).

Bunıń mánisi, tiykarǵı til hám standart kitapxanalardı qollanıwshı Python programmaları Linux, Windows hám Python interpretatorı bar basqa kóp sistemalarda birdey isleydi. Pythonnıń kóp portları platforma-specifikalıq keńeytiwlerdi de óz ishine aladı (mısalı, Windows-ta COM qollawı), biraq Pythonnıń tiykarǵı tili hám kitapxanaları hámme jerde birdey isleydi. Aldın aytılǵanınday, Python sonday-aq tkinter (2.6-versiyada Tkinter) dep atalatıǵın Tk GUI qurallar toplamına interfeysti óz ishine aladı, bul Python programalarına programma ózgerislerisiz barlıq tiykarǵı GUI platformalarında isleytuǵın tolıq funkcionallı grafikalıq paydalanıwshı interfeyslerin ámelge asırıw imkaniyatın beredi.

Ol kúshli

Funkciyalar kóz-qarasınan Python gibrid bolıp esaplanadı. Onıń qurallar toplamı onı dástúriy skript tilleri (Tcl, Scheme hám Perl sıyaqlı) menen sistemalı rawajlandırıw tilleri (C, C++ hám Java sıyaqlı) arasına jaylastıradı. Python skript tiliniń barlıq ápiwayılıǵı hám qolaylılıǵın, sonday-aq ádette kompilyaciya qılınatuǵın tillerde ushırasatuǵın quramalıraq programmalıq-injenerlik qurallardı usınadı. Geybir skript tillerinen parıqlı, bul kombinaciya Pythondı úlken kólemli rawajlandırıw proektleri ushın paydalı qıladı. Aldınnan kóriw sıpatında, tómende Python qurallar qutısında tabatuǵın tiykarǵı nárselerdiń ayırımları keltirilgen:

Dinamikalıq tiplerdi anıqlaw
Python programmańız qollanǵan obyektlerdiń túrlerin ol islegende qadaǵalap baradı; ol kodıńızda quramalı tip hám ólshem deklaraciyaların talap etpeydi. Shınında da, 6-bapta kóretuǵınıńızday, Pythonda hesh qanday tip yamasa ózgeriwshi deklaraciyası joq. Python kodı derekler tiplerin sheklemegenlikten, ol ádette avtomatik túrde obyektlerdiń pútkil diapazonına qollanıla aladı.

Avtomatik yad basqarıwı
Python obyektlerdi avtomatik túrde ajıratadı hám olar artıq paydalanılmaǵanda olardı qayta qabıl etedi ("garbage collects"), kópshiligi talap boyınsha ósip hám kishireyip aladı. Úyrengenińizdey, Python tómengi dárejeli yad detalların qadaǵalap baradı, solay etip sizge bunı islew kerek emes.

Úlken kólemli programmalastırıwdı qollaw
Úlkenrek sistemalardı qurıw ushın Python moduller, klasslar hám ayrıqshalıqlar sıyaqlı qurallar menen támiyinleydi. Bul qurallar sistemalardı komponentlerge shólkemlestiriw, kodtı qayta paydalanıw hám sazlaw ushın OBP-nı qollanıw, waqıyalar hám qátelerdi abaylı basqarıw imkániyatın beredi.

Ornatılǵan obyekt tipleri
Python dizimler, sózlikler hám qatarlar sıyaqlı jiyi qollanılatuǵın maǵlıwmatlar strukturaların tildiń ajıralmas bólegi sıpatında usınadı; kóretuǵınıńızday, olar hám iykemlі, hám paydalanıwǵa ańsat. Mısalı, ornatılǵan obyektler talap boyınsha ósip hám kishireyip aladı, quramalı informacıyanı kórsetiw ushın qálegen tártipte jaylastırılıp barıwı múmkin hám taǵı basqalar.

Ornatılǵan qurallar
Barlıq usı obyekt tiplerin qayta islew ushın Python kúshli hám standart operaciyalar menen birge keledi, olarǵa biriktiriw (toplamlar qosıw), kesip alıw (bólimlerdi shıǵarıp alıw), sortlaw, kartalaw hám basqalar kiredi.

Kitapxana utilitaları
Arnawlı tapsırmalardı orınlaw ushın Python, sonday-aq, turaqlı ańlatpalardı sáykeslestiriwden baslap paydalanıwǵa shekem barlıq nárseni qollaytuǵın aldın ala kodlanǵan kitapxana qurallarınıń úlken toplamı menen birge keledi. Tildiń ózin úyrengenińizden keyin, Pythonnıń kitapxana quralları qollanba dárejesindegi kóp háreketler júz beretuǵın jer bolıp tabıladı.

Úshinshi táreptiń utilitaları
Python ashıq kodlı bolǵanlıqtan, rawajlandırıwshılar onıń ornatılǵan quralları qollamaytuǵın tapsırmalardı qollaytuǵın aldın ala kodlanǵan qurallar usınıwǵa xoshametlenedi; internette siz COM, súwret islew, CORBA ORB-ları, XML, maǵlıwmatlar bazasına kirisiw hám basqa kóp nárseler ushın biypul qollap-quwatlaw taba alasız.

Pythondaǵı qurallar jıyındısına qaramastan, ol óziniń ádewir ápiwayı sintaksis hám dizaynın saqlap qaladı. Nátiyje - skript tiliniń barlıq qolaylılıǵına iye bolǵan qúdiretli programmalastırıw quralı.

Ol aralastırıwǵa boladı
Python programmaları basqa tillerde jazılǵan komponentler menen hár túrli usıllar arqalı ańsat "jelimleniwi" múmkin. Mısalı, Pythonnıń C API-i C programmaların Python programmaları menen ıqtıyarlı túrde baylanıstırıwǵa múmkinshilik beredi. Bul sizge kerek bolǵanda Python sistemasına funkcionalıqlardı qosıwǵa hám Python programmaların basqa ortalıqlarda yamasa sistemalarda paydalanıwǵa imkániyat beredi.

Pythondı C yamasa C++ sıyaqlı tillerde kodlanǵan kitapxanalar menen aralastırıw, mısalı, onı qollanıwǵa qolaylı aldıńǵı qatar til hám sáykeslestiriw quralı etedi. Aldın aytıp ótilgendey, bul sonday-aq Pythondı tez prototiplewge jaqsı etedi; sistemalar dáslepki Python tilinde ámelge asırılıwı múmkin, onıń rawajlanıw tezligin paydalanıw ushın, hám keyinirek iskerlik talaplarına qaray bir bólegi C tiline kóshiriliwi múmkin.

Ol qollanıwǵa ańsat
Python programmasın iske túsiriw ushın, onı tek jazıp, iske túsirsek boladı. C yamasa C++ sıyaqlı tillerdegi sıyaqlı aralıq kompilaciya hám baylanıstırıw basqıshları joq. Python programmalardı birden iske túsiredi, bul interaktiv programmalastırıw tájiriybesi hám programma ózgerislerinen keyingi tez qayta islewdi támiyinleydi - kóp jaǵdaylarda, programma ózgerisiniń tásirin jazıp úlgergenińizshe kóre alasız.

Álbette, rawajlanıw cikliniń tez aylanıwı - Pythonnıń qollanıwǵa ańsatlıǵınıń tek bir tárepi. Ol sonday-aq aldınnan ápiwayı sintaksis hám kúshli ornatılǵan qurallar usınadı. Haqıyqatında, ayırımlar Pythondı "orınlanatuǵın psevdokod" dep atawǵa barǵan. Ol basqa qurallardaǵı quramalılıqtıń kóp bólegin saplastırǵanlıqtan, Python programmaları C, C++ hám Java sıyaqlı tillerdegi uqsas programmalarǵa qaraǵanda ápiwayıraq, kishirek hám kóbirek ıqshamlı.

Ol úyreniw ushın ańsat
Bul bizdi usı kitaptıń tiykarǵı noqatına alıp keledi: basqa programmalastırıw tillerine salıstırǵanda, tiykarǵı Python tili ájayıp dárejede úyreniw ushın ańsat. Haqıyqatında, bir neshe kún ishinde (yamasa eger siz tájiriybeli baǵdarlamashı bolsańız, bir neshe saat ishinde) áhmiyetli Python programmaların jazıwdı baslawdı kútiwińizge boladı. Bul jumısta qollanıw ushın tildi úyreniwge umtılǵan kásiplik baǵdarlamashılar ushın, sonday-aq sazlaw yamasa basqarıw ushın Python qatlamın ashıp beretuǵın sistemalardıń aqırǵı paydalanıwshıları ushın jaqsı jańalıq. Búginde kóp sistemalar aqırǵı paydalanıwshılardıń Python sazlawlarınıń kodın ornında, az yamasa hesh qanday qollap-quwatlawsız tez úyrenip alıwına súyenedi. Python joqarı dárejeli programmalastırıw qurallarına iye bolsa da, onıń tiykarǵı tili ele de baslawshılar hám tájiriybeli qánigeler ushın ápiwayı bolıp kórinedi.

Ol Monty Python atına qoyılǵan
Yaqshı, bul texnikalıq artıqmashlıq emes, biraq men aldın ala ashıp beriwdi qáleytuǵın tańqalarlıq jaqsı saqlanǵan sır bolıp kórinedi. Python dúnyasındaǵı barlıq jerbawırlap júriwshi belgishelerine qaramastan, haqıyqatında Python avtorı Guido van Rossum onı BBC-niń "Monty Pythońs Flying Circus" atlı kúlkili serialı atına qoyǵan. Ol, kóp programma islep shıǵarıwshılar sıyaqlı, Monty Pythonnıń úlken ıqlasbenti (haqıyqatında, eki taraw arasında derlik simmetriya bar sıyaqlı). Bul miyras sózsiz Python kod mısallarına kúlkili sıpat qosadı. Mısalı, ulıwma ózgeriwshi atları ushın dástúrli "foo" hám "bar" Python dúnyasında "spam" hám "eggs" bolıp ózgeredi. Tosın ushırasatuǵın "Brian", "ni" hám "shrubbery" de usı attas serialǵa baylanıslı payda bolǵan. Hátte bul Python jámáátshiligine de tásir etedi: Python konferenciyalarındaǵı bayanatlar kóbinese "Ispan inkiviziciyası" dep ataladı. Álbette, bulardıń barlıǵı, eger siz kórsetiwdi bilseńiz júdá kúlkili, biraq bilmeseńiz aytarlıqtay emes. Python mısalların túsiniw ushın (usı kitapta kóretuǵın kóp mısallardı qosıp) serialdı biliw shárt emes, biraq endi aqırı olardıń negizin bilesiz.

Python X tiline salıstırǵanda qanday?
Aqırında, siz álle qashan biletuǵın nárseler kontekstinde ornalastırıw ushın, adamlar geyde Pythondı Perl, Tcl hám Java sıyaqlı tillerge salıstıradı. Biz aldın ala ónimdarlıq haqqında sóylestik, sonlıqtan bul jerde funkcionallıqqa itibar qaratamız. Basqa tillerdi de biliw hám qollanıw paydalı bolsa da, kóp adamlar Python haqqında tómendegilerdi aytadı:

• Tcl-ǵa qaraǵanda kúshlirek. Pythonnıń "úlken kólemde programmalastırıwdı" qollawı onı iri sistemalardı islep shıǵıwǵa qollanıwǵa múmkinshilik beredi.
• Perl-ǵa qaraǵanda tazaraq sintaksis hám ápiwayıraq dizaynǵa iye, bul onı oqıwǵa hám saqlawǵa qolaylıraq etedi hám programma qáteliklerin azaytıwǵa járdem beredi.
• Java-ǵa qaraǵanda ápiwayıraq hám qollanıwǵa qolaylıraq. Python - skript tili, al Java C++ sıyaqlı sistema tilleriniń kóp quramalılıǵı hám sintaksisin miyras etip alǵan.
• C++-qa qaraǵanda ápiwayıraq hám qollanıwǵa qolaylıraq, biraq ol kóbinese C++ penen jarıspaydı; skript tili sıpatında Python ádette basqa wazıypalardı atqaradı.
• Visual Basic-ke qaraǵanda kúshlirek hám kóbirek platforma aralıq. Onıń ashıq derek kodlı tábiyatı onıń bir kompaniya tárepinen basqarılmaytuǵının ańlatadı.
• PHP-ǵa qaraǵanda oqıwǵa qolaylıraq hám kóbirek universal. Python geyde veb-saytlar jaratıw ushın qollanıladı, biraq ol robotexnikadan baslap kino animaciyasına shekem derlik barlıq basqa kompyuter tarawlarında keń qollanıladı.
• Ruby-ǵa qaraǵanda jetilisken hám oqıwǵa qolaylıraq sintaksiske iye. Ruby hám Java-dan parqlı, OBP Pythonda qosımsha opciya - Python OBP-nı qollanıwshılarǵa yamasa oǵan qollanılmaytuǵın proektlerge májbúrlemeydi.
• SmallTalk hám Lisp sıyaqlı tillerdegi dinamikalıq xarakterge iye, biraq sonıń menen birge ápiwayı, dástúrli sintaksiske iye bolıp, ol islep shıǵıwshılarǵa da, sáykeslestiriletuǵın sistemalardıń aqırǵı paydalanıwshılarına da qolaylı.

Ásіrese, tek ǵana tekst faylların skanerlewden kóbirek isleytuǵın hám keleshekte basqalar (yamasa ózińiz!) tárepinen oqılıwı múmkin bolǵan programmalar ushın, kóp adamlar Pythonnıń házirgi kúnde bar bolǵan basqa hár qanday skript yamasa programmalastırıw tiline qaraǵanda jaqsıraq sáykes keletuǵının aytadı. Bunnan tısqarı, eger siziń qollanbańız eń joqarı ónimdarlıqtı talap etpese, Python kóbinese C, C++ hám Java sıyaqlı sistema islep shıǵıw tillerine qolaylı alternativa bolıp tabıladı: Python kodın jazıw, qáteliklerdi saplastırıw hám saqlaw ádewir ańsat boladı.

Álbette, siziń avtorıńız 1992-jıldan beri Python evangelisti bolıp kelgen, sonlıqtan bul pikirlerdi óz qálewińizshe qabıl etiń. Degen menen, bul pikirler Pythonnıń nelerge uqıplı ekenin izertlew ushın waqıt ajıratqan kóp baǵdarlamashılardıń ulıwma tájiriybesi bolıp tabıladı.

Bólim juwmaǵı

Usınıń menen kitaptıń maqtaw bólimi juwmaqlanadı. Bul bólimde bizler adamlardıń óz programmalastırıw wazıypalarına nege Pythondı tańlaytuǵının túsindiriwshi sebeplerdiń bir neshewin izertledik. Sonday-aq, onıń qollanılıwın hám házirgi kúnde onı kim qollanıp atırǵanınıń wákillik úlgilerin kórip shıqtıq. Biraq meniń maqsetim - Pythondı úyretiw, onı satıw emes. Tildi bahalawdıń eń jaqsı jolı - onı is júzinde kóriw, sonlıqtan bul kitaptıń qalǵan bólimi pútkilley usı jerde atap ótken til detallarına arnalǵan.

Keyingi eki bólim tilge texnikalıq kirisiw retinde xızmet etedi. Olarda biz Python programmaların iske túsiriw usılların úyrenemiz, Pythonnıń bayt-kod orınlaw modeline kóz júgirtemiz hám kodtı saqlaw ushın modul fayllarınıń tiykarların úyrenemiz. Maqset - sizge kitaptıń qalǵan bólimindegi mısallardı hám shınıǵıwlardı orınlaw ushın jetkilikli maǵlıwmat beriw boladı. Siz 4-bólimge shekemgi haqıyqıy programmalastırıwdı baslamaysız, biraq dawam etiwden aldın iske túsiriw detalların jaqsı túsinip alıwıńız kerek.

Bilimińizdi tekseriń: Test

Kitaptıń bul basılımında hár bir bólimdi sonda berilgen materiallardı tez tekseriw testleri menen juwmaqlap baramız. Bul testler tiykarǵı túsiniklerdi qayta kórip shıǵıwǵa járdem beredi. Testlerdiń juwapları sorawlardan keyin beriledі, hám ózińiz sorawlarǵa juwap bergennen soń juwaplardı oqıwıńız usınıs etiledi. Bólim aqırındaǵı testlerden tısqarı, kitaptıń hár bir bóliminiń aqırında Python kodın óz betińizshe jazıwdı baslawǵa járdem beretuǵın laboratoriya shınıǵıwların tabasız. Házir bolsa, siziń birinshi testińiz. Sátli bolsın!

1. Adamlardıń Pythondı tańlaw ushın altı tiykarǵı sebepleri qaysılar?

2. Búgin Pythondı qollanıp atırǵan tórt belgili kompaniya yamasa shólkemdi atań.

3. Ne ushın qollanbańızda Pythondı qollanıwdı qálemewińiz múmkin?

4. Python járdeminde neler isley alasız?

5. Pythondaǵı "import this" buyrıǵınıń áhmiyeti nede?

6. Ne ushın "spam" sózi kitaplarda hám internette kóp Python mısallarında ushırasadı?

7. Siziń unamlı reńińiz qaysı?

Bilimińizdi tekseriw: Juwaplar

Qalay boldı? Mine, men usınǵan juwaplar, biraq ayırım test sorawlarına bir neshe juwap bolıwı múmkin. Jáne de, eger sorawǵa durıs juwap bergenińizge isenimli bolsańız da, qosımsha kontekst ushın usı juwaplardı kórip shıǵıwıńızdı usınıs etemen. Eger usı juwaplardıń qaysı biri túsinikli bolmasa, tolıǵıraq maǵlıwmat ushın bólimniń tekstine qarap shıǵıń.

1. Baǵdarlama sapalılıǵı, rawajlandırıwshı ónimdarlıǵı, programmanıń kóshirmeligі, qollap-quwatlaw kitapxanaları, komponentlerdi birlestiriw hám ápiwayı zawıq alıw. Bulardan, sapalılıq hám ónimdarlıq teması adamlardıń Pythondı tańlawınıń tiykarǵı sebepleri bolıp kórinedi.

2. Google, Industrial Light & Magic, EVE Online, Jet Propulsion Labs, Maya, ESRI hám basqalar da kóp. Derlik baǵdarlama islep shıǵarıw menen shuǵıllanıwshı hár bir shólkem Pythondı qanday da bir túrde qollanadı, ol uzaq múddetli strategiyalıq ónim rawajlandırıw ushın bolsın yamasa sınaw hám sistemanı basqarıw sıyaqlı qısqa múddetli taktikalıq wazıypalar ushın bolsın.

3. Pythonnıń kemshiligi - onıń iskerlik kórsetkishi: ol C hám C++ sıyaqlı tolıq kompilyaciya etilgen tillerge salıstırǵanda tezlik penen islemeydi. Biraq, kóp qollanbalardıń kópshiligi ushın jetkilikli dárejede tez, hám ádettegi Python kodı interpretatorǵa baylanısqan C kodın shaqırǵanlıǵı sebepli, C tezligine jaqın isleydi. Eger tezlik áhmiyetli bolsa, qollanbanıń sanlar menen isleytuǵın bólimleri ushın kompilyaciya etilgen keńeytiwler bar.

4. Python járdeminde kompyuter menen islew múmkin bolǵan derlik hár qanday nárseni isley alasız, veb-sayt rawajlandırıwdan baslap oyınlar, robototexnika hám kosmoslıq apparat basqarıwına shekem.

5. import this Python ishindegi Easter egg-ti iske túsiredi, ol tildiń tiykarında jatqan dizayn filosofiyasın kórsetedi. Bul buyrıqtı qalay orınlaw haqqında kelesi bólimde úyrenesiz.

6. "Spam" - bul ataqlı Monty Python sketchine silteme, onda asxanada awqat buyırtpashı bolǵan adamlardı spam haqqında qosıq aytıp atırǵan vikinglerdiń xorı basıp ketedi. Awa, sonıń menen birge, bul Python skriptlerinde jiyі qollanılatuǵın ózgeriwshi atı...

7. Kók. Yaq, sarı!

Python - bul injeneriya, suwretlew óneri emes

Python 1990-jıllardıń basında programmalıq támiyinlew maydanında payda bolǵanda, onıń qollap-quwatlawshıları menen basqa bir keń tarqalǵan skript tili Perl-diń qollap-quwatlawshıları arasında házir klassikalıq qarsılıqqa aylanǵan dawǵa sebep boldı. Meniń pikirimshe, bul talqılaw búgin eskirgen hám tiykarı joq - baǵdarlamashılar óz juwmaqların shıǵarıw ushın jetkilikli aqıllı. Degen menen, bul oqıtıw barısında mennen eń kóp soralatuǵın temalardıń biri, sonlıqtan bul haqqında bul jerde bir neshe sóz aytıw orınlı bolıp kórinedi.

Qısqasha aytqanda: Perl-de islew múmkin bolǵan hámmeni Pythonda da islew múmkin, biraq Pythonda kodıńızdı jazǵannan keyin oqıy alasız. Mine, usı - olardıń qollanıw tarawları kóp jaqtan bir-birine uqsas, biraq Python oqıwǵa qolaylı kod jaratıwǵa kóbirek itibar qaratadı. Kóp adamlar ushın Pythonnıń joqarı oqıwǵa qolaylılıǵı kodtıń qayta qollanılıwı hám xızmet kórsetiwge qolaylılıǵın jaqsılaydı, bul Pythondı bir ret jazılıp, keyin taslanbaytuǵın programmalardı jazıw ushın jaqsıraq tańlaw etedi. Perl kodın jazıw ańsat, biraq oqıw qıyın. Kóp programmalıq támiynlewlerdiń xızmet múddeti olardıń dáslepki jaratılıwınan hálsiz uzaq bolǵanlıqtan, kópshilik Pythondı nátiyjeli qural dep esaplaydı.

Uzınıraq túsindirme eki tildiń dizaynerleriniń tájiriybelerin sáwlelendiredi hám adamlardıń Pythondı qollanıwdı tańlaw sebeplerin atap ótedi. Pythonnıń jaratıwshısı matematika boyınsha tálim alǵan; sonlıqtan ol joqarı dárejeli birdeyligi bar til jaratqan - onıń sintaksisi hám quralları ájayıp dárejede izbe-iz. Bunnan tısqarı, matematika sıyaqlı, Pythonnıń dizaynı ortogonal - tildiń kóp bólegi kishkene topardaǵı tiykarǵı túsiniklerden kelip shıǵadı. Mısalı, bir adam Pythondaǵı polimorfizm túrin túsingennen keyin, qalǵanı kóbinese tek detallar bolıp qaladı.

Buǵan qarama-qarsı, Perl tiliniń jaratıwshısı - tilshi, hám onıń dizaynı usı miyrastı sáwlelendiredi. Perl-de bir tapsırmanı orınlaw ushın kóp usıllar bar, hám til qurılısları kontekstke baylanıslı hám geyde júdá názik usıllar menen óz-ara tásirlesedi - dál tábiyǵıy til sıyaqlı. Perl-diń belgili uranında aytılǵanınday, "Bunı islewdiń bir neshe usılı bar". Usı dizaynǵa tiykarlanıp, Perl tili de, onıń paydalanıwshılar jámiyeti de tariyxıy jaqtan kod jazıwda óz-ózin erkin bildiriwdi maqul kórgen.

Bir adamnıń Perl kodı ekinshisiniń kodınan túp-tiykarınan parıq qılıwı múmkin. Haqıyqatında, ózgeshe, quramalı kod jazıw kóbinese Perl paydalanıwshıları arasında maqtanısh deregi bolıp esaplanadı.

Biraq, ádewir kod saqlaw jumısın islegen hár kim tastıyıqlay alatuǵınday, óz-ózin erkin bildiriw óner ushın jaqsı, biraq injeneriya ushın jaman. Injeneriyada bizge minimal funkciyalar toplamı hám boljamlılıq kerek. Injeneriyada óz-ózin erkin bildiriw texnikalıq xızmet kórsetiw qıyınshılıqlarına alıp keliwi múmkin. Bir neshe Perl paydalanıwshısı maǵan aytqanınday, hadden tıs erkinliktiń nátiyjesinde kópshilik jaǵdaylarda kodtı ózgertiw ornına bastan jazıw ańsatıraq boladı.

Mınanı oylap kóriń: adamlar súwret yamasa músin jaratqanda, olar bunı tek ózleri ushın, taza estetikalıq maqsetlerde isleydi. Keyinirek basqa birewdiń bul súwretti yamasa músindi ózgertiwi múmkinligi olardıń oyına da kelmeydi. Bul óner menen injeneriya arasındaǵı principial ayırmashılıq. Adamlar baǵdarlamanı jazǵanda, olar onı ózleri ushın jazbaydı. Haqıyqatında, olar hátte tiykarınan kompyuter ushın da jazbaydı. Kerisinshe, jaqsı baǵdarlamashılar kodtıń keyingi onı saqlaw yamasa qayta paydalanıw ushın oqıwı kerek bolǵan adam ushın jazılatuǵının biledı. Eger sol adam kodtı túsine almasa, bul haqıyqıy rawajlanıw scenariyinde derlik paydasız boladı.

Kóp adamlar Pythonnıń ózin Perl sıyaqlı skript tillerinen eń anıq parıqlaytuǵın jeri usı. Pythonnıń sintaksis modeli paydalanıwshılardı derlik oqıwǵa qolaylı kod jazıwǵa májbúrleytuǵını sebepli, Python baǵdarlamaları tolıq baǵdarlama rawajlanıw cikline tikkeley kóbirek ılayıqlı. Hám Python sheklengen tásirlesiwler, kod birkelkiligi hám tártipliligi hám funkciyalar izbe-izligi sıyaqlı ideyalarǵa pát beretuǵını sebepli, ol birinshi ret jazılǵannan keyin uzaq waqıt paydalanıla alatuǵın kodtı tikkeley qollap-quwatlawǵa járdem beredi. Uzaq múddette, Pythonnıń kod sapasına itibarı baǵdarlamashı ónimdarlıǵın, sonday-aq baǵdarlamashı qanaatlanıwın arttıradı.

Álbette, Python programmashıları da dóretiwshi bola aladı, hám kórip turǵanımızday, til ayırım wazıypalar ushın bir neshe sheshimlerdi usınadı. Biraq, óziniń tiykarında Python basqa skript tilleri kóbinese islemeytuǵın usıllar menen jaqsı injeneriyalıq sheshimlerdi qollap-quwatlawǵa umtıladı. Hesh bolmaǵanda, Pythondı qabıl etken kóp adamlar arasındaǵı ulıwma pikir usınday. Álbette, siz bunday pikirlerdi Pythonnıń nelerdi usına alatuǵının úyrenip, ózińiz bahalawıńız kerek. Sizge baslaw ushın járdem beriw ushın kelesi bapqa ótemiz.


Paydalanılǵan ádebiyat:
Learning Python, Fourth Edition by Mark Lutz PART I
Getting Started