Python (programmalastırıw tili)

**Python** — bul joqarı dárejeli, ulıwma maqsetli programmalastırıw tili. Onıń dizayn filosofiyası áhmiyetli sheginiwdi paydalanıw arqalı kodtıń oqılıwın ańsatlastırıwǵa ayrıqsha itibar beredi.

Python dinamikalıq túrde tiplestiriledi hám shıǵındı jıynaladı. Ol bir neshe programmalastırıw paradigmaların, sonıń ishinde strukturalıq (ásirese proceduralıq), obyektke baǵdarlanǵan hám funkcional programmalastırıwdı qollap-quwatlaydı.

Gvido van Rossum Python ústindegi jumıstı 1980-jıllardıń aqırında ABC programmalastırıw tiliniń miyrasxorı retinde basladı. 2008-jılı shıǵarılǵan Python 3.0 úlken qayta islew bolıp, aldıńǵı versiyalar menen tolıq keri sáykes kelmeytuǵın edi. Python 3.12 sıyaqlı sońǵı versiyalar tiplestiriw ushın imkaniyatlar hám gilt sózler qostı (hám basqalar; mısalı, tezlikti arttırıw); (qosımsha) statikalıq tiplestiriwge járdem beredi. Házirgi waqıtta tek 3.x seriyasındaǵı versiyalar qollap-quwatlanadı.

Python turaqlı túrde eń ataqlı programmalastırıw tilleriniń biri retinde orın aladı hám ol mashinalıq oqıtıw birlespesinde keń qollanıwǵa iye boldı. Ol kirisiw programmalastırıw tili retinde keń oqıtıladı.

## Tariyxı

Python 1980-jıllardıń aqırında Niderlandiyadaǵı Matematika hám Informatika Orayında (CWI) Gvido van Rossum tárepinen oylap tabılǵan. Ol SETL tilinen ilhamlanǵan, ayrıqsha jaǵdaylardı qayta islewge hám Amoeba operaciyalıq sisteması menen baylanısıwǵa uqıplı bolǵan ABC programmalastırıw tiliniń miyrasxorı retinde proektlestirilgen. Python implementaciyası 1989-jıl dekabrde baslandı. Van Rossum onı birinshi ret 1991-jılı Python 0.9.0 retinde shıǵardı. Van Rossum 2018-jıl 12-iyulge shekem jetekshi baǵdarlamashı retinde proekt ushın jalǵız juwapkerlikti óz moynına aldı, sol kúni ol Pythonnıń «ómirlik miyrimli diktatorı» (BDFL) retindegi minnetlerin toqtatıp, «turaqlı demalısqa» shıǵatuǵının járiyaladı; bul ataq oǵan Python jámiyetshiligi tárepinen proekttiń bas sheshim qabıllawshısı retindegi uzaq múddetli minnetlemesin sáwlelendiriw ushın berilgen edi. (Ol sonnan berli pensiyadan qayttı hám ózin «BDFL-miynetkesh» dep atadı.) 2019-jıl yanvar ayında belsendi Python tiykarǵı baǵdarlamashıları proektti basqarıw ushın bes aǵzadan ibarat Basqarıw Keńesin sayladı.

Python atı Britaniyalı komediya serialı «Monti Paytonnıń ushatuǵın cirki»nen alınǵan. (Ataması bólimine qarań.)

Python 2.0 2000-jıl 16-oktyabrde shıǵarıldı hám onıń quramında dizimdi generaciyalaw, cikldi anıqlaytuǵın shıǵındını jıynaw, siltemelerdi sanaw hám Unicode qollap-quwatlawı sıyaqlı kóplegen áhmiyetli jańa ózgeshelikler bar edi. Python 2.7-niń qollanıwdan shıǵıwı dáslep 2015-jılǵa belgilengen edi, biraq ámeldegi kodtıń úlken kólemin Python 3-ke ańsat kóshiriw múmkin emes degen qáweter menen 2020-jılǵa shekem keshiktirildi. Ol endi qáwipsizlik jańalanıwların yamasa basqa jańalanıwlardı almaydı. Python 2.7 hám onnan eski versiyalar rásmiy túrde qollap-quwatlanbasa da, basqa bir rásmiy emes Python implementaciyası bolǵan PyPy Python 2-ni, yaǵnıy «2.7.18+» (plyus 3.10) versiyasın qollap-quwatlawdı dawam etpekte, bul plyus belgisi (keminde ayırım) «keri portlanǵan qáwipsizlik jańalanıwların» ańlatadı.

Python 3.0 2008-jıl 3-dekabrde shıǵarıldı hám ol úlken qayta islew bolıp, aldıńǵı versiyalar menen tolıq keri sáykes kelmeytuǵın edi, ayırım jańa semantika hám ózgertilgen sintaksiske iye edi. 2020-jılı shıǵarılǵan Python 2.7.18 Python 2-niń sońǵı relizi boldı. Python 3.x seriyasındaǵı bir neshe relizler tilge jańa sintaksis qostı hám bir neshe (júdá kishi dep esaplanǵan) keri sáykes kelmeytuǵın ózgerisler kirgizdi.

2025-jıldıń 14-avgustına kelip, Python 3.13 eń sońǵı turaqlı reliz bolıp, Python 3.9 eń eski qollap-quwatlanatuǵın reliz bolıp tabıladı. Relizler eki jıl tolıq qollap-quwatlawǵa, sonnan keyin úsh jıl qáwipsizlikti qollap-quwatlawǵa iye boladı.

## Dizayn filosofiyası hám ózgeshelikleri
Python — kóp paradigmalı programmalastırıw tili. Obyektke baǵdarlanǵan programmalastırıw hám strukturalıq programmalastırıw tolıq qollap-quwatlanadı hám olardıń kóplegen ózgeshelikleri funkcional programmalastırıw hám aspektke baǵdarlanǵan programmalastırıwdı — sonıń ishinde metaprogrammalastırıwdı hám metaobyektlerdi — qollap-quwatlaydı. Basqa da kóplegen paradigmalar keńeytpeler arqalı, sonıń ishinde shártnama boyınsha proektlestiriw hám logikalıq programmalastırıw arqalı qollap-quwatlanadı. Python kóbinese «jelimlew tili» dep ataladı, sebebi ol basqa tillerde jazılǵan komponentlerdi integraciyalaw ushın arnawlı proektlestirilgen.

Python dinamikalıq tiplestiriwdi hám yad basqarıw ushın siltemelerdi sanaw hám cikldi anıqlaytuǵın shıǵındını jıynawshı kombinaciyasın paydalanadı. Ol programma orınlanıwı waqtında metod hám ózgeriwshi atların baylanıstıratuǵın dinamikalıq at anıqlawdı (kesh baylanıstırıw) paydalanadı.

Python dizaynı «Lisp dástúrindegi» funkcional programmalastırıw ushın ayırım qollap-quwatlawdı usınadı. Onda `filter`, `map` hám `reduce` funkciyaları; dizimdi generaciyalaw, sózlikler, toplamlar hám generator ańlatpaları bar. Standart kitapxanada Haskell hám Standard ML tillerinen alınǵan funkcional qurallardı ámelge asıratuǵın eki modul (itertools hám functools) bar.

Pythonnıń tiykarǵı filosofiyası «Pythonnıń Dzeni» (PEP 20) hújjetinde qısqasha bayan etilgen, onda tómendegi aforizmler bar:
* Birtúrliden sulıw jaqsıraq.
* Ashıq jasırınnan jaqsıraq.
* Ápiwayı quramalıdan jaqsıraq.
* Quramalı aljasıwdan jaqsıraq.
* Oqıwǵa qolaylılıq áhmiyetli.

Biraq, Python ózgeshelikleri úziliksiz túrde bul principlerdi buzadı hám tilge kerek emes artıqmashılıqlar qosqanı ushın sınǵa alınǵan. Bul sınlarǵa juwaplar «Pythonnıń Dzeni» qaǵıyda emes, al kórsetpe ekenin atap ótedi. Ayırım jańa ózgesheliklerdiń qosılıwı dawlı bolǵan: Gvido van Rossum Python 3.8-ge tayınlaw ańlatpası operatorın qosıw haqqındaǵı kelispewshilikten keyin Ómirlik Miyrimli Diktator lawazımınan ketti.

Soǵan qaramastan, barlıq funkcional imkaniyatlardı óziniń tiykarına kirgizbesten, Python moduller arqalı keńeytiwge júdá beyim etip proektlestirilgen. Bul ıqsham modullik onı ámeldegi qosımshalarǵa programmalastırılatuǵın interfeysler qosıw usılı retinde ásirese ataqlı etti. Van Rossumnıń úlken standart kitapxanası bar kishi tiykarǵı til hám ańsat keńeytiletuǵın interpretator haqqındaǵı kózqarası onıń ABC tilinen kewli qalıwınan kelip shıqqan, ol kerisinshe usıldı sáwlelendirgen edi.

Python baǵdarlamashılarǵa ózleriniń kodlaw metodologiyasında tańlaw imkaniyatın beriw menen birge, anaǵurlım ápiwayı, taza sintaksis hám grammatikaǵa umtılatuǵının bildiredi. Perldıń «bunı islewdiń birden artıq usılı bar» uranına kerisinshe, Python «bunı islewdiń bir — hám múmkin bolsa tek bir ǵana — anıq usılı bolıwı kerek» degen usıldı qollaydı. Biraq, ámeliyatta Python belgili bir maqsetke erisiwdiń kóplegen usılların usınadı. Mısalı, qatar literalın formatlawdıń keminde úsh usılı bar hám baǵdarlamashı qaysı birin qollanıw kerekligin anıq bile almaydı. Aleks Martelli Python Programmalıq Támiynat Fondınıń aǵzası hám Python haqqındaǵı kitaplar avtorı; ol bılay dep jazǵan: «Bir nárselerdi "aqıllı" dep súwretlew Python mádeniyatında maqtaw dep esaplanbaydı.»

Python baǵdarlamashıları ádette erte optimallastırıwdan qashıwǵa háreket etedi; olar sonıń menen birge CPython silteme implementaciyasınıń áhmiyetli emes bólimlerine anıqlıq esabına biraz tezlik arttırıwın usınatuǵın dúzetiwlerdi de qabıl etpeydi. Orınlanıw tezligin tezlikti talap etetuǵın funkciyalardı C sıyaqlı tillerde jazılǵan keńeytpe modullerine kóshiriw arqalı yamasa PyPy sıyaqlı tez waqıtta kompilyaciya etiwshi kompilyatordı qollanıw arqalı jaqsılawǵa boladı. Basqa tillerge kross-kompilyaciya etiw de múmkin; biraq bul usıl ya kútilgen tezlikke erise almaydı, sebebi Python júdá dinamikalıq til, ya bolmasa Pythonnıń tek sheklengen bir bólimi ǵana kompilyaciya etiledi (potencial kishi semantikalıq ózgerisler menen).

Python baǵdarlamashıları tildiń qollanıwǵa qızıqlı bolıwına umtıladı. Bul maqset atamada — Britaniyalı komediya toparı Monti Paytonǵa húrmet belgisi — hám ayırım oqıw qollanbaları menen silteme materiallarına oyınlı usıllarda sáwlelengen. Mısalı, ayırım kod mısallarında ádettegi «foo» hám «bar» terminleriniń ornına «spam» hám «eggs» terminleri (Monti Payton sketchine silteme) qollanıladı.

Python jámiyetshiliginde keń tarqalǵan neologizm pythonic bolıp, ol programma stili menen baylanıslı keń mánislerge iye: Pythonic kod Python idiomaların jaqsı paydalana aladı; tábiyiy bolıwı yamasa tilde erkinlikti kórsetiwi múmkin; yamasa Pythonnıń minimalist filosofiyasına hám oqıwǵa qolaylılıqqa itibar beriwine sáykes keledi.

## Sintaksis hám semantika

Python ańsat oqılatuǵın til bolıwǵa baǵdarlanǵan. Onıń formatlanıwı vizual túrde taza hám basqa tiller punktuaciya belgilerin paydalanatuǵın jerlerde kóbinese inglis gilt sózlerin paydalanadı. Basqa kóplegen tillerden ayırmashılıǵı, ol bloklardı ajıratıw ushın figuralı qawsırmalardı paydalanbaydı, hám operatorlardan keyin útirli noqatlarǵa ruqsat etiledi, biraq siyrek qollanıladı. Onıń C yamasa Pascalǵa qaraǵanda sintaksislik ózgeshelikleri hám arnawlı jaǵdayları az.

### Sheginiw
Python bloklardı ajıratıw ushın figuralı qawsırmalar yamasa gilt sózler ornına bos orın sheginiwin paydalanadı. Sheginiwdiń artıwı belgili bir operatorlardan keyin keledi; sheginiwdiń azayıwı aǵımdaǵı bloktıń tamamlanǵanın bildiredi. Solay etip, programmanıń vizual strukturası onıń semantikalıq strukturasın anıq sáwlelendiredi. Bul ózgeshelik geyde «ofsayd qaǵıydası» dep ataladı. Basqa da ayırım tiller sheginiwdi usılay paydalanadı; biraq kópshiliginde sheginiwdiń semantikalıq mánisi joq. Usınıs etiletuǵın sheginiw ólshemi tórt bos orın.

### Operatorlar hám basqarıw aǵımı
Python operatorlarına tómendegiler kiredi:
* Menshiklew operatorı, bir teńlik belgisin `=` paydalanadı.
* `if` operatorı, shártli túrde kod blogın orınlaydı, `else` hám `elif` (`else if` sóziniń qısqartpası) penen birge.
* `for` operatorı, iteraciyalanatuǵın obyekt boyınsha aylanıp, hárbir elementti qosımsha blokta paydalanıw ushın jergilikli ózgeriwshige saqlaydı.
* `while` operatorı, logikalıq shárt durıs bolǵan waqıt dawamında kod blogın orınlaydı.
* `try` operatorı, óziniń qosımsha kod blogında payda bolǵan ayrıqsha jaǵdaylardı `except` bólimleri arqalı uslap alıwǵa hám qayta islewge imkaniyat beredi (yamasa Python 3.11-degi ayrıqsha jaǵdaylar toparları ushın jańa sintaksis `except*`); `try` operatorı sonıń menen birge `finally` blogındaǵı tazalaw kodınıń blok qanday shıǵıwına qaramastan bárqulla orınlanıwın támiyinleydi.
* `raise` operatorı, belgili bir ayrıqsha jaǵdaydı payda etiw yamasa uslap alınǵan ayrıqsha jaǵdaydı qayta payda etiw ushın qollanıladı.
* `class` operatorı, kod blogın orınlaydı hám onıń jergilikli atlar keńisligin obyektke baǵdarlanǵan programmalastırıwda paydalanıw ushın klassqa baylanıstıradı.
* `def` operatorı, funkciya yamasa metodtı anıqlaydı.
* `with` operatorı, kod blogın kontekst menedjeri ishine aladı, bul resurslardı alıw-bul-inicializaciya (RAII) sıyaqlı is-háreketke imkaniyat beredi hám ádettegi try/finally idiomasın almastıradı. Kontekst mısallarına ayırım kod orınlanbastan aldın qulıptı alıw, sońınan qulıptı bosatıw; yamasa fayldı ashıw hám sońınan jabıw kiredi.
* `break` operatorı, cikldan shıǵadı.
* `continue` operatorı, aǵımdaǵı iteraciyanıń qalǵan bólimin ótkizip jiberedi hám kelesi iteraciya menen dawam etedi.
* `del` operatorı, ózgeriwshini óshiredi — attan mániske siltemeni óshiredi hám eger ózgeriwshige qayta anıqlanbastan aldın silteme berilse qáte payda etedi. 
* `pass` operatorı, NOP (yaǵnıy, operaciya joq) retinde xızmet etedi, bul bos kod blogın jaratıw ushın sintaksislik jaqtan kerek boladı.
* `assert` operatorı, sazlawda qollanılıwı kerek bolǵan shártlerdi tekseriw ushın paydalanıladı.
* `yield` operatorı, generator funkciyasınan mánis qaytaradı (hám de operator); korutinalardı ámelge asırıw ushın qollanıladı.
* `return` operatorı, funkciyadan mánis qaytarıw ushın qollanıladı.
* `import` hám `from` operatorları, funkciyaları yamasa ózgeriwshileri aǵımdaǵı programmada paydalanılıwı múmkin bolǵan modullerdi import etiw ushın qollanıladı.
* `match` hám `case` operatorları, switch operatorı qurılısına uqsas bolıp, basqarıw-aǵımı ólshemi retinde bir ańlatpanı bir yamasa bir neshe jaǵdaylar menen salıstıradı.

Menshiklew operatorı (`=`) atamanı bólek, dinamikalıq túrde ajıratılǵan obyektke silteme retinde baylanıstıradı. Ózgeriwshiler keyinirek qálegen waqıtta qálegen obyektke qayta baylanıstırılıwı múmkin. Pythonda ózgeriwshi atı - bul anıq maǵlıwmat tipi joq ulıwma silteme saqlawshı; degen menen, ol bárqulla tipi bar qanday da bir obyektke silteme beredi. Bul dinamikalıq tiplestiriw dep ataladı — statikalıq tiplestirilgen tillerge kerisinshe, olarda hárbir ózgeriwshi tek belgili bir tiptegi mánisti ǵana óz ishine ala aladı.

Python quyırıqlı shaqırıwdı optimallastırıwdı yamasa birinshi klasslı dawam etiwlerdi qollap-quwatlamaydı; Van Rossumnıń aytıwınsha, bul til hesh qashan bunday etpeydi. Degen menen, korutinaǵa uqsas funkcional imkaniyatlardı jaqsıraq qollap-quwatlaw Python generatorların keńeytiw arqalı támiyinlenedi. 2.5-versiyasına shekem, generatorlar erinshek iteratorlar edi; maǵlıwmatlar generatordan bir baǵdarlı túrde shıǵarılǵan. Python 2.5-ten baslap, maǵlıwmatlardı generator funkciyasına qayta jiberiw múmkin boldı; hám 3.3-versiyadan baslap, maǵlıwmatlardı bir neshe stek dárejeleri arqalı jiberiwge boladı.

### Ańlatpalar
Python ańlatpalarına tómendegiler kiredi:
* Matematikalıq qosıw, alıw hám kóbeytiw ushın `+`, `-` hám `*` operatorları basqa tillerge uqsas, biraq bóliw háreketi ayırmashılıq etedi. Pythonda bóliwdiń eki túri bar: pútin bóliw `//` hám haqıyqıy bóliw `/`. Python dárejege kóteriw ushın `**` operatorın qollanadı.
* Python qatarlardı biriktiriw ushın `+` operatorın qollanadı. Til belgili bir san ret qatardı qaytalaw ushın `*` operatorın qollanadı.
* `@` infiks operatorı NumPy sıyaqlı kitapxanalar tárepinen matrica kóbeytiwi ushın qollanılıwǵa arnalǵan.
* Python 3.8-de kirgizilgen «morj operatorı» dep atalatuǵın `:=` sintaksisi. Bul operator úlkenirek ańlatpanıń bir bólimi retinde ózgeriwshilerge mánislerdi tayınlaydı (menshikleydi).
* Pythonda `==` eki obyektti mánisi boyınsha salıstıradı. Pythonnıń `is` operatorı obyekt sáykesligin salıstırıw ushın qollanılıwı múmkin (yaǵnıy, silteme boyınsha salıstırıw), hám salıstırıwlar shınjırlap baylanıstırılıwı múmkin — mısalı, `a <= b <= c`.
* Python logikalıq operatorlar retinde `and`, `or` hám `not` sózlerin paydalanadı.
* Pythonnıń dizimdi generaciyalaw dep atalatuǵın ańlatpa túri hám generator ańlatpası dep atalatuǵın anaǵurlım ulıwma ańlatpası bar.
* Anonim funkciyalar lyambda ańlatpaları arqalı ámelge asırıladı; degen menen, hárbir denede tek bir ǵana ańlatpa bolıwı múmkin.
* Shártli ańlatpalar `x if c else y` túrinde jazıladı. (Bul basqa kóplegen tillerde keń tarqalǵan `c ? x : y` operatorınıń operand tártibinen ayırmashılıq etedi.)
* Python dizimler menen kortejler arasında ayırmashılıq isleydi. Dizimler `[1, 2, 3]` túrinde jazıladı, ózgeriwshi bolıp tabıladı hám sózlik giltleri retinde qollanılıwı múmkin emes (sebebi Python-da sózlik giltleri ózgermeytuǵın bolıwı kerek). Kortejler `(1, 2, 3)` túrinde jazıladı, ózgermeytuǵın bolıp tabıladı hám sonlıqtan sózlik giltleri retinde qollanılıwı múmkin, eger kortejdiń barlıq elementleri ózgermeytuǵın bolsa. `+` operatorı eki kortejdi biriktiriw ushın qollanılıwı múmkin, bul olardıń mazmunın tikkeley ózgertpeydi, biraq ekewiniń de elementlerin óz ishine alǵan jańa kortej payda etedi. Mısalı, dáslep `(1, 2, 3)`-ke teń bolǵan `t` ózgeriwshisi berilgen bolsa, `t = t + (4, 5)` operatorın orınlaw dáslep `t + (4, 5)` ańlatpasın esaplaydı, bul `(1, 2, 3, 4, 5)` nátiyjesin beredi; bul nátiyje keyin `t`-ǵa qayta menshiklenedi — solay etip, kortej obyektleriniń ózgermeytuǵın tábiyatına sáykes kelip t-nıń «mazmunın» nátiyjeli túrde «modifikaciyalaydı». Kortejler ushın qawsırmalar anıq kontekstlerde minnetli emes.
* Python izbe-izlikti bóliw imkaniyatına iye, bunda hárbiri tayınlanıwı múmkin bolǵan bir nársege (mısalı, ózgeriwshi yamasa jazılatuǵın qásiyet) bahalanatuǵın bir neshe ańlatpalar kortej literalın qáliplestirgendegi sıyaqlı baylanıstırıladı; tutas alǵanda, nátiyjeler keyin tayınlaw (menshiklew) operatorında teńlik belgisiniń shep tárepine qoyıladı. Bul operator teńlik belgisiniń oń tárepinde shep táreptegi jazılatuǵın ańlatpalar sanına teń mánisler payda etetuǵın iteraciyalanatuǵın obyektti kútedi; iteraciya waqtında operator oń tárepte payda bolǵan hárbir mánisti shep táreptegi sáykes ańlatpaǵa tayınlaydı.
* Pythonnıń C tilindegi `printf` format qatarlarına uqsas isleytuǵın «qatar formatı» `%` operatorı bar — mısalı, `"spam=%s eggs=%d" % ("blah", 2)` ańlatpası `"spam=blah eggs=2"` nátiyjesin beredi. Python 2.6+ hám 3+ versiyalarında bul operator `str` klassınıń `format()` metodı menen tolıqtırıldı, mısalı, `"spam={0} eggs={1}".format("blah", 2)`. Python 3.6 «f-qatarların» qostı: `spam = "blah"; eggs = 2; f'spam={spam} eggs={eggs}'`.
* Pythonda qatarlar olardı «qosıw» arqalı biriktiriliwi múmkin (pútin sanlar menen haqıyqıy sanlardı qosıw ushın qollanılatuǵın operator menen birdey); mısalı, `"spam" + "eggs"` `"spameggs"` nátiyjesin beredi. Eger qatarlar sanlardı óz ishine alsa, olar pútin sanlar retinde emes, al qatarlar retinde biriktiriledi, mısalı, `"2" + "2"` `"22"` nátiyjesin beredi.
* Python qatar literalların bir neshe usılda qollap-quwatlaydı:
** Bir yamasa qos tırnaqshalar menen shegaralanǵan; bir hám qos tırnaqshalardıń funkcional imkaniyatları birdey (Unix shell-leri, Perl hám Perl tásirindegi tillerden ayırmashılıǵı). Eki belgi de keri sızıqshanı () qashıw belgisi (`\`) retinde qollanadı. Qatar interpolyaciyası Python 3.6-da «formatlanǵan qatar literalları» retinde payda boldı.
** Úsh tırnaqshalı, yaǵnıy úsh bir yamasa qos tırnaqsha menen baslanatuǵın hám tamamlanatuǵın; bul bir neshe qatarǵa sozılıwı múmkin hám shell-lerdegi, Perl hám Ruby-degi here documents sıyaqlı isley aladı.
** Shiyki qatar túrleri, qatar literalınıń aldına `r` prefiksin qoyıw arqalı belgilenedi. Qashıw izbe-izlikleri interpretaciya etilmeydi; sonlıqtan shiyki qatarlar turaqlı ańlatpalar hám Windows stilindegi jollar sıyaqlı literal keri sızıqshalar keń tarqalǵan jerlerde paydalı. (C#-daǵı «@-tırnaqshalaw» menen salıstırıń.)
* Pythonda massiv indeksi hám massivti bóliw ańlatpaları bar, olar `a[key]`, `a[start:stop]` yamasa `a[start:stop:step]` túrinde jazıladı. Indeksler nolden baslanadı hám teris indeksler aqırına salıstırmalı. Bólimler baslanǵısh indeksten aqırǵı indekske shekemgi elementlerdi aladı, biraq aqırǵı indeksti óz ishine almaydı. (Qosımsha) úshinshi bólim parametri, qádem yamasa adım dep ataladı, elementlerdi ótkizip jiberiwge yamasa kerisinshe tártipte alıwǵa imkaniyat beredi. Bólim indeksleri túsirip qaldırılıwı múmkin — mısalı, `a[:]` dizimniń tolıq kóshirmesin qaytaradı. Bólimniń hárbir elementi ústirtin kóshirme bolıp tabıladı.

Pythonda Common Lisp, Scheme yamasa Ruby sıyaqlı tillerden ayırmashılıǵı, ańlatpalar menen operatorlar arasındaǵı ayırmashılıq qatań saqlanadı. Bul ayırmashılıq ayırım funkcional imkaniyatlardıń qaytalanıwına alıp keledi, mısalı:
* Dizimdi generaciyalaw vs. `for`-ciklleri
* Shártli ańlatpalar vs. `if`-blokları
* `eval()` vs. `exec()` ornatılǵan funkciyaları (Python 2-de `exec` operator edi); birinshi funkciya ańlatpalar ushın, al ekinshisi operatorlar ushın

Operator ańlatpanıń bir bólimi bola almaydı; usı sheklew sebepli, dizim hám `dict` generaciyalawları (hám lyambda ańlatpaları) sıyaqlı ańlatpalar operatorlardı óz ishine ala almaydı. Arnawlı bir jaǵday retinde, `a = 1` sıyaqlı tayınlaw (menshiklew) operatorı shártli operator shártiniń bir bólimi bola almaydı.

### Metodlar
Obyektlerdiń metodları — bul obyekttiń klassına biriktirilgen funkciyalar; ádettegi metodlar hám funkciyalar ushın `instance.method(argument)` sintaksisi `Class.method(instance, argument)` ushın sintaksislik qolaylıq bolıp tabıladı. Python metodları, ayırım obyektke baǵdarlanǵan programmalastırıw tillerindegi (mısalı, C++, Java, Objective-C, Ruby) jasırın `self` (yamasa `this`) parametrinen ayırmashılıǵı, nusqa maǵlıwmatlarına kiriw ushın anıq self parametrge iye. Python sonıń menen birge, kóbinese dander metodları dep atalatuǵın (sebebi olardıń atları qos tómengi sızıqsha menen baslanadı hám tamamlanadı) metodlardı da usınadı; bul metodlar paydalanıwshı anıqlaǵan klasslarǵa uzınlıq, salıstırıw, arifmetika hám tip túrlendiriw sıyaqlı jergilikli operaciyalar tárepinen qalay qayta islenetuǵının ózgertiwge imkaniyat beredi.

### Tiplestiriw

Python duck typing usılın paydalanadı hám onıń tiplestirilgen obyektleri bar, biraq ózgeriwshi atları tipsiz. Tip sheklewleri anıqlaw waqtında tekserilmeydi; kerisinshe, obyekt ústindegi operaciyalar paydalanıw waqtında sátsizlikke ushırawı múmkin, bul obyekttiń sáykes kelmeytuǵın tipte ekenligin kórsetedi. Dinamikalıq tiplestirilgenine qaramastan, Python qatań tiplestirilgen bolıp, jaman anıqlanǵan operaciyalardı (mısalı, san menen qatardı qosıw) tınısh interpretaciya etiwge háreket etiw ornına, olardı qadaǵan etedi.

Python baǵdarlamashılarǵa kóbinese obyektke baǵdarlanǵan programmalastırıw ushın klasslardı paydalanıp, ózleriniń tiplerin anıqlawǵa imkaniyat beredi. Klasslardıń jańa nusqaları klasstı shaqırıw arqalı qurıladı, mısalı, `SpamClass()` yamasa `EggsClass()`); klasslardıń ózleri metaklass tipiniń nusqaları bolıp tabıladı (bul tip óziniń nusqası), solay etip metaprogrammalastırıwǵa hám refleksiyaǵa imkaniyat beredi.

3.0 versiyasınan aldın Pythonda birdey sintaksisti paydalanatuǵın eki túrli klass bar edi: eski usıldaǵı hám jańa usıldaǵı. Házirgi Python versiyaları tek jańa usıldıń semantikasın qollap-quwatlaydı.

Python qosımsha túrdegi tip annotaciyaların qollaydı. Bul annotaciyalar til tárepinen májbúr etilmeydi, biraq qátelerdi anıqlaw ushın **mypy** sıyaqlı sırtqı qurallar tárepinen paydalanılıwı múmkin. Python quramında tip annotaciyaları ushın bir neshe tip atların óz ishine alǵan typing moduli bar. Mypy sonday-aq mypyc dep atalatuǵın Python kompilyatorın da qollap-quwatlaydı, ol optimallastırıw ushın tip annotaciyalarınan paydalanadı.

### Arifmetikalıq operaciyalar
Python ádettegi arifmetikalıq operatorlar belgilerin (`+`, `-`, `*`, `/`), pútin bóliw operatorın `//` hám modul operatorın `%` óz ishine aladı. (Modul operatorı menen qaldıq teris bolıwı múmkin, mısalı, `4 % -3 == -2`.) Python sonıń menen birge dárejege kóteriw ushın `**` belgisin usınadı, mısalı, `5``**3 == 125` hám `9``**0.5 == 3.0`; ol sonday-aq matrica kóbeytiw operatorın `@` usınadı. Bul operatorlar dástúrli matematikadaǵıday isley aladı; sol birdey orınlanıw tártibi qaǵıydaları menen, infiks operatorları `+` hám `-` sáykes túrde oń hám teris sanlardı kórsetiw ushın unarlıq ta bola aladı.

Pútin sanlar arasındaǵı bóliw haqıyqıy san nátiyjelerin payda etedi. Bóliw háreketi waqıt ótiwi menen ádewir ózgerdi:
* Pythonnıń házirgi versiyası (yaǵnıy, 3.0-den baslap) `/` operatorın bárqulla haqıyqıy san bóliwin kórsetetuǵın etip ózgertti, mısalı, `5/2 == 2.5`.
* Pútin bóliw `//` operatorı kirgizildi, bul `7//3 == 2, -7//3 == -3`, `7.5//3 == 2.0` hám `-7.5//3 == -3.0` degen mánisti bildiredi. Python 2.7 ushın `from future import division` operatorın qosıw Python 2.7-degi modulge bóliw ushın Python 3.x qaǵıydaların paydalanıwǵa imkaniyat beredi (joqarıǵa qarań).

Python terminologiyasında `/` operatorı haqıyqıy bóliwdi (yamasa ápiwayı bóliwdi), al `//` operatorı pútin bóliwdi bildiredi. 3.0 versiyasınan aldın `/` operatorı klassikalıq bóliwdi kórsetedi.

Teris sheksizlikke qaray dóńgeleklew, kóplegen tillerdegiden basqasha usıl bolsa da, Pythonǵa izbe-izlik qosadı. Mısalı, bul dóńgeleklew `(a + b)//b == a//b + 1` teńlemesiniń bárqulla durıs ekenligin ańlatadı. Dóńgeleklew sonday-aq `b*(a//b) + a%b == a` teńlemesiniń `a`-nıń oń hám teris mánisleri ushın da durıs ekenligin bildiredi. Kútilgenindey, `a%b` nátiyjesi [0, b) yarım ashıq intervalda jaylasadı, bunda `b` - oń pútin san; degen menen, teńlemeniń durıslıǵın saqlaw ushın, eger `b` teris bolsa, nátiyje (b, 0] intervalında jaylasıwı kerek.

Python haqıyqıy sandı eń jaqın pútin sanǵa dóńgeleklew ushın `round` funkciyasın usınadı. Teń jaǵdaylardı sheshiw ushın, Python 3 jupqa qaray dóńgeleklew usılın paydalanadı: `round(1.5)` hám `round(2.5)` ekewi de `2` nátiyjesin beredi. 3-ten aldıńǵı Python versiyaları nolden uzaqlastırıp dóńgeleklew usılın paydalanǵan: `round(0.5)` `1.0` ge, al `round(-0.5)` `−1.0` ge teń.

Python bir neshe teńlik qatnasların óz ishine alǵan logikalıq ańlatpalardıń matematikadaǵı ulıwma qollanıwǵa sáykes keliwine imkaniyat beredi. Mısalı, `a < b < c` ańlatpası `a`-nıń `b`-dan kishi ekenin hám `b`-nıń `c`-dan kishi ekenin tekseredi. C-dan kelip shıqqan tiller bul ańlatpanı basqasha interpretaciyalaydı: C tilinde ańlatpa dáslep `a < b`-nı esaplaydı, nátiyjede 0 yamasa 1 alınadı, hám sol nátiyje keyin `c` menen salıstırıladı.

Python barlıq pútin san operaciyaları ushın qálegen dálliktegi arifmetikanı paydalanadı. `decimal` modulindegi `Decimal` tipi/klass onlıq haqıyqıy sanlardı aldınnan anıqlanǵan qálegen dállikte bir neshe dóńgeleklew rejimi menen támiyinleydi. `fractions` modulindegi `Fraction` klassı racional sanlar ushın qálegen dállikti támiyinleydi.

Pythonnıń keń kólemli matematika kitapxanası hám úshinshi tárep kitapxanası NumPy sebepli, bul til sanlı maǵlıwmatlardı qayta islew hám basqarıw sıyaqlı wazıypalarda ilimiy skriptlew ushın jiyi qollanıladı.

### Funkciya sintaksisi
Pythonda funkciyalar `def` gilt sózin qollanıw arqalı jaratıladı. Funkciya qalay shaqırılatuǵınına uqsas anıqlanadı, dáslep funkciya atı, sońınan kerekli parametrler beriledi. Tómende óziniń kirgiziwlerin shıǵaratuǵın funkciyanıń mısalı keltirilgen:

```python3
def printer(input1: str, input2: str = "álleqashan bar") -> None:
    print(input1)
    print(input2)
    
printer("sálem")
    
//Mısal shıǵıwı:
//sálem
//álleqashan bar
```
Orınlanıw waqtında haqıyqıy mánis berilmegen jaǵdayda funkciya parametrine standart mánis tayınlaw ushın funkciya basında ózgeriwshi-anıqlaw sintaksisin paydalanıwǵa boladı.

## Kod mısalları
«Hello, World!» programması:

```python
print('Hello, World!')
```


Oń pútin sannıń faktorialın esaplaytuǵın programma:

```python
text: str = input('Sandı jazıń, onıń faktorialı basıp shıǵarıladı: ')
n: int = int(text)

if n < 0:
    raise ValueError('Siz teris emes pútin san kirgiziwińiz kerek')

factorial: int = 1
for i in range(2, n + 1):
    factorial *= i

print(factorial)
```


## Kitapxanalar
Pythonnıń úlken standart kitapxanası onıń eń úlken kúshli tárepleriniń biri retinde jiyi atap ótiletuǵın edi. Internetke baǵdarlanǵan qosımshalar ushın MIME hám HTTP sıyaqlı kóplegen standart formatlar hám protokollar qollap-quwatlanadı. Tildiń quramında grafikalıq paydalanıwshı interfeyslerin jaratıw, relyaciyalıq maǵlıwmatlar bazalarına qosılıw, psevdo-tosınarlı sanlardı generaciyalaw, qálegen dálliktegi onlıq sanlar menen arifmetikalıq ámeller orınlaw, turaqlı ańlatpalardı basqarıw hám birlik testlew modulleri bar.

Standart kitapxananıń ayırım bólimleri specifikaciyalar menen qamtılǵan — mısalı, Web Server Gateway Interface (WSGI) implementaciyası wsgiref PEP 333 ke ámel etedi — biraq kópshilik bólimleri olardıń kodı, ishki hújjetleri hám test toplamları menen anıqlanadı. Degen menen, standart kitapxananıń kópshilik bólimi kross-platformalı Python kodı bolǵanlıqtan, tek bir neshe modul ǵana basqa implementaciyalar ushın ózgertiliwi yamasa qayta jazılıwı kerek.

## Derekler

__BÖLİDİMÖNDEMEW__