Rustemovablog.files.wordpress.com



Azerbaijan Lectures_01Python Proqramla?d?rman?n ?saslar?H?r ?eyd?n ?vv?l bu kitab z?ngin Python ?hat?sini ?hat? edir. Python-un proqramla?d?rma modell?rini - prosedur proqramla?d?rma, funksional üslubda proqramla?d?rma v? obyekt y?nümlü proqramla?d?rmada müzakir? edirik. ?n yax?? t?crüb?l?rd?n istifad? ed?r?k m?vcud idiomu vur?ulay?r?q. Funksional proqramla?d?rma, laz?m olduqda bütün kitab boyu istifad? olunur. 4-cü f?sild?ki bir qrafikd? Python-un ?sas funksional üslubda proqramla?d?rma imkanlar?n?n ?ks?riyy?tini ?hat? ed?n f?sill?r verilmi?dir.Kompüter sisteml?ri v? Python proqramla?d?rma dilin? giri?M?qs?dl?rBu f?sild?:Hesablama texnikas? sah?sind?ki son maraql? hadis?l?r haqq?nda m?lumatlar verilir.Obyekt-y?nlü proqramla?d?rman?n ?saslar? n?z?rd?n ke?irilir.Pytho proqramla?d?rma dilinin üstünlükl?ri n?z?r? ?arpd?r?l?r.Bu kitabda istifad? edil?c?k Python kitabxanalar? n?z?rd?n ke?irilir.Python kodunu icra etm?k ü?ün IPython interpretatorunun interaktiv rejimi s?naqdan ke?irilir.Bir sütunlu diaqram qrafikini canland?ran Python skripti icra edilir.Veb brauzer bazal? Jupyter Notebook mühitind? Python kodu icra edilir v? s?naqdan ke?irilir."B?yük Veril?nl?r" ?yr?nilir.M??hur bir mobil naviqasiya t?tbiqind? b?yük veril?nl?r (Big Data) m?vzular üzr? oxunulur.Süni intellektl? tan?? olmaq kompüter elml?ri (computer science) v? veril?nl?r haqq?nda elm (data science) ?hat?sind? mümkün olur.1.1 G?R??Dünyan?n ?n ?ox istifad? olunan kompüter proqramla?d?rma dill?rind?n biri olan v? Proqramla?d?rma Dill?rinin Populyarl??? (PYPL) ?ndeksin? g?r? dünyan?n ?n populyar Python mühitin? xo? g?ldiniz. .1.2 OBJEKT TEXNOLOG?YASI ?SASLARININ QISA ?CMALIYeni v? daha güclü proqram t?minat?na t?l?bl?r artd?qca, proqram? tez, düzgün v? iqtisadi c?h?td?n s?m?r?li olaraq layih?l?ndirm?k vacibdir. Obyektl?r, daha do?rusu, obyektl?ri do?uran sinifl?r, ?slind? t?krar istifad? edil? bil?n proqram komponentl?ridir. Biri-birind?n f?rql?ndiril?n müxt?lif sinif tipli (Class type) obyektl?ri (date objects, time objects, audio objects, video objects, automobile objects, people objects) yaradan zaman onlar? tam ??kild? t?svir ed? bil?n sinifl?r? ehtiyac duyulur. Dem?k olar ki, h?r hans? bir isim (noun) m?hfumlu atributlar (attributes) (m?s?l?n, ad?, r?ng v? ?l?üsü) v? davran??lar? (m?s?l?n, ad?, r?ngi v? ?l?üsü) bax?m?ndan bir proqram obyektinin xass?l?ri kimi, h?min obyektl? davran?? t?rzi (behaviors) (m?s?l?n, hesablama, yerd?yi?m? v? qar??l?ql? ?laq? qurmaq) bax?m?ndan is? bir proqram obyekti il? h?yata ke?iril? bil?si metodlar kimi g?st?ril? bil?r. Proqram t?minat?n? inki?af etdir?n qruplar, "struktur proqramla?d?rma" kimi daha m??hur olan üsullarla müqayis?d?, daha ?ox m?hsuldar olan modul v? obyekt y?nümlü dizayna malik t?tbiqetm? (modular, object-oriented design and implementation approach) yana?mas?ndan istifad? edil? bil?r. Obyekt y?nümlü proqramlar? asan ba?a dü?m?k, tez-tez düz?ltm?k v? d?yi?dirm?k daha münasibdir.Avtomobil obyekt kimiObyektl?ri v? onlar?n m?zmununu ba?a dü?m?yiniz? k?m?k etm?k ü?ün sad? bir b?nz?tm?d?n ba?layaq. Bir avtomobili idar? etm?k v? sür?tl?ndirici pedal?n? basaraq daha sür?tli getm?k ist?y?rsiniz. Bunu etm?zd?n ?vv?l n? ba? verm?lidir? H?r hans? ma??n? sürm?zd?n ?vv?l kims? onu layih?l?ndirm?lidir. Avtomobil ümumiyy?tl?, bir evin dizayn?n? t?svir ed?n layih?l?r? b?nz?r müh?ndislik t?svirl?ri olan ?ertyojlarla ba?lay?r. Bu t?svirl?r sür?tl?ndirici pedal ü?ün layih?l?ndirilm?lidir. ?yl?c pedal? avtomobili yava?latan mexanizml?ri "gizl?dir", sükan avtomobili d?nd?r?n mexanizml?ri "gizl?dir". G?st?rildiyi kimi, pedal da avtomobili daha sür?tli getm?y? m?cbur ed?n mür?kk?b mexanizml?ri gizl?dir. Bu, müh?rrikl?rin, ?yl?c v? sükan mexanizml?rinin avtomobili asanl?qla idar? etm?l?ri bar?d? az v? ya ?ox m?lumat? olan insanlara imkan verir.M?tb?xin plan?nda yem?k haz?rlaya bilm?diyiniz kimi, bir avtomobilin müh?ndis t?svirl?rini d? ??k? bilm?zsiniz. Bir avtomobili idar? etm?zd?n ?vv?l, onu t?svir ed?n müh?ndis t?svirl?ri qurulmal?d?r. Tamamlanm?? bir avtomobilin sür?tl?nm?sini t?min etm?k ü?ün faktiki sür?tl?ndirici pedal? var, lakin bu da yet?rli deyil - avtomobil ?z-?zün? sür?tl?nm?y?c?k (in?allah!), Buna g?r? d? sürücü ma??n? sür?tl?ndirm?k ü?ün pedal? basmal?d?r.Metodlar v? sinifl?rB?zi ?sas obyekt y?nümlü proqramla?d?rma anlay??lar?n? t?qdim etm?k ü?ün avtomobil nümun?mizd?n istifad? ed?k. H?r bir proqramda h?r hans? tap??r??? yerin? yetirm?k ü?ün mü?yy?n bir metod laz?md?r. Metod, v?zif?l?rini icra ed?n proqram ifad?l?rini, operatorlar? ?zünd? c?ml??dirir. Bir avtomobilin sür?t pedal? sürücünün avtomobilin daha sür?tli getm?si mexanizml?rini gizl?tdiyi kimi, metod da bu ifad?l?rin nec? yerin? yetirilm?sini istifad??id?n gizl?dir. Python`da, sinif adlanan bir proqram modulu var. Sinif qar??ya qoyulan v?zif?l?ri yerin? yetir?n metodlar toplusuna sahibdir. M?s?l?n, bir bank hesab?n? (bank account) t?msil ed?n sinifd? hesaba pul qoymaq ü?ün bir metod (deposit) ola bil?r, dig?ri bir metod hesabdan pul ??xarmaq ü?ün (withdraw), ü?üncüsü is? hesab?n balans?n?n ne?? oldu?unu (inquire) soru?maq ü?ün istifad? oluna bil?r. Bir sinif, sür?tl?ndirici pedal?, sükan? v? s onlar?n dizayn?n? ?zünd? c?ml??dir?n bir avtomobilin müh?ndis t?svirl?rin? b?nz?yir.?rn?k d?yi??nAvtomobil idar? etm?zd?n ?vv?l kims? müh?ndislik t?svirl?rind?n bir avtomobil qurmal? oldu?unu n?z?r? almal?d?r. Bunun kimi, proqramda qar??ya qoyulan v?zif?l?ri yerin? yetir?n sinif metodlar?n?n mü?yy?nl??dirdiyi tap??r?qlar? yerin? yetirm?zd?n ?vv?l bir sinif obyekti yarad?l?r. Bu proses ?rn?k d?yi??nin t?c?ssüm edilm?si adlan?r. Bundan sonra yarad?lan h?min obyekt ?z sinfinin bir ?rn?k d?yi??ni adlan?r.Yenid?n istifad?Bir avtomobilin müh?ndislik t?svirl?ri avtomobil qurmaq ü?ün d?f?l?rl? istifad? oluna bil?c?yi kimi, bir ?ox yeni obyekti yaratmaq ü?ün d?f?l?rl? eyni sinifi yenid?n istifad? ed? bil?rsiniz. M?vcud sinifl?rd?n imtina etm?kl? yeni sinifl?ri v? proqramlar? qurark?n xeyli vaxt v? ?lav? s?y t?l?b olunur. M?vcud sinifl?rd?n yenid?n istifad?, daha etibarl? v? t?sirli sisteml?r qurma??n?za k?m?k edir, ?ünki m?vcud sinifl?r v? komponentl?r ?ox vaxt geni? testl??dirm?d?n ke?irilir, sazlanma v? performans t?nziml?m?si apar?l?r. S?naye ?nqilab? ü?ün d?yi??n hiss?l?rin ?v?zl?nm?si anlay??? vacib oldu?u kimi, t?krar istifad? edil? bil?n sinifl?r d? obyekt texnologiyas? il? h?lledici proqram t?minat? inqilab? ü?ün vacibdir.Python-da proqramlar?n?z? yaratmaq ü?ün ümumiyy?tl?, bina bloku yana?mas?ndan istifad? ed?c?ksiniz. Velisopedi yenid?n k??f etm?m?k ü?ün, mümkün oldu?u yerl?rd? yüks?k keyfiyy?tli hiss?l?rd?n istifad? ed?c?ksiniz. Bel?likl?, proqramdan t?krar istifad? obyekt y?nümlü proqramla?d?rman?n ?sas üstünlükl?rind?ndir.Mesajlar v? Metod ?a??r??lar?Bir avtomobil idar? ed?rk?n, qaz pedal?n? basaraq, ma??na sür?tli getm?k tap??r???n? yerin? yetirm?k ü?ün mesaj g?nd?rir - y?ni daha da sür?tli getm?k laz?md?r. Analoji qaydada, h?r hans? bir obyekt? d? mesaj g?nd?rilir. H?r bir mesaj, obyektin ?z v?zif?sini yerin? yetirm?sini izah ed?n metod ?a??r??? olaraq h?yata ke?irilir. M?s?l?n, proqram hesab?n balans?n? art?rmaq ü?ün bank hesab?n? n?z?rd? tutan bankAccount obyektinin depozit (deposit) metodunu ?a??ra bil?r.Atributlar v? ?rn?k D?yi??nl?rAvtomobil, mü?yy?n olunmu? tap??r?qlar? yerin? yetirm?k imkan?na sahib olmaqla yana??, onun r?ngi, qap?lar?n?n say?, bakdak? yanaca??n miqdar?, cari sür?t, h?r?k?td? oldu?u v? ya q?t etdiyi ümumi m?saf?l?rin u?otu (y?ni spidometr g?st?ricil?ri) kimi n?z?r? al?na bilin?n xüsusiyy?tl?r? d? malikdir. Avtomobilin texniki imkanlar? kimi, onun atributlar? layih? v? sxeml?rd? (m?s?l?n, manometr, spidometr v? yanacaq ?l??n cihaz daxildir) qeyd olunan ??kild?dir. H?qiqi bir avtomobili idar? etdiyiniz zaman bu atributlar h?r?k?t hal?nda da avtomobil il? birlikd? n?z?r? ?arp?r. H?r bir avtomobil ?z atributlar?n? ?zün? m?xsus ??kild? saxlay?r. M?s?l?n, h?r bir avtomobilin yanacaq bak?nda n? q?d?r benzin oldu?u bizim t?r?fd?n ?l?ül? bilinir, ancaq dig?r h?r?k?td? olan avtomobill?rd?ki baklarda n? q?d?r yanaca??n oldu?u biz? m?lum olmaya bil?r.Obyekt analoji qaydada proqramda istifad? oluna bilin?n ?zün? m?xsus atributlara malikdir. Bu atributlar obyekti ?m?l? g?tir?n sinifin t?rkib hiss?si kimi g?st?rilmi?dir. M?s?l?n, bank hesab?n? bildir?n bankaccount obyekti hesabdak? pul miqdar?n? t?msil ed?n bir balans (balance) atributuna malikdir. H?r bir bankaccount obyekti, bankdak? dig?r hesablar?n qal?qlar?n? deyil, t?msil etdiyi hesabdak? qal??? bilir. Atributlar sinifin ?rn?k d?yi??nl?ri t?r?find?n t?yin olunur. Bir sinifin (v? onun obyektinin) atributlar? v? metodlar? bir-biri il? s?x ba?l?d?r, buna g?r? sinifl?r ?z atributlar?n? v? metodlar?n? tam ??kild? bir-birin? birl??dir?r?k t?qdim edirl?r.. VarislikVarislik yolu il? obyektl?rin yeni bir sinfi rahatl?qla yarad?la bil?r - yeni sinif (buna subclass deyilir), m?vcud sinifin (superclass adlan?r) xüsusiyy?tl?rini ?zünd? saxlay?r, mümkündür ki, onlar?n b?zil?rini düz?ld?r?k ?zün?m?xsus ?lav? xüsusiyy?tl?ri ?ld? edir. Avtomobil analoqumuzda, "d?yi?diril? bil?n" sinif obyekti, daha ümumi sinif "avtomobil" obyektidir, lakin daha d?qiq des?k, avtomobilin dam ?rtüyünün qald?r?la v? ya endiril? bilinm?si m?s?l?si ?lav? edil? bilin?r.Obyekt y?nümlü analiz v? dizayn (OOAD)Tezlikl? Pythonda proqram yazacaqs?n?z. Proqramlar?n?z?n kodunu nec? yaradacaqs?n?z? B?lk? d?, bir ?ox proqram?? kimi, sad?c? kompüterinizi yand?r?b yazma?a ba?layacaqs?n?z. Bu yana?ma ki?ik proqramlar ü?ün (kitab?n ilk f?sill?rind? t?qdim etdikl?rimiz kimi) yararl? ola bil?r, ancaq b?yük bir bank ü?ün, minl?rl? avtomat bankomat? idar? etm?k ü?ün bir proqram sistemi yaratmaq ist?dikd? n?l?r olacaq? Yoxsa, AB? hava n?qliyyat? idar?etm? sisteminin yeni n?slini quran 1000 proqram t?rtibat??s?ndan ibar?t bir qrupda i?l?m?yinizi dü?ünün? Bu q?d?r b?yük v? mür?kk?b layih?l?r ü?ün sad?c? oturub proqram yazma?a ba?lamamal?s?n?z.?n yax?? h?ll?r yaratmaq ü?ün, layih?nizin t?l?bl?rini mü?yy?nl??dirm?k ü?ün (m?s?l?n, sistemin n? ed?c?yini mü?yy?nl??dirm?k ü?ün) prosesi ?trafl? analizni etm?lisiniz, sonra onlar? qane ed?n bir dizayn haz?rlamal?s?n?z (y?ni sistemin nec? etm?li oldu?unu d?qiql??dirin). ?deal olaraq, h?r hans? bir kodu yazmazdan ?vv?l bu prosesin dizayn? diqq?tl? n?z?rd?n ke?irilm?li (v? dizayn?n?z? dig?r proqram müt?x?ssisl?ri d? n?z?rd?n ke?irm?lidir). Bu proses sisteminizi obyekt y?nümlü bax?mdan t?hlil etm?yi v? dizayn etm?yi ?hat? edirs?, buna obyekt y?nümlü analiz v? dizayn (OOAD) prosesi deyilir. Python kimi dill?r obyekt y?nümlüdür. Obyekt y?nümlü proqramla?d?rma (OOP) adlanan bel? bir dild? proqramla?d?rma sistemli ??kild? h?yata ke?iril?r?k obyekt y?nümlü analiz v? dizayn? ?hat? etm?y? imkan verm?lidir.1.3 PYTHONPython, 1991-ci ild? a??q ??kild? yay?mlanan obyekt y?nümlü proqramla?d?rma dilidir. Amsterdamdak? Milli Riyaziyyat v? Kompüter Elml?ri ?nstitutundan Guido van Rossum t?r?find?n haz?rlanm??d?r.Python sür?tl? dünyan?n ?n populyar proqramla?d?rma dill?rind?n birin? ?evrildi. ?ndi t?hsil v? elmi hesablama ü?ün xüsusil? populyard?r v? bu yax?nlarda ?n populyar data science proqramla?d?rma dili kimi R proqramla?d?rma dilini üst?l?di. Python`un populyarla?mas?n?n b?zi s?b?bl?ri var v? h?r k?s bunu ?yr?nm?yi dü?ünm?lidir:A??q m?nb?li, pulsuz v? open source community c?miyy?ti il? geni? yay?lm??d?r.C, C ++, C # v? Java kimi dill?rin? nisb?t?n daha asan ?yr?nil?n, t?crüb?sizl?r? v? pe??kar t?rtibat??lara sür?tl? ?atma?a imkan ver?n proqramla?d?rma dilidir.Bir ?ox dig?r populyar proqramla?d?rma dill?rin? baxanda daha da oxunaql?d?r. ?ünki, kodlar? yazanda bel? mü?yy?n standart strukturlara ilk n?vb?d? ?m?l etm?k laz?m g?lir.T?hsild? geni? istifad? olunur.Geni? standart kitabxanalar v? ü?üncü t?r?fl?rin a??q m?nb? kitabxanalar? il? inki?af etdirilm?si hesab?na m?hsuldarl?q xeyli art?r, buna g?r? proqram??lar kodlar? daha sür?tli yaza bil?r v? minimum kodla mür?kk?b tap??r?qlar? yerin? yetir? bilirl?r.Bu bar?d? daha ?ox 1.4 B?lm?d? dan??aca??q.?ox sayda pulsuz a??q m?nb? Python t?tbiqetm?si var.Veb proqramla?d?r?lman?n inki?af?nda m??hurdur (m?s?l?n, Django, Flask).Python populyar proqramla?d?rma paradiqmalar?n?-prosedur, funksional v? obyekt-y?nümlü t?rzl?ri d?st?kl?yir.Funksional proqramla?d?rma xüsusiyy?tl?rini 4-cü f?sild? t?qdim etm?y? ba?layaca??q v? onlardan sonrak? f?sill?rd? istifad? ed?c?yik.Paralel proqramla?d?rman? asanla?d?r?r - asuncion v? async/await k?m?yi il? vahid ax?nl? paralel proqramla?d?rma kodunun yaz?lmas?, bu kodun yaz?lmas?n?n mür?kk?b prosesl?rini, birg? müzakir? edilm?si v? saxlan?lmas? asanla?d?r?l?r.Python proqramla?d?rma mühitinin performans?n? art?rmaq ü?ün ?ox sayda imkanlar var.Sad? skriptl?rd?n tutmu? Dropbox, YouTube, Reddit, Instagram v? Quora kimi ?oxsayl? istifad??isi olan mür?kk?b t?tbiql?r? q?d?r müxt?lif proqram m?hsullar?n? yaratmaq ü?ün istifad? olunur.Yüks?k s?viyy?d? geni?l?ndiril?n süni intellekt sah?sind?, o cüml?d?n, data science sah?sind? xeyli m??hurdur.Maliyy? sah?sind? geni? t?tbiq olunur.Python proqram??lar? ü?ün bir ?ox sah?l?r üzr? geni? i? bazar? m?vcuddur, xüsus?n d? data science sah?sind? v? Python i??il?ri bütün proqramla?d?rma i??il?rinin ?n yüks?k ?d?nil?n f?rdl?rind?ndir. Python proqramla?d?rma dili R, statistik t?tbiql?r v? vizualla?d?rma ü?ün populyar olan a??q m?nb?li proqramla?d?rma dilidir. Python v? R data science sah?sind? iki ?n geni? yay?lm?? proqramla?d?rma dill?ridir.Anaconda Python Distribusiyas?Anaconda Python distributivind?n istifad? edirik, ?ünki onu Windows, MacOS v? Linux-da qura?d?rmaq asand?r v? Python`un son versiyalar?n? d?st?kl?yir, IPython interpretatoru (B?lm? 1.5.1-d? t?qdim olunur) v? Jupyter Notebooks (B?lm? 1.5.3-d? t?qdim olunur) ?n son versiyalar?n? d?st?kl?yir. Anaconda, Python proqramla?d?rma v? data science sah?sind? tez-tez istifad? olunan dig?r proqram paketl?ri v? kitabxanalar?n? da ?hat? edir. IPython interpretatoru Python, Python Standard Kitabxanas? v? ü?üncü t?r?f kitabxanalar?n?n geni? d?sti il? bir ?ox funksiyalar? - ara?d?rma, k??f v? t?crüb? etm?y? k?m?k ed?n xüsusiyy?tl?ri vard?r. ZenTim Petersonun The Zen of Python f?ls?fi dü?ünc?l?ri 20 s?tird?n ibar?tdir. Bu s?tirl?r Guido van Rossumun yarad?c?s? oldu?u Python proqramla?d?rma dili ü?ün dizayn prinsipl?rini ?zünd? c?ml??dirir. Ona g?r? Python Zen-in? ?m?l etm?k laz?md?r. Bu siyah?n? h?r sesiyada bir d?f? olmaqla import this? ?mri il? Ipython`da g?rm?k olar. Python Zen Python Gücl?ndirm? T?klifind? (PEP) 20'de t?yin edilmi?dir. "Bu PEP Python c?miyy?tin? m?lumat ver?n v? ya Python v? ya onun prosesl?ri v? ya mühiti ü?ün yeni bir xüsusiyy?t izah ed?n dizayn s?n?didir." Zen of PythonBeautiful is better than ugly.Explicit is better than implicit.Simple is better than plex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren't special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one-- and preferably only one --obvious way to do it.Although that way may not be obvious at first unless you're Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea -- let's do more of those!Дзен питонаКрасиво лучше, чем безобразно.Явное лучше, чем неявное.Простое лучше, чем сложное.Сложный лучше, чем сложный.Квартира лучше, чем вложенная.Разреженный лучше, чем плотный.Читаемость имеет значение.Особые случаи не достаточно особенные, чтобы нарушать правила.Хотя практичность превосходит чистоту.Ошибки никогда не должны проходить бесшумно.Если явно не молчать.Перед лицом двусмысленности откажитесь от соблазна гадать.Должен быть один - и желательно только один - очевидный способ сделать это.Хотя этот путь поначалу может быть неочевидным, если вы не голландец.Сейчас лучше, чем никогда.Хотя никогда не бывает лучше, чем * прямо * сейчас.Если реализацию сложно объяснить, это плохая идея.Если реализацию легко объяснить, это может быть хорошей идеей.Пространства имен - одна из отличных идей - давайте сделаем больше!пасхальное яйцоEaster Egg>>> import this1.4 K?TABXANALAR!Kitab boyunca, proqramlar?n inki?af etdirilm?si s?yl?rinizi istifad? ed?r?k, "yenid?n t?k?r icad etm?m?k" ü?ün m?vcud kitabxanalardan istifad? etm?y? diqq?t edirik. ?ox vaxt ?ox orijinal kodu haz?rlamaq ?ox bahal? v? vaxt aparan bir proses oldu?undan ?vv?lc?d?n m?vcud olan bir kitabxana sinfind?n istifad? edilir. Sad?c? bir Python operatorunun k?m?yi il? yeni bir obyekt yarada bil?rik. Bel?likl?, kitabxanalar, cüzi miqdarda kodla ?h?miyy?tli v?zif?l?ri yerin? yetirm?y? k?m?k ed?c?kdir. Bu kitabda Python standart kitabxanalar?ndan (standard libraries), data science libraries kitabxanalar?ndan v? ü?üncü t?r?fin kitabxanalardan geni? istifad? ed?c?ksiniz. 1.4.1 Python standart kitabxanas?Python Standard Kitabxanas? m?tn / ikili m?lumatlar?n emal?, riyaziyyat, funksional proqramla?d?rma, fayl /qovluqa giri?, m?lumatlar?n davaml?l???, m?lumatlar?n s?x?lmas? / arxivl??dirilm?si, kriptoqrafiya, ?m?liyyat sistemi xidm?tl?ri, eyni vaxtda proqramla?d?rma, k?si?m?l?raras? rabit?, ??b?k? protokollar?, JSON / XML / dig?r ?nternet m?lumat formatlar?, multimedia, beyn?lmil?ll??m?, GUI, düz?li?l?r, profill?r v? s. A?a??dak? c?dv?ld?ki nümun?l?rd? istifad? etdiyimiz b?zi Python Standard Library modullar?n?n siyah?s? verilmi?dir.Kitabda istifad? etdiyimiz b?zi Python Standard Library modullar?collections - siyah?lar, l?vh?l?r, lü??tl?r v? d?stl?rd?n k?nar ?lav? veril?nl?r strukturlar?.csv — vergüll? ayr?lm?? d?y?rl?rin s?n?dl?rd? i?l?nilm?si.datetime, time - Tarix v? vaxt manipulyasiyas?.decimal - Pul hesablamalar? daxil olmaqla sabit n?qt?li v? üz?n n?qt? arifmetikas?.os - ?m?liyyat sistemi il? qar??l?ql? ?laq?.queue – N?vb?, ?vv?lc? m?lumat qurulu?u.random - yalan?? t?sadüfi ?d?dl?r.re - yenid?n - Nümun? uy?unlu?u ü?ün münt?z?m ifad?l?r.sqlite3 - SQLite ?laq?li veril?nl?r bazas?na giri?.statistics - Riyazi statistika orta, orta, rejim v? f?rq kimi funksiyalar?.String – S?tirl?rd?n ibar?t m?tnl?rin i?l?nilm?si.sys - Komanda x?tti d?lilinin i?l?nm?si; standart giri?, standart ??x?? v? standart s?hv ax?nlar?.timeit - Performans t?hlili.1.4.2 Data Science Kitabxanalar?Python, bir ?ox sah?d? a??q m?nb? kodlar?n?n inki?af etdiricil?rinin geni? v? sür?tl? b?yüy?n bir c?miyy?tin? malikdir. Python-un populyarl???n?n ?n b?yük s?b?bl?rind?n biri a??q m?nb? c?miyy?tinin inki?af etdirdiyi f?vq?lad? a??q kitabxanalard?r. M?qs?dl?rimizd?n biri d? siz? data science-d?, ?sas data science kitabxanalar?nda v? daha ?ox i?l?rd? i?tirak etm?kl? yana?? Python proqramla?d?rmas?na maraql?, ??tin v? ?yl?nc?li bir t?qdimat ver?n nümun?l?r v? t?tbiqetm? nümun?l?ri yaratmaqd?r. Kodun c?mi bir ne?? s?tirind? yerin? yetir? bil?c?yini ?sas v?zif?l?r? aid hesab olunur. A?a??dak? c?dv?ld? müxt?lif populyar data science kitabxanalar? verilmi?dir. Data Science Kitabxanalar? nümun?l?rimizl? i?l?y?rk?n bunlar?n ?oxunu istifad? ed?c?ksiniz. Vizual olaraq Matplotlib, Seaborn v? Folium istifad? ed?c?yik, lakin daha ?ox kitabxana nümun?l?ri var. Python vizual kitabxanalar?n?n g?z?l bir xülas?si ü?ün sayt?na bax?n.Data Science`d? istifad? olunan m??hur Python kitabxanalar?Scientific Computing v? StatisticsNumPy (Numerical Python)—Python'un massiv kimi p?r?iml?nmi? ??kild? veril?nl?rin strukturu yoxdur. ?v?zind? rahat, lakin nisb?t?n yava? olan siyah?lardan (lists) istifad? edir. NumPy siyah?lar? v? matrisl?ri t?msil etm?k ü?ün yüks?k performansl? ndarray kimi veril?nl?rin strukturunu t?qdim edir v? bu qaydada veril?nl?rin strukturlar?n?n i?l?nilm?sini t?min edir.SciPy (Scientific Python) - NumPy üz?rind? qurulub, SciPy inteqrallar, diferensial t?nlikl?r, ?lav? matris emal? v? daha ?ox bu kimi elmi prosesl?rin i?l?nilm?si qaydalar?n? ?lav? edir. SciPy v? NumPy-ni idar? edir.StatsModels - Statistik modell?rin qiym?tl?ndirilm?sin?, statistik testl?r? v? statistik veril?nl?rin ara?d?r?lmas?na d?st?k verir.Veril?nl?rin idar? edilm?si v? t?hliliPandas – Veril?nl?rin manipulyasiyas? ü?ün olduqca populyar bir kitabxanad?r. Pandalar NumPy'nin ndarray`?ndan bol istifad? edirl?r. Onun iki ?sas veril?nl?rin strukturlar? Series (bir ?l?ülü) v? DataFrames (iki ?l?ülü )dür.Vizualla?d?rmaMatplotlib – Qrafikl?rin vizualla?d?r?lmas? v? qurulmas? ü?ün ?z?ll??diril? bilin?n kitabxanad?r. D?st?kl?n?n qrafiki sah?l?r? regular, scatter, bar, contour, pie, quiver, grid, polar axis, 3D v? m?tn daxildir.Seaborn - Matplotlib üz?rind? qurulmu? daha yüks?k s?viyy?li bir vizual kitabxanad?r. Seaborn daha g?z?l bir g?rünü?? malikdir v? asanl?qla ?lav? vizual g?rüntül?r verilir v? daha az kodu olan vizual g?rüntül?r yaratma?a imkan verir.Ma??n ?yr?nm?, D?rin ?yr?nm? v? Gücl?ndirm? T?limi (Machine Learning, Deep Learning and Reinforcement Learning)scikitlearn — ?n yax?? ma??n ?yr?nm? kitabxanas?d?r. Ma??n ?yr?nm?si AI-nin alt hiss?sidir. D?rin ?yr?nm?, neyron ??b?k?l?rin? diqq?t yetir?n ma??n ?yr?nm?sinin alt hiss?sidir.Keras - D?rin ?yr?nm? kitabxanalar?ndan istifad?nin ?n asanlar?ndan biridir. Keras TensorFlow (Google), CNTK (Microsoft-un d?rind?n ?yr?nm? ü?ün koqnitiv vasit?l?r d?sti) v? ya Theano (Université de Montréal) -?n üstünd?dir.TensorFlow - Google-dan bu, ?n ?ox istifad? olunan d?rin ?yr?nm? kitabxanas?d?r. TensorFlow, performans ü?ün GPU (qrafik emal prosessoru) v? ya Google'un xüsusi TPU (Tensor emal prosessoru) il? i?l?yir. TensorFlow, AI v? b?yük m?lumat analitikl?rind? vacibdir, emal t?l?bl?ri b?yükdür. TensorFlow-a qura?d?r?lm?? Keras?n versiyas?ndan istifad? ed?c?ksiniz.OpenAI Gym - Gücl?ndirm? ?yr?nm? alqoritml?rini inki?af etdirm?k, s?naqdan ke?irm?k v? müqayis? etm?k ü?ün kitabxana mühitidir.T?bii Dill?rin Generasiyas? (NLP)NLTK (Natural Language Toolkit) - T?bii dil i?l?nm?si (NLP) v?zif?l?ri ü?ün istifad? olunur.TextBlob - NLTK v? nümun? NLP kitabxanalar? üz?rind? qurulmu? bir obyekt y?nümlü NLP m?tn emal kitabxanas?d?r. TextBlob ?ox vaxt NLP tap??r?qlar?n? asanla?d?r?r.Gensim - NLTK-y? ox?ay?r. S?n?dl?r toplusu ü?ün bir indeks yaratmaq ü?ün ümumiyy?tl? istifad? olunur, sonra ba?qa bir s?n?din indeksind? olanlar?n h?r biri il? n? q?d?r ox?ar oldu?unu mü?yy?nl??dirir.1.5 TEST S?R?C?L?R?: IPYTHON V? JUPYTER NOTEBOOKSBu b?lm?d?, siz IPython interpretatorunu iki rejimd? s?naqdan ke?ir?c?ksiniz: ?nteraktiv rejimd? (interactive mode), Python kodunun fraqment adlanan ki?ik bitl?rini daxil edirsiniz v? n?tic?l?rini d? d?rhal g?rürsünüz.Skript rejimind? (script mode), .py uzant?s? olan bir fayldan yükl?nmi? kodu icra ed?c?ksiniz (Python ad?ndan g?türülüb). Bu cür fayllar skriptl?r v? ya proqramlar adlan?r v? ümumiyy?tl? interaktiv rejimd? istifad? ed?c?yiniz kod fraqmentl?rind?n nisb?t?n uzun olur.Sonra Python kodunu yazmaq v? icra etm?k ü?ün Jupyter Notebook kimi tan?nan brauzer ?sasl? mühitd?n nec? istifad? ed?c?yinizi ?yr?n?c?ksiniz.Jupyter "?z nüv?l?rini" (“kernels”) qura?d?raraq bir ?ox proqramla?d?rma dill?rini d?st?kl?yir. Daha ?ox m?lumat ü?ün bax?n: 1.5.1 IPython ?nteraktiv rejimi bir Kalkulyator kimi istifad? etm?kSad? hesabi ifad?l?ri qiym?tl?ndirm?k ü?ün IPython interaktiv rejimind?n istifad? ed?k.IPython-a ?nteraktiv rejimind? daxil olmaq?vv?l sisteminizd? bir ?mr s?tiri p?nc?r?sini a??n:MacOS-da Proqramlar qovlu?unun Utility alt qovlu?undan Terminal a??n.Windows-da Start menyusundan Anaconda Command Prompt-i a??n.Linux-da sisteminizin Terminal?n? v? ya ?rtüyünü a??n (bu Linux distributivin? g?r? d?yi?ir).Skript s?tiri p?nc?r?sind? ipython yaz?n, sonra Enter (v? ya Return) düym?sini bas?n. A?a??dak? kimi m?tni g?r?c?ksiniz; bu platforma v? IPython versiyas?na g?r? d?yi?ir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunPython 3.7.0 | packaged by condaforge | (default, Jan 20 2019, 17:24:52)Type 'copyright', 'credits' or 'license' for more informationIPython 6.5.0 An enhanced Interactive Python. Type '?' for help.In [1]: [1] -d?: "In [1]:" m?tni, IPython'un giri?ini g?st?r?n bir d?v?tdir. type ? yazmaqla bir anda laz?m olan k?m?k ü?ün ya da fraqment kodlar?n? daxil etm?k ü?ün yard?mlar? g?r? bil?rsiniz.?fad?l?rin hesablanmas??nteraktiv rejimd? ifad?l?rin qiym?tl?rini hesablaya bil?rsiniz:In [1]: 45 + 72Out[1]: 117In [2]:Jupyter "?z nüv?l?rini (kernels)" qura?d?raraq bir ?ox proqramla?d?rma dill?rini d?st?kl?yir. Daha ?ox m?lumat ü?ün bax?n: + 72 yazd?qdan sonra Enter düym?si bas?l?r v? IPython proqram fraqmenti oxunulur, qiym?tl?r hesablan?r v? n?tic?sini Out[1]:-d? yaz?r. Sonra IPython ikinci proqram fraqmentini daxil etm?yinizi g?zl?diyini g?st?rm?k ü?ün In [2]:skriptini g?st?rir. H?r yeni proqram fraqmenti ü?ün IPython kvadrat m?t?riz?d?ki n?mr?y? 1 ?lav? edir. Kitabdak? h?r [1]: yeni bir interaktiv seansa ba?lad???m?z? g?st?rir. ?mumiyy?tl? bunu bir f?slin h?r yeni b?lm?si ü?ün edirik.Daha mür?kk?b bir ifad?nin qiym?tini hesablayaq:Kod g?rüntüsün? baxmaq ü?ün buraya vurun:In [2]: 5 * (12.7 - 4) / 2Out[2]: 21.75Python, vurma ?m?li ü?ün ulduzdan (*) v? b?lm? ?m?li ü?ün sla?dan (/) istifad? edir. Riyaziyyatda oldu?u kimi m?t?riz?l?rin i??risind?ki hesablama ?mrl?ri ilk n?vb?d? yerin? yetirilm?y? m?cbur edilir, buna g?r? m?t?riz?li ifad? (12.7 - 4)n?tic?d? 8.7 ver?r?k ?vv?lc? hesablan?l?r. Sonrak? 5 * 8.7 ifad?sinin qiym?ti 43.5 ver?r?k sonrak? hesablaman?n yerin? yetirilm?sin? ke?irilir. Y?ni, 43.5 / 2 ifad?si n?hay?t qiym?tl?ndirir, IPython Out [2] -d? g?st?rdiyi 21.75 n?tic?sini verir. 5, 4 v? 2 kimi bütün ?d?dl?r tam ?d?dl?r adlan?r. 12.7, 43.5 v? 21.75 kimi onluq sayda ?d?dl?r? sürü?k?n n?qt?li onluq k?sr ?d?dl?ri deyilir.?nteraktiv rejimd?n ??x???nteraktiv rejimi t?rk etm?k ü?ün a?a??dak?lar? ed? bil?rsiniz:??x?? ?mrini - exit cari s?tird? In [] ist?diyi yer? yaz?n v? d?rhal ??xmaq ü?ün Enter düym?sini bas?n.Birg? klavi?l?ri bas?n: <Ctrl> + d (v? ya <control> + d). Bu, "Do you really want to exit ([y]/n)?" standart cavabda t?sdiq ü?ün - Enter düym?sini basmaqla t?qdim edilir.Type <Ctrl> + d (v? ya <control> + d) iki d?f? bas?n (yaln?z MacOS v? Linux).1.5.2 IPython interpretatorunu istifad? ed?r?k Python proqram?n?n icras?Bu b?lm?d?, F?sil 6-da yazaca??n?z RollDieDynamic.py adl? bir skript icra ed?c?ksiniz. .py uzant?s?, fayl?n Python proqramla?d?rma dilind? kodun yaz?ld???n? g?st?rir. Skript RollDieDynamic.py alt? üzlü ?tamplaman? simulyasiya edir. Dinamik olaraq h?r üzün tezliyini vizualla?d?ran r?ngar?ng cizgi qrafikas? il? t?qdim edir.Bu f?sild?ki nümun?l?r qovlu?una ke?idSsenarini kitab?n ch01 m?nb? kodu qovlu?unda tapa bil?rsiniz. Ba?lamazdan ?vv?l b?lm?d? examples qovlu?unu istifad??i hesab?n?z?n Documents qovlu?una ??xartmaq laz?m g?lir. H?r f?sild? onun m?nb? kodu olan bir qovlu?u var. Qovluq ch ## adlan?r, burada ## 01-d?n 17-d?k iki r?q?mli f?sil n?mr?sidir. ?vv?lc? sistemin ?mr s?tiri p?nc?r?sini (cmd.exe) a??n. N?vb?ti f?sild?, Out[] g?st?rilm?y?n b?zi hallar?n oldu?unu g?rürsünüz. Sonra, cd("qovlu?u d?yi?dir") ?mrind?n istifad? ed?r?k ch01 qovlu?una ke?in:? MacOS / Linux-da cd ~/Documents/examples/ch01yaz?n v? Enter düym?sini bas?n.? Windows-da cd C:\Users\YourAccount\Documents\examples\ch01 yaz?n v? Enter düym?sini bas?n.Skriptin icras?Skripti yerin? yetirm?k ü?ün ?mr s?tirind? a?a??dak? ?mri yaz?n v? Enter düym?sini bas?n: ipython RollDieDynamic.py 6000 1 Skript, vizuall??? g?st?r?n bir p?nc?r? a??r. 6000 v? 1 ?d?dl?ri bu skript? z?rin ne?? d?f? at?ld???n? v? h?r d?f? ne?? z?r istifad? edildiyini bildirir. Bu v?ziyy?td?, bir anda 1 z?r ü?ün sxemi 6000 d?f? yenil?y?c?yik.Alt? t?r?fli z?r ü?ün 1 il? 6 aras?ndak? d?y?rl?r "b?rab?r ehtimal" il? ba? verm?lidir, y?ni, h?r birinin ehtimal? 1/6 v? ya t?xmin?n 16.667% t??kil edir. 6000 d?f? z?ri atsaq, h?r üzün 1000 ?traf?nda dü??c?yini g?zl?yirik. Metal pul at?ld??? kimi, z?rin yuvas?n?n dü?m?si d? t?sadüfi bir ?eydir, buna g?r? 1000-d?n az, b?zil?rind? 1000, b?zil?rind? 1000-d?n ?ox olan üzl?r ola bil?r. Bu skript t?sadüfi yarad?lan z?rin at?lmas? d?y?rl?rind?n istifad? edir, buna g?r? n?tic?l?riniz f?rql?n?c?kdir. 1'i 100, 1000 v? 10000'y? d?yi?dir?r?k skriptl? s?naq ke?irin. Diqq?t yetirin ki, z?rl?rin say? b?yüdükc? tezlikl?r 16.667% -? enir. Bu "B?yük ?d?dl?r qanunu" fenomendir.Skriptl?ri yaratmaqTipik olaraq, Python kodu m?tn yazma?a imkan ver?n bir redaktorda yarad?l?r. Redaktordan istifad? ed?r?k bir proqram yaz?rs?n?z, laz?mi düz?li?l?r edir v? kompüterinizd? saxlay?rs?n?z. ?nteqrasiya edilmi? i?l?m? mühitl?ri (IDE), proqramlar?n s?hv icra edilm?sin? s?b?b olan m?ntiqi s?hvl?rinin yerini mü?yy?nl??dirm?k ü?ün redaktorlar, sazlay?c?lar kimi proqram t?minat?n?n inki?af? prosesini d?st?kl?y?n vasit?l?r t?qdim edir. B?zi populyar Python IDE-l?rin? Spyder (Anaconda il? g?lir), PyCharm v? Visual Studio Code daxildir.Azerbaijan Lectures_022. Python Proqramla?d?rmas?na Giri?M?qs?dl?rBu f?sild?:Kod fraqmentl?rini daxil etm?k v? n?tic?l?rini d?rhal g?rm?k ü?ün IPython interaktiv rejimind?n istifad? edin.Sad? Python operatorlar?ndan ibar?t ifad?l?ri v? skriptl?ri yaz?n.Daha sonra istifad? edilm?si ü?ün veril?nl?ri ?zünd? saxlayan d?yi??nl?ri yarad?n.Qo?ma veril?nl?r tipi il? tan?? olun.Hesabi operatorlar v? müqayis? operatorlar?ndan istifad? edin v? onlar?n üstünlükl?rini anlay?n.T?k, ikiqat v? ü?qat d?rnaq i?ar?l?rind?n istifad? edin.M?tni g?st?rm?k ü?ün qura?d?r?lm?? print funksiyas?ndan ?ap ü?ün istifad? edin.?stifad??inin klaviaturadan veril?nl?ri daxil etm?si v? onlar?n proqramda istifad?si ü?ün input funksiyas?ndan istifad? edin.M?tnin daxilind? qura?d?r?lm?? int funksiyas? il? ?d?di veril?nl?ri tam ?d?dl?r? ?evirin.Bir ifad?nin v? ya ifad?l?r qrupunun icras?na q?rar verm?k ü?ün müqayis? operatorlar?ndan v? if ifad?sind?n istifad? edin.Obyektl?r v? Python-un dinamik tipl?ri haqq?nda m?lumat ?ld? edin.Bir obyekt tipini mü?yy?n etm?k ü?ün qura?d?r?lm?? type funksiyas?ndan istifad? edin.2.1 G?R??Bu f?sild? Python proqramla?d?rmas?n? t?qdim edirik v? ?sas dil xüsusiyy?tl?rini ?ks etdir?n nümun?l?ri t?qdim edirik. IPython interpretatorunu t?qdim ed?n v? sad? hesabi ifad?l?ri qiym?tl?ndirm?k ü?ün istifad? edil?n IPython Test Drive haqq?nda 1-ci f?sild? oxumusunuz.2.2 D?Y???NL?R V? M?N?MS?TM? OPERATORLARIIPython'un interaktiv rejimini hesabi ifad?l?ri olan bir kalkulyator kimi istifad? etm?k olar:In [1]: 45 + 72Out[1]: 1177-ni ?zünd? saxlayan x d?yi??nini yaradaq:In [2]: x = 7 [2] fraqmenti bir ifad?ni bildirir. H?r bir operatorun a??qlamas?nda yerin? yetiril?c?k bir v?zif?si vard?r. ?vv?lki ifad? x d?yi??nini yarad?r v? x-in qiym?tini verm?k ü?ün m?nims?tm? simvolundan (=) istifad? edilir. ?ks?r operatorlar s?trin sonunda bitir, baxmayaraq ki, operatorlar?n bird?n ?ox s?tiri ke?m?si mümkündür. A?a??dak? operator y d?yi??nini yarad?r v? onun d?y?rini t?yin edir:3:In [3]: y = 3?ndi x v? y d?yi??nl?rini operatorlarla yaz?lm?? ifad?l?rd? istifad? ed? bil?rsiniz:In [4]: x + yOut[4]: 10Python üslubuPython Kodlar?n?n yaz?lmas? ü?ün t?limat toplusu ( Style Guide for Python Code) proqram? Python kodla?d?rma konvensiyalar?na uy?un ??kild? yazma?a k?m?k edir. Stil b?l?d?isi, proqram simvolunun h?r t?r?fin? bir bo?luq qoyma?? t?vsiy? edir = v? proqramlar? daha oxunaql? etm?k ü?ün + kimi binar operatorlardan istifad? edilir. ad?D?yi??nin ad?, m?s?l?n, x - identifikatordur. H?r bir identifikator h?rfl?rd?n, r?q?ml?rd?n v? alt cizgil?rd?n (_) ibar?t ola bil?r, lakin r?q?ml? ba?laya bilm?z. Python b?yük-ki?ik h?rfl?rin registerin? h?ssasd?r, buna g?r? onlar?n müxt?lif yerl?rd? istifad? olundu?u eyni m?nal? identifikatorlar? f?rqlidir, ?ünki biri ki?ik h?rfl?, dig?ri b?yük h?rfl? istifad? olunur. M?s?l?n, Number v? number.Tipl?riPython'dak? h?r bir d?y?rin t?msil etdiyi veril?nin tipini ifad? ed?n bir type m?vcuddur.Python`un type funksiyas? il? veril?nin tipini g?r? bil?rsiniz:In [7]: type(x)Out[7]: intIn [8]: type(10.5)Out[8]: floatx d?yi??ni 7 tam ?d?dini (fraqment [2] -d?n b?lli oldu?u kimi) ibar?tdir, buna g?r? Python int (integer, tam ?d?d ü?ün) g?st?rir. 10.5 qiym?ti vergüllü onluq k?srl?ri g?st?r?n n?qt? simvoludur, buna g?r? Python type kimi float olaraq g?st?rir. HESAB? OPERATORLARA?a??dak? c?dv?ld? c?brd? istifad? olunmayan b?zi simvollar?n daxil oldu?u hesabi operatorlar ümumil??dirilmi?dir.Vurma (*)Python ulduz (*) vurma operatorundan istifad? edir:In [1]: 7 * 4Out[1]: 28Qüvv?t? yüks?ltm? (**)Eksponentl??dirm? (**) operatoru bir d?y?ri dig?rinin qüvv?tin? yüks?ldir:In [2]: 2 ** 10Out[2]: 1024Kvadrat k?kü hesablamaq ü?ün eksponentin 1/2 hiss?sini (y?ni 0,5) istifad? ed? bil?rsiniz:In [3]: 9 ** (1 / 2)Out[3]: 3.0Onluq k?sr hiss?li b?lm? (/) vs qal?qs?z tam b?lm? (//)True division (/), bir sur?ti bir m?xr?c? b?lür v? tam hiss?d?n n?qt? il? ayr?lan onluq k?sr hiss?ni verir:In [4]: 7 / 4Out[4]: 1.75Floor division (//), bir sur?ti bir m?xr?c? b?lür v? tam hiss?ni ay?r?r, y?ni, n?tic?d?n ?ox olmayan ?n yüks?k tam ?d?di verir. Python k?sr hiss?sini k?sir (at?r):In [5]: 7 // 4Out[5]: 1In [6]: 3 // 5Out[6]: 0In [7]: 14 // 7Out[7]: 2True division (/), 13-ü 4-? b?lm?k, n?tic?d? 3.25 verirIn [8]: 13 / 4Out[8]: 3.25Floor division (//), ?n yax?n 3,25-d?n ?ox olmayan tam ?d?di verir - bu 4-dür:In [9]: 13 // 4Out[9]: 4?stisnalar v? Geriy? ?zl?m?l?r (Tracebacks)S?f?ra b?lm? ?m?liyyat?n?n / v? ya // il? yerin? yetirilm?sin? icaz? verilmir v? istisna il? n?tic?l?nir - problemin meydana g?ldiyini g?st?r?n bir i?ar?:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [10]: 123 / 0ZeroDivisionError Traceback (most recent call last)<ipythoninput10cd759d3fcf39> in <module>()> 1 123 / 0ZeroDivisionError: division by zeroPython geriy? izl?m? il? bir istisna oldu?unu bildirdi. Bu geriy? izl?m? ZeroDivisionError tipli bir istisnan?n meydana g?ldiyini g?st?rir - ?ks?r istisna adlar Error il? bitir. ?nteraktiv rejimd?, istisnaya s?b?b olan fraqmentin s?ra n?mr?si s?tird?ki 10 il? g?st?rilir<ipythoninput10cd759d3fcf39> in <module>()> d?v?t il? ba?layan s?tir, istisnaya s?b?b olan kodu g?st?rir. B?z?n fraqmentl?r bird?n ?ox kod s?trin? malik olur. - bu > sa?dak? 1-ci hiss?, fraqmentin i??risind?ki 1 s?tirin istisnaya s?b?b oldu?unu g?st?rir. Sonuncu s?tird? bir istisna, ard?ndan bir b?lm? i?ar?si (:) v? istisna haqq?nda daha ?ox m?lumat olan bir s?hv mesaj? g?st?rilir:ZeroDivisionError: division by zero"Fayllar v? ?stisnalar" f?slind? istisnalar ?trafl? müzakir? olunur. H?l? yarad?lmam?? bir d?yi??nd?n istifad? etm?y? ?al??san?z da istisna ba? verir. A?a??dak? fraqment, nam?lum d?yi??n? 7 ?lav? etm?y? ?al???r, n?tic?d? bir NameError:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [11]: z + 7NameError Traceback (most recent call last)<ipythoninput11f2cdbf4fe75d> in <module>()> 1 z + 7NameError: name 'z' is not definedQal?q OperatoruPython’un qal?q operatoru (%), sol t?r?fi sa? t?r?f? b?ldükd?n sonra qalan qal??? verir:In [12]: 17 % 5Out[12]: 2Bu durumda, 17 b?lünür 5-? b?rab?rdir tam hiss? 3 v? qal?q hiss? 2 oldu?undan qal?q operatoru (%) cavab olaraq 2 verir. Bu qal?q operatoru (%) ?n ?ox tam ?d?dl?r? ?amil olunur, ancaq dig?r ?d?dl?rl? d? i?l?nil? bilinir:In [13]: 7.5 % 3.5Out[13]: 0.5K?sr x?tti formas?C?bri ifad?l?rin a?a??dak? kimi yaz?l???abümumiyy?tl?, kompilyatorlar v? interpretatorlar ü?ün m?qbul deyildir. Bu s?b?bd?n, c?br ifad?l?ri Python operatorlar?ndan istifad? etm?kl? bir düz x?tt boyunca yaz?lmal?d?r. Yuxar?dak? ifad? bütün operator v? operandlar?n üfüqi düz x?ttd? g?rünm?si ü?ün a / b (v? ya tam b?lm? ü?ün a // b) ??klind? yaz?lmal?d?r.?fad?l?ri m?t?riz?l?rl? qrupla?d?r?nM?t?riz?l?rin (Parentheses) qrupla?d?r?lmas? Python ifad?l?rind?, c?bri ifad?l?rind? oldu?u kimi g?st?rilir. M?s?l?n, a?a??dak? kod 5 + 3 c?mini 10 d?f? art?r? bildirir :In [14]: 10 * (5 + 3)Out[14]: 80Bu m?t?riz?l?r olmadan hesablanan n?tic? f?rqlidir:In [15]: 10 * 5 + 3Out[15]: 53M?t?riz?l?r ??xar?ld?qda da eyni n?tic? al?n?rsa, onda deyirl?r ki, m?t?riz?l?r art?qd?r (laz?ms?zd?r).Operator ?stünlük Qaydalar?Python operatorlar? hesabi ifad?l?rd? a?a??dak? operator üstünlükl’ri qaydalar?na uy?un t?tbiq edilir. Bunlar ümumiyy?tl? c?brd? olanlarla eynid?r:1. M?t?riz?l?rd?ki ifad?l?r ?vv?lc? hesablan?r, buna g?r? m?t?riz?l?r hesablamalar?n apar?lmas? ard?c?ll???n? ist?nil?n qaydada d?yi?dir? bil?r. M?t?riz?l?r ?n yüks?k s?viyy? üstünlüy? malikdir. (a / (b - c)) kimi i?-i?? m?t?riz?l?r olan ifad?l?rd? ?vv?lc? daxili m?t?riz?d? olan ifad? (y?ni b - c) hesablan?r.2. Qüvv?t? yüks?ltm? ?m?liyyatlar? n?vb?ti üstünlüy? malikdir. Bir ifad?d? bir ne?? qüvv?t? yüks?ltm? ?m?liyyat? varsa, Python onlar? sa?dan sola t?tbiq edir.3. Vurma, b?lm? v? modul ?m?liyyatlar? sonrak? üstünlükl?r? aiddir. Bir ifad?d? bir ne?? vurma, b?lm?, tam b?lm? v? modul ?m?liyyatlar? varsa, Python onlar? soldan sa?a t?tbiq edir. Vurma, b?lm? v? modul "eyni s?viyy?d?dir".4. ??xma v? toplama ?m?liyyatlar? sonda hesablan?r. Bir ifad?d? bir ne?? toplama v? ??xma ?m?liyyat? varsa, Python onlar? soldan sa?a t?tbiq edir. ??xma v? toplama i?ar?l?ri d? eyni d?r?c?y? malikdir.Operatorlar?n tam siyah?s? v? onlar?n üstünlüyü ü?ün (?n a?a?? d?r?c?y? q?d?r); Qrupla?d?r?lmas? Python soldan sa?a mü?yy?n operatorlar? t?tbiq etdiyini s?yl?y?nd? operatorlar?n qrupla?d?r?lmas?na müraci?t edirik. M?s?l?n, a + b + c ifad?sind? biz m?t?riz?nin k?m?yi il? (a + b) + c kimi qrupla?d?ra bil?rik. Bu ifad?ni hesablad?qda, sanki soldan sa?a operatorlar? (+) toplayaraq qrupla?d?r?r?q. Eyni üstünlüy? malik bütün operatorlar ü?ün left-to-right ??rti ?d?nils? d?, qüvv?t? yüks?ltm? operatorlar? (**) ü?ün right-to-left prinsipi h?yata ke?irilir.Laz?ml? m?t?riz?l?r?fad?ni daha ayd?n ??kild? ba?a dü?m?k ü?ün alt ifad?l?ri qrupla?d?rmaqla laz?ms?z m?t?riz?l?rd?n istifad? edil? bil?r. M?s?l?n, ikinci d?r?c?li polinomy = a * x ** 2 + b * x + cayd?nl?q ü?ün ?lav? m?t?riz?l?rd?n istifad? edil? bil?r:Kod g?rüntüsün? baxmaq ü?ün buraya vuruny = (a * (x ** 2)) + (b * x) + cMür?kk?b bir ifad?ni q?sa, daha sad? ifad?l?rl? ard?c?ll?qla b?l?r?k ayd?n ??kild? t?svir edil? bil?r.Operand tipl?riH?r bir hesabi operatorda tam ?d?dl?r v? onluq k?srl?r kimi n?qt?li ?d?dl?rd?n istifad? edil? bil?r. H?r iki operand tam ?d?ddirs?, n?tic? tam bir ?d?ddir - true division (/) operatoru istisna olmaqla, hans? ki, bu halda h?mi?? onluq k?srd?n ibar?t n?qt?li ?d?d verir. H?r iki operand onluq k?srd?n ibar?t n?qt?li ?d?ddirs?, n?tic? d? n?qt? ?d?d olar. Tam v? n?qt?li ?d?d ehtiva ed?n ifad?l?r qar???q tipli ifad?l?rdir - bunlar h?mi?? onluq k?srd?n ibar?t n?qt?li ?d?di verir.2.4 PRINT FUNKS?YASI V? G?R?? VER?L?NL?R?N?N T?K- V? C?T-DIRNAQ ???R?S?ND? T?QD?M OLUNMASIQura?d?r?lm?? print funksiyas? ?z arqument(l?r)ini m?tn s?tri kimi g?st?rir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: print('Welcome to Python!')Welcome to Python!Bu v?ziyy?td? 'Welcome to Python!' arqumenti – ard?c?l simvollar?n ?m?l? g?tirdiyi s?tird?n ibar?tdir. ?cra prosesi interaktiv rejimd? h?yata ke?diyind?n, ?vv?lkil?rd?n f?rqli olaraq burada print funksiyas?n?n arqumentini ?ap ed?n interpretator d?rhal Out [1] -d?n istifad? etm?d?n n?tic?ni g?st?rir. H?m?inin, print funksiyas?nda istifad? olunan t?k- v? ya cüt-d?rnaqlar ?apda ?ks olunmurlar. Yuxar?dak? nümun? t?k-d?rnaqlar aras?nda veril?n arqument? aid oldu?u kimi, a?a??dak? nümun?nin d? eyni qaydada cüt-d?rnaqlar aras?nda veril?n arqumentl?r? aid oldu?u b?lli olur.Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [2]: print("Welcome to Python!")Welcome to Python!M?s?l?n Hello “Python” m?tnini t?k d?rnaqlar aras?nda saxlan?ls?n, sonra istifad? etm?lisinizstr1='Hello "Python"'Dig?r t?r?fd?n, ?g?r m?tn Hello 'Python'-a b?nz?yirs?, o zaman m?tn a?a??dak? kimi cüt d?rnaqlar aras?nda yerl??dirilm?lidir:Str2="Hello 'Python'"Python proqram??lar? ümumiyy?tl?, t?k d?rnaqlara üstünlük verirl?r. print funksiyas? ?z v?zif?sini tamamlad?qda, ekran kursorunu n?vb?ti s?trin ?vv?lin? avtomatik ??kild? yerl??dirir.Vergüll? ayr?lm?? elementl?rin siyah?s?n? ?ap etm?k?ap etm?k ü?ün print funksiyas? vergüll? ayr?lm?? arqumentl?rin siyah?s?n? ala bil?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: print('Welcome', 'to', 'Python!')Welcome to Python!?vv?lki iki hiss?d? oldu?u kimi eyni n?tic?ni ??xararaq ard?c?ll??? bo?luq il? ayr?lan h?r bir arqumenti g?st?rir. Burada vergüll? ayr?lm?? elementl?rin siyah?s?n? g?st?rdik, lakin veril?nl?r ist?nil?n tipd? ola bil?r. N?vb?ti f?sild? veril?nl?r aras?ndak? avtomatik interval?n qar??s?n? almaq v? ya bo?luqdan f?rqli dig?r bir ay?r?c? istifad? ed?c?yimizi g?st?r?c?yik.Bir operatorla bir ne?? s?tir m?tni ?ap etm?kBir s?tird? t?rsin? k?sr x?tti (\ - backslash) g?ründüyü zaman, escape character (simvol) kimi tan?n?r. T?rsin? k?sr x?tti (\) v? d?rhal sonra g?l?n simvol escape sequence (ard?c?ll???n?) meydana g?tirir. M?s?l?n, \n ??x?? kursorunu n?vb?ti s?tir? ke?irm?yin yaz?ld???n? bildir?n newline character (yeni s?tir simvolu) escape sequence (ard?c?ll???n?) t?msil edir. A?a??dak? fraqmentd?n bir ne?? ??x?? s?trini yaratmaq ü?ün ü? d?f? yeni s?tir simvolu olaraq \n istifad? olunur:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [4]: print('Welcome\nto\n\nPython!')WelcomeToPython!Dig?r Escape-ard?c?ll?qlarA?a??dak? c?dv?l b?zi ümumi escape-ard?c?ll???n? g?st?rir.Escape-ard?c?ll?qlar - T?sviri\ n - S?tr? yeni s?tir simvolunu daxil edin. S?tir g?st?rildikd?, h?r bir yeni s?tir ü?ün ekran kursorunu n?vb?ti s?trin ?vv?lin? ke?irin.\ t - üfüqi bir tabulyasiya daxil edin. S?tir g?st?rildikd?, h?r tabulyasiya ü?ün ekran kursorunu n?vb?ti tabulyasiya dayanaca??na ke?irin.\\ - Bir s?tird? t?rs k?sr x?ttini daxil edin.\ "- Bir s?tird? cüt-d?rnaql? bir simvol daxil edin.\ '- S?tird? t?k-d?rnaql? bir sitat i?ar?sini daxil edin.Uzun bir s?tird? bir ara verm?m?y? m?h?l qoymaAyr?ca s?tirin k?silm?sini g?rm?m?zlikd?n g?lm?k ü?ün bir s?tird?ki sonuncu simvol kimi \ continuation character istifad? edil?r?k uzun bir s?tri (v? ya uzun bir ifad?ni) bir ne?? s?tir üz?rind? b?lm?k olar:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [5]: print('this is a longer string, so we \...: split it over two lines')this is a longer string, so we split it over two linesbu daha uzun bir s?tirdir, buna g?r? onu iki s?tir? b?lürük. ?nterpretator s?tir hiss?l?rini s?tir fasil?si olmadan bir s?tir? y???r. ?vv?lki fraqmentd? t?rsin? k?sr x?tti (\ - backslash) simvolu s?trin i??risind? olmas?na baxmayaraq, escape character funksiyas?n? da??m?r, ?ünki ba?qa bir simvol ondan sonra g?lmir.Bir ifad?nin d?y?rini ?ap etm?kHesablamalar print operatorlar?n?n arqumentl?ri i??risind? edil? bil?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [6]: print('Sum is', 7 + 3)Sum is 102.5 ??-DIRNAQLI S?T?RL?RDaha ?vv?l, bir t?k-d?rnaql? (') v? ya cüt -d?rnaql? (") s?tirl?rd?n ibar?t m?tnl?rin ?ap olunmas?n? t?qdim etdik. ??-d?rnaql? sitatlar ü? ?d?d cüt-d?rnaqla (""") v? ya ü? ?d?d t?k-d?rnaqla (''') ba?lay?r v? bitir. Python Kodlar? ü?ün n?z?rd? tutulan Style Guide for Python Code ü? cüt t?klif t?klif edir. A?a??dak?lar? (""") - d?rnaqlarla yaratmaq ü?ün bunlardan istifad? edin:? ?oxs?tirli s?tirl?ri,? t?rkibind? t?k v? ya ikiqat d?rnaqlar? olan s?tirl?ri,? docstrings, s?n?dl??m?l?r ü?ün: mü?yy?n proqram komponentl?rinin m?qs?dl?rini s?n?dl??dirm?k ü?ün t?vsiy? olunan yollardan ibar?t olan s?n?dl?r.S?tirl?rd?ki sitatlar? daxil etm?kBir t?k-d?rnaqlarla ayr?lm?? bir s?tird?, cüt-d?rnaql? sitatlar? daxil etm?k olar:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: print('Display "hi” in quotes')Display "hi” in quotesancaq t?k-d?rnaql? sitat deyil:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [2]: print('Display 'hi' in quotes')File "<ipythoninput219bf596ccf72>", line 1print('Display 'hi' in quotes')^SyntaxError: invalid syntax\' escape ard?c?ll???n? istifad? etm?s?niz:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: print('Display \'hi\' in quotes')Display 'hi' in quotes [2] fraqmentind? bir t?k-d?rnaql? sitat s?tri i??risind?ki ba?qa bir t?k-d?rnaql? sitat?n yerl??dirilm?sin? g?r? sintaksis s?hvin oldu?unu g?st?rdi. IPython, sintaksis s?hvin? s?b?b olan kod s?tiri haqq?nda m?lumat? g?st?rir v? s?hvin mahiyy?tini ^ simvolu il? g?st?rir. Bundan ?lav? SyntaxError mesaj? g?st?rir ki, SyntaxError: invalid syntax .Cüt-d?rnaqla ayr?lm?? bir s?tird? t?k-d?rnaql? bir sitat i?ar?l?ri ola bil?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [4]: print("Display the name O'Brien")Display the name O'Brienlakin \" escape ard?c?ll???ndan istifad? ets?niz, cüt-d?rnaqla verin:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [5]: print("Display \"hi\” in quotes")Display "hi” in quotes??-i?? d?rnaql? s?tirl?rd?n istifad? etm?m?k ü?ün bu s?tirl?ri ü?-d?rnaql? sitatla ?lav? ed? bil?rsiniz:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [6]: print("""Display "hi” and 'bye' in quotes""")Display "hi” and 'bye' in quotesMultiline StringsA?a??dak? par?a ?oxlu ü?lü sitat i?ar?sini t?yin edir triple_quoted_string:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [7]: triple_quoted_string = """This is a triplequoted...: string that spans two lines"""IPython, Enter düym?sini basmaqdan ?vv?l s?tiri ba?layan """ yazmad???m?z?n f?rqind?dir. Bununla da s?tirin yar?m??q oldu?unu bilir. Bel?likl?, IPython davam etm? skriptini g?st?rir ...: bu zaman ?oxlu s?trin n?vb?ti s?tirini daxil ed? bil?rsiniz. S?tird?ki yaz?n? """ il? bitir?r?k Enter düym?sini bas?n. A?a??dak? triple_quoted_string g?st?rilir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [8]: print(triple_quoted_string)This is a triplequotedstring that spans two linesPython, qura?d?r?lm?? yeni s?tir simvollar? olan ?oxdilli s?tirl?ri saxlay?r. ?apdan daha ?ox ?nc? triple_quoted_string d?yi??ninin qiym?tini m?nims?tdiyimiz zaman, IPython onun fraqmentl?rini [7] düym?sini basd???m?z yerd? \n simvolu il? t?k-d?rnaql? snippet ??klind? g?st?rir. IPython ekranlar?nda g?st?ril?n sitatlar triple_quoted_string-in s?tird?n ibar?t oldu?unu g?st?rir - onlar s?tirin m?zmununun bir hiss?si deyill?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [9]: triple_quoted_stringOut[9]: 'This is a triplequoted\nstring that spans two lines'2.6 ?stifad??id?n Giri? ?ld? edinGiri? funksiyas? (input function) daxilind? sor?u verilir v? istifad??i giri?i ?ld? edilir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: name = input("What's your name? ")What's your name? PaulIn [2]: nameOut[2]: 'Paul'In [3]: print(name)PaulKod fraqmenti a?a??dak? kimi yerin? yetirilir:? Birincisi, input giri? s?tirinin arqumentini g?st?rir - istifad??i yazma?a d?v?t olunur v? istifad??inin cavab verm?si g?zl?nilir. Biz Paul yazaraq Enter düym?sini bas?r?q. ?stifad??inin giri?ini g?rüntül?y?n m?tnl?ri dig?rl?rind?n ay?rd etm?k ü?ün qal?n m?tnd?n istifad? edirik.? Giri? funksiyas? (input function), h?min simvollar? proqram?n istifad? ed? bil?c?yi bir s?tir ( string) olaraq qaytar?r. Burada bu s?tri d?yi??nin veril?n name ad?na m?nims?dirik. [2] fraqmenti name ad?n?n d?yi??n oldu?unu g?st?rir. Ad?n d?y?rinin m?nims?dilm?sind? n?tic?si bir s?tir oldu?una g?r?, onun d?y?rini cüt-d?rnaqla "Paul" olaraq g?st?rir. name d?yi??ninin ?ap edilm?si ü?ün (fraqment [3]), s?tir d?rnaq i?ar?si olmadan g?st?rilir: print(name). ?g?r d?rnaqlar? daxil ets?niz, bunlar s?trin bir hiss?si olacaqd?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [4]: name = input("What's your name? ")What's your name? 'Paul'In [5]: nameOut[5]: "'Paul'"In [6]: print(name)'Paul'input funksiyas? h?mi?? bir s?tri qaytar?r?ki ?d?di oxuma?a v? ?lav? etm?y? ?al??an a?a??dak? fraqmentl?ri n?z?rd?n ke?irin:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [7]: value1 = input('Enter first number: ')Enter first number: 7In [8]: value2 = input('Enter second number: ')Enter second number: 3In [9]: value1 + value2Out[9]: '73'Cavabda 10-u n?z?rd? saxlad???m?za baxmayaraq, y?ni 7 v? 3 ?d?dl?rini toplamaq ?v?zin?, Python '73' s?trini ?ld? ed?r?k '7' v? '3' s?tirl?rinin d?y?rl?rini 'konkatenasiya edir'. Bu s?tirl?rin birl??m?si kimi tan?n?r. Sol operand?n d?y?rini v? sa? operand?n d?y?rini ?zünd? birl??dir?n yeni bir s?tir yarad?r.?stifad??id?n h?r hans? bir ?d?di ?ld? etm?kBir ?d?d laz?md?rsa, qura?d?r?lm?? int funksiyas?ndan (int function) istifad? ed?r?k s?tri tam ?d?d? ?evirin:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [10]: value = input('Enter an integer: ')Enter an integer: 7In [11]: value = int(value)In [12]: valueOut[12]: 7Kod fraqmentl?ri olan [10] v? [11]-i birl??dir? bil?rik:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [13]: another_value = int(input('Enter another integer: '))Enter another integer: 13In [14]: another_valueOut[14]: 13D?yi??nl?rin d?y?ri v? another_value indi tam ?d?dl?ri ehtiva edir. Onlar? toplamaqla tam ?d?dl?rin toplan?lmas? ?m?liyyat? h?yata ke?irilir (onlar? birl??dirm?k ?v?zin?):In [15]: value + another_valueOut[15]: 20int-? ?türül?n s?tir tam ?d?d? ?evril? bilm?zs?, ValueError ?m?l? g?lir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [16]: bad_value = int(input('Enter another integer: '))Enter another integer: helloValueError Traceback (most recent call last)<ipythoninput16cd36e6cf8911> in <module>()> 1 bad_value = int(input('Enter another integer: '))ValueError: invalid literal for int() with base 10: 'hello'int funksiyas? h?m d? onluq k?sr hiss?si olan h?qiqi ?d?di tam ?d?d? ?evir? bil?r:In [17]: int(10.5)Out[17]: 10S?tirl?ri onluq k?srli n?qt?li ?d?dl?r? ?evirm?k ü?ün qura?d?r?lm?? üzm? float funksiyas?ndan istifad? edilir.2.7 Q?RARLARIN Q?BUL ED?LM?S?: IF OPERATORU V? M?QAY?S? OPERATORLARIIF operatorunun arqumenti True v? ya False ??rtl?ri olan Boolean m?ntiqi ifad?sidir. A?a??da 7-nin 4-d?n b?yük olub-olmad???n? v? ya 7-nin 4-d?n az olub-olmad???n? mü?yy?nl??dirir:In [1]: 7 > 4Out[1]: TrueIn [2]: 7 < 4Out[2]: FalseTrue v? False Python-un a?ar s?zl?ridir. Bir a?ar s?zün identifikator kimi istifad? edilm?si sintaksis s?hvin?, SyntaxError n?tic?sin? s?b?b olur. True v? False, h?r biri b?yük h?rf il? yaz?lm??d?r.A?a??dak? c?dv?ld? müqayis? operatorlar?ndan istifad? ed?r?k müxt?lif ??rtl?r? nail olmaq olar:Operatorlar >, <,> = v? <= ham?s? eyni üstünlükl?r? malikdir. Operatorlar == v? != ü?ün h?r ikisi eyni, üstünlüy? malikdir, bu da >, <, > = v? <= s?viyy?l?rind?n daha a?a??d?r. Sintaksis s?hv h?r hans? bir operator ==, !=, >= v? <= simvollar cütü aras?nda bo?luq olduqda meydana g?lir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: 7 > = 4File "<ipythoninput35c6e2897f3b3>", line 17 > = 4^SyntaxError: invalid syntaxOperatorlarda qo?a simvollar? t?rsin? yazsan?z, ba?qa bir sintaksis x?tas? yaran?r. ! =, > = v? <= simvollar?n? (bunlar? =!, => v? = <) t?rsin? yazmaq v? ya qo?a simvollar aras? probel qoymaq ?zü x?tal?d?r.if ??rti operatoru il? q?rar q?bul etm?k: Skriptl?rl? tan?? olmaq?ndi bir ifad?nin (v? ya bir qrup ifad?nin) icra olunub-olunmamas?na q?rar verm?k ü?ün mü?yy?n bir ??rtin istifad? olunmas?n? t?qdim ed?n if ??rti operatorunun sad? bir versiyas?n?n bütün mümkün hallar?n? t?qdim edirik. Burada istifad??id?n iki tam ?d?din daxil edilm?si v? onlar aras?nda mümkün olan 6 n?v müqayis? operatorunun müxt?lif hallarda ard?c?l olaraq istifad? olunmas?n? mü?ahid? ed?c?yik. Bel? ki, verilmi? bir operatordak? ??rt do?rudursa, müvafiq ?ap operatoru yerin? yetirilir, ?ks t?qdird? n?vb?ti add?ma ke?id edilir.IPython interaktiv rejimi q?sa kod fraqmentl?rinin yerin? yetirilm?si v? d?rhal n?tic?l?rin g?z ?nün? g?tirilm?si ü?ün faydal?d?r. Qrup hal?nda icra edilm?si ü?ün bir ne?? operator olduqda, ad?t?n bu nümun?nin skripti ü?ün fig02_01.py kimi .py (Python ü?ün q?sa) uzant?s? olan bir faylda saxlan?lan bir skript kimi yaz?l?r. Bel? skriptl?r? proqram da deyilir. Bu kitabdak? skriptl?rin yerini mü?yy?nl??dirm?k v? yerin? yetirm?k ü?ün t?limatlar F?sil 1-in IPython Test Drive hiss?sin? bax?n.H?r d?f? bu skripti icra ed?rk?n alt? ??rtd?n ü?ü do?ru olur. Bunu g?st?rm?k ü?ün, skripti ü? d?f? yerin? yetiririk - bir d?f? birinci tam ?d?d ikincid?n azd?r, h?r iki tam ?d?d eynidir v? birinci tam ?d?d ikincid?n b?yükdür. Skriptd?n sonra ü? nümun?nin icra olunmas?n? h?r d?f? mü?ahid? edirik. A?a??da g?st?ril?n kimi h?r hans? bir skripti t?qdim etdikd?, proqram kodunun s?ra n?mr?sini ifad? ed?n ?d?dd?n sonra skript kodu g?lir v? kod s?trinin sonunda h?min s?trin izahat?n? ver?n ??rh hiss?si xüsusi q?bul edilmi? qaydalar ??r?iv?sind? t?qdim olunur. Kod s?tirl?rinin ?trafl? izahat?n? verm?k ü?ün s?tirl?rin s?ra n?mr?l?rini s?trin ?vv?lind? g?st?ririk - bunlar Python-un proqram hiss?si deyildir. IDE-l?r s?tir n?mr?l?rini g?st?rm?yi se?m?k imkan? verir. Bu nümun?ni i?l?tm?k ü?ün bu f?slin ch02 nümun?l?r qovlu?unda olark?n a?a??dak? kodu daxil edin:ipython fig02_01.pyv? ya art?q IPython-da olsan?z, sad?c? bu ?mri a?a??dak? qaydada istifad? ed? bil?rsiniz:run fig02_01.pyKod g?rüntüsün? baxmaq ü?ün buraya vurun??rhl?r1-ci s?tir, x?ttin qalan hiss?sinin bir ??rh oldu?unu g?st?r?n ha? teq i?ar?sind?n (#) ba?lay?r:# fig02_01.pyAsan bir aray?? ü?ün, h?r bir skript? skriptin fayl ad?n? g?st?r?n bir ??rh il? ba?lay?r?q. ??rh ayr?ca verilmi? bir s?tird? kodun sa??ndan ba?layaraq bu s?trin sonuna q?d?r davam ed? bil?r.S?n?dl??dirm? s?tirl?riStyle Guide for Python Code, Python kodlar? ü?ün t?limatda deyildiyi kimi, yax?? olar ki, h?r bir skript, onun m?qs?dini izah ed?n bir s?n?dl??m? s?tirl?ri il? ba?lan?lm?? olsun, m?s?l?n 2-ci s?tird? yaz?lan kimi:"""Comparing integers using if statements and comparison operators."""Daha mür?kk?b skriptl?r ü?ün s?n?d bir ne?? s?tri ?hat? edir. Sonrak? f?sill?rd?, yeni funksiyalar v? sinif adlanan yeni n?vl?r kimi mü?yy?nl??dirdiyiniz skript komponentl?rini t?svir etm?k ü?ün s?n?dl?rd?n istifad? edil?c?kdir. IPython help yard?m mexanizmi il? docstrings materiallar?na nec? daxil olma?? da müzakir? ed?c?yik. Bo? s?tirl?r3-cü s?tir bo? bir s?tirdir. Kodun oxunulmas?n? asanla?d?rmaq ü?ün bo? s?tir v? bo?luq i?ar?l?rind?n istifad? edilir. Bo? s?tirl?r, bo?luq simvollar? v? tabulyasiya simvollar? probel (white space) kimi tan?n?r. Python bir ?ox probel? m?h?l qoymur - g?r?rsiniz ki, ad?t?n, 4 probeld?n ibar?t girintil?r bo?luq ?v?zi olaraq qoyulmal?d?r.Uzun m?tnl?rin s?tirl?r boyu b?lünm?si4-5-ci s?tirl?rKod g?rüntüsün? baxmaq ü?ün buraya vurunprint('Enter two integers, and I will tell you','the relationships they satisfy.')M?t?riz? daxilind? istifad??iy? veril?n g?st?ri?l?r t?k d?rnaqlar aras?nda yaz?l?r. Bunlar?n bir s?tird? yerl??dirilm?si n?z?rd? tutulmad??? ü?ün, onlar? iki yer? vergüll? ay?ra bil?rik. Xat?rladaq ki, vergüll? ayr?lm?? siyah?n? büt?vlükd? ?ap etm?k ü?ün bir ne?? d?y?rin birl??dirilm?sini g?st?r? bil?rik. ?ap zaman? h?r bir d?y?ri bo?luq il? dig?rind?n ayr?l?r.Tipik olaraq, bir s?tird? m?tn fraqmentini yaz?rs?n?z. Davam?n? t?rs sla? \ simvolu il? bir ne?? s?tir üzr? ay?ra bil?rsiniz. Python, \ simvolundan istifad? etm?d?n m?t?riz?d? uzun kod s?tirl?rini (4-5-d? oldu?u kimi) b?lm?y? imkan verir. Bu Python kodu ü?ün stil b?l?d?isin?, Style Guide for Python Code uy?un olaraq uzun kod s?tirl?rini bir ne?? hiss?y? ay?rma??n asan yoludur. H?mi?? m?nal? olan ay?r?c? n?qt?l?ri se?in, m?s?l?n ?ap etm?k ü?ün ?vv?lki ?a??r??da vergüld?n sonra v? ya uzun bir ifad?d? bir operatordan ?vv?l.?stifad??inin daxil etdiyi tam ?d?dl?rin düzgün oxunulmas?Sonra, 8 v? 11-ci s?tirl?r istifad??id?n iki tam ?d?din daxil edilm?sini t?l?b edir v? onlar?n düzgün oxunulmas?n? t??kil etm?k ü?ün qura?d?r?lm?? input v? int funksiyalar?ndan istifad? edilir.if ??rti operatoru13-14-cü s?tirl?rd? if ifad?sind?Kod g?rüntüsün? baxmaq ü?ün buraya vurunif number1 == number2:print(number1, 'is equal to', number2)number1 v? number2 d?yi??nl?rinin d?y?rl?rinin b?rab?r olub-olmad???n? mü?yy?n etm?k ü?ün == müqayis? operatorundan istifad? edilir. ?g?r bel?dirs?, ??rt do?rudur v? 14-cü s?tird? d?y?rl?rin b?rab?r oldu?unu g?st?r?n m?tn s?tiri g?st?rilir. ?g?r ifad?l?rin ??rtl?ri do?rudursa (16, 19, 22, 25 v? 28-ci s?tirl?r), müvafiq ?ap m?tninin s?tirl?ri g?st?rilir.H?r bir if ??rti operatoru if a?ar s?zünd?n ibar?tdir, müqayis? operatorlar?n?n k?m?yi il? do?rulu?u yoxlan?lan ??rti v? ?g?r ??rtin do?rulu?u t?sdiqini taparsa, onda icra olunmas? n?z?rd? tutulan ?m?liyyatlar?n girintili ??kild? b?lm? (:) simvolundan sonra ??rti operatorun g?vd?si t?qdim olunur. H?r bir g?vd? bir v? ya daha ?ox ifad?d?n ibar?t ola bil?r. ??rtd?n sonra ba??rsaq b?lm? (:) simvolunu unutmaq ümumi bir sintaksis s?hvidir.Girintili m?tn yaz?l???Python, operatordan sonra yerin? yetiril? bil?si ?m?liyyatlar?n toplum ??kild? girintili m?tn yaz?l???nda t?qdim olunmas?n? t?l?b edir. Style Guide for Python Code, Python kodlar? ü?ün b?l?d?iy? ?sas?n d?rd bo?luqdan ibar?t girintili m?tn yaz?l???n? t?vsiy? edir - biz bu kitabda bu konvensiyadan istifad? edirik.N?vb?ti f?sild? girintili m?tn yaz?l???n?n s?hvl?r? s?b?b ola bil?c?yini g?rürsünüz.?a?d?r?c? == v? =if ??rti operatorunda b?rab?rliyin müqayis?si (==) operatoru ?v?zin? m?nims?tm? simvolundan (=) istifad? etm?k, ümumi bir sintaksis s?hvidir. Bunun qar??s?n? almaq ü?ün == "eynilikl? b?rab?rdir" v? = "t?yin olunmu?dur" kimi oxuyun. N?vb?ti f?sild? if ??rti operatorunda == yerin? = istifad? edilm?si inc? probleml?r? yol a?a bil?c?yini g?rürsünüz.Z?ncirvari müqayis?l?rH?r hans? bir ?d?din veril?n aral?qda olub-olmad???n? yoxlamaq ü?ün müqayis? ed? bil?rsiniz. A?a??dak? müqayis?d? x-in 1 il? 5 aral???nda olub-olmad???n? mü?yy?nl??dirir:In [1]: x = 3In [2]: 1 <= x <= 5Out[2]: TrueIn [3]: x = 10In [4]: 1 <= x <= 5Out[4]: False?ndiy? q?d?r t?qdim etdiyimiz operatorlar?n üstünlüyüBu f?sild? t?qdim olunan operatorlar?n üstünlüyü a?a??da g?st?rilmi?dir:Operatorlar Qrupla?d?rma n?vü() soldan sa?a m?t?riz?** sa?dan sola qüvv?t? yüks?ltm?* soldan sa?a vurma/ // soldan sa?a do?ru b?lgü, tam b?lgü% soldan sa?a qal?q+ - soldan sa?a toplama, ??xma i?ar?si<, <= soldan sa?a az, az v? ya b?rab?rdir>, > = soldan sa?a b?yük, daha b?yük v? ya b?rab?rdir==, != soldan sa?a b?rab?rdir, b?rab?r deyilC?dv?ld? ?vv?lc?d?n üstünlüyü azalan qaydada olan operatorlar yuxar?dan a?a??ya sadalan?r. Bir ne?? operatoru olan ifad?l?r yazark?n, sayt?ndak? operatorlar?n üstünlük c?dv?lin? istinad ed?r?k g?zl?nil?n qaydada qiym?tl?ndirilm?sini t?sdiql?yin.2.8 OBYEKTL?R V? D?NAM?K T?PL?R7 (tam), 4.1 (sürü?k?n vergüllü onluq k?sr) v? 'dog'(s?tir) kimi d?y?rl?r ham?s? obyektl?rdir.H?r bir obyektin tipi v? d?y?ri var:In [1]: type(7)Out[1]: intIn [2]: type(4.1)Out[2]: floatIn [3]: type('dog')Out[3]: str Bir obyektin d?y?ri obyektd? saxlanan veril?nl?rin qiym?tidir. Yuxar?dak? fraqmentl?rd? int (tam ?d?dl?r ü?ün), float (sürü?k?n vergüllü onluq k?srl?r ü?ün) v? str (s?tirl?r ü?ün) tipli obyektl?r g?st?rilir.D?yi??nl?r obyektl?r? istinad edirl?rH?r bir d?yi??n? bir obyektin t?yin olunmas?, h?min d?yi??nin ad?n? obyekt? ba?lay?r. G?rdüyünüz kimi, sonra obyektin d?y?rind?n istifad? ed? bilm?k ü?ün kodunuzdak? d?yi??nd?n bilavasit? istifad? ed? bil?rsiniz:In [4]: x = 7In [5]: x + 10Out[5]: 17In [6]: xOut[6]: 7Kod fraqmentinin In [4]: x = 7 hiss?sind? x d?yi??ni t?yin olunduqdan sonra, 7-ni ehtiva ed?n tam obyekt? istinad edir. x-in üz?rin? 7 ?lav? etdikd?n sonra n?tic? 17-y? b?rab?r olsa da bel?, x-in qiym?ti 7-y? b?rab?r olaraq qal?r. x-in qiym?tini a?a??dak? kimi d?yi?? bil?rsiniz:In [7]: x = x + 10In [8]: xOut[8]: 17Dinamik tipl?rPython dinamik tipl?rd?n istifad? edir - kodunuzu icra ed?rk?n d?yi??nin istinad etdiyi obyektin tipini t?yin edir. Bunu x d?yi??ninin f?rqli obyektl?r? ba?lan?lmas? il? tipl?rinin t?yin olunmas?n? g?st?r? bil?rik:In [9]: type(x)Out[9]: intIn [10]: x = 4.1In [11]: type(x)Out[11]: floatIn [12]: x = 'dog'In [13]: type(x)Out[13]: strZir-zibilin y????d?r?lmas?Python yadda?da müxt?lif tip obyektl?ri yarad?r v? laz?m olduqda onlar? yadda?dan silir. [10] kod fraqmentind?n sonra In [10]: x = 4.1 x d?yi??ni float tipli bir obyekt? aiddir. Fraqment [7] -d? olan tam tipli obyekt art?q x d?yi??nin? ba?lanm?r. Sonrak? bir f?sild? müzakir? ed?c?yimiz kimi Python avtomatik olaraq bu cür istinad olunmayan obyektl?ri yadda?dan silir. Zir-zibilin y????d?r?lmas? (Garbage Collection) adlanan bu proses, yaratd???n?z yeni obyektl?r ü?ün yadda??n t?min olunmas?n? ?m?l? g?tirir.2.9 VER?L?NL?R ELM?N? (DATA SCIENCE) G?R??: ?SAS T?SV?R? STAT?ST?KAVeril?nl?r elmind?, veril?nl?ri t?svir etm?k v? ümumil??dirm?k ü?ün tez-tez statistikadan istifad? ed?c?ksiniz. Burada bir ne?? bel? t?sviri statistikan? t?qdim etm?kl? ba?lay?r?q:Minimum, minimum - d?y?rl?r toplusundak? ?n ki?ik d?y?r.Maksimum, maximum - d?y?rl?r toplusundak? ?n b?yük d?y?r.Diapazon, range - minimumdan maksimuma q?d?r olan d?y?rl?r aral???Say?, count - bir topludak? d?y?rl?rin say?.C?mi, sum - d?y?rl?rin c?mi.N?vb?ti f?sild? Say?, count v? C?mi, sum anlay??lar?n? mü?yy?nl??dirm?y? baxaca??q. Paylanma aral??? kimi, Measures of dispersion - ?l?ül?ri (d?yi?k?nlik ?l?üsü, measures of variability d? deyilir), paylanm?? d?y?rl?rin nec? yay?ld???n? mü?yy?nl??dirm?y? k?m?k edir. Sonrak? f?sill?rd? t?qdim ed?c?yimiz dig?r paylanma ?l?ül?rin? uy?unsuzluq - variance v? standart sapma - standard deviation daxildir.?? d?y?rin minimumunu t?yin etm?k?vv?lc? ü? d?y?rin minimumunu ?l il? nec? mü?yy?nl??dir?c?yimizi g?st?r?k. A?a??dak? skript ü? d?y?r t?klif edir v? h?r ü?ü daxil edilir, minimum d?y?ri t?yin etm?k ü?ün if operatoundan istifad? edilir, sonra n?tic?d? minimum d?y?r g?st?rilir.Kod g?rüntüsün? baxmaq ü?ün buraya vurunH?r ü? d?y?ri daxil etdikd?n sonra, h?r d?f? bir d?y?rin veril?n ??rt? uy?un olub-olmad???n? mü?yy?n edirik:Birincisi, number1 ?d?dinin ?n ki?ik d?y?ri ehtiva etdiyini ehtimal edirik, buna g?r? 8-ci s?tird? onu minimum d?yi??nin? m?nims?dirik. ?lb?tt? ki, number2 v? ya number3 ?d?dinin faktiki ?n ki?ik d?y?ri ehtiva etm?si mümkündür, buna g?r? bunlar?n h?r birini minimum il? müqayis? etm?liyik.Birinci if operatorundan (10-11-ci s?tirl?r) sonra number2 < minimum yoxlan?l?r v? bu ??rt do?rudursa minimum olaraq number2 ?d?di g?türülür.?kinci if operatorundan (13-14 s?tirl?r) sonra number3 < minimum yoxlan?l?r v? bu ??rt do?rudursa minimum olaraq number3 ?d?di g?türülür.Dig?r hallarda is?, minimum d?yi??ni ?n ki?ik d?y?ri ehtiva edir, buna g?r? d? onu cavab olaraq g?st?ririk. ?stifad??inin veril?nl?ri hans? ard?c?ll?qla daxil etm?sind?n as?l? olmayaraq - birinci, ikinci v? ya ü?üncü yerd? daxil etm?kl? b?rab?r h?mi?? ?n ki?ik d?y?rin eyni tap?ld???n? g?st?rm?k ü?ün skripti ü? d?f? icra edirik.Python ümumi v?zif?l?ri yerin? yetirm?k ü?ün bir ?ox funksiyaya malikdir. Daxili funksiyalarla minimum v? maksimumun minimum v? maksimum mü?yy?nl??dirilm?siMin v? max funksiyalar?nda qurulan d?y?rl?r toplusunun minimumunu v? maksimumunu hesablay?r:In [1]: min(36, 27, 12)Out[1]: 12In [2]: max(36, 27, 12)Out[2]: 36min v? max funksiyalar? ist?nil?n sayda arqumentl?ri ala bil?r.D?y?rl?r toplusunun diapazonunu mü?yy?nl??dirm?kQiym?tl?r diapazonu dedikd?, minimum d?y?rl? maksimum d?y?r aral???ndak? qiym?tl?r ?oxlu?u ba?a dü?ülür. Bu v?ziyy?td?, diapazon 12 il? 36 aras?ndad?r. Veril?nl?r elmi onun ?hat? etdiyi veril?nl?ri ?yr?nm?y? h?sr olunur. T?svir statistikas? bunun vacib hiss?sidir, eyni zamanda statistikan? nec? ??rh ed?c?yinizi d? ba?a dü?m?lisiniz. M?s?l?n, 12 il? 36 aral???nda 100 n?mr? varsa, h?min n?mr?l?r g?st?ril?n aral?qda b?rab?r paylan?la bil?r. ?ks halda, ekstremal v?ziyy?tl?rd? 12-y? b?rab?r 99 qiym?t v? ?lav? olaraq 36-n?, ya da 36-ya b?rab?r 99 qiym?t v? ?lav? olaraq 12 kimi d?y?rl?ri il? üst-üst? dü?? bil?rsiniz.Funksional proqramla?d?rma t?rzi: Azald?lmas?Bu kitab boyunca müxt?lif funksional proqramla?d?rma t?rzinin imkanlar?n? t?qdim edirik. Bunlar daha q?sa, daha ayd?n ola bil?n v? diskussiyas?n? asanla?d?ran, y?ni s?hvl?ri tapmaq v? düz?ltm?k bax?m?ndan daha rahat kod yazma?a imkan verir. min v? max funksiyalar? azalma adlanan bir funksional proqramla?d?rma t?rzin? malik konsepsiyas?n?n nümun?l?ridir. D?y?rl?r toplusunu sonda t?k bir d?y?r? endirirl?r. G?rdüyünüz dig?r azalmalara d?y?rl?r toplusunun c?mi, orta qiym?ti, paylanmas? v? standart sapmas? daxildir. Xüsusi t?klifl?rin nec? t?yin edil?c?yini d? g?r?c?ksiniz.Veril?nl?r Elminin b?lm?l?rin? (Data Science Sections) giri?N?vb?ti iki f?sild? ortalama, median, moda v? paylanma ?l?ül?ri, o cüml?d?n d?yi?k?nlik v? standart sapma da daxil olmaqla ?sas meyl statistikas? il? müzakir?l?rimizi davam etdir?c?yik.2.10 WRAP-UPBu f?sild? hesabi müzakir?l?rimizi davam etdirdik. Daha sonra istifad? ü?ün d?y?rl?ri saxlamaq ü?ün d?yi??nl?rd?n istifad? etdiniz. Python'un hesabi operatorlar?n? t?qdim etdik v? g?st?rdik ki, bütün operatorlar? standart q?bul edilmi? düzgün formada yazmal?s?n?z. N?tic?l?ri ekranda g?rüntül?m?k ü?ün qura?d?r?lm?? ?ap funksiyas?ndan (function print) istifad? etdiniz. T?k, ikiqat v? ü?lü sitatlar yaratd?q. ?ox s?tirli sitat yaratmaq v? sitatlara t?k v? ya cüt d?rnaq qoymaq ü?ün ü?lü sitatlardan istifad? etdiniz.Giri? funksiyas?n?n (input function) k?m?yi il? istifad??i veril?nl?rinin klaviaturadan daxil edilm?sini istifad? etdiniz. Bu funksiyan?n k?m?yi il? daxil edil?n veril?nl?r String type oldu?undan h?min s?tirl?ri r?q?msal d?y?rl?r? ?evirm?k ü?ün int() v? float() funksiyalar?ndan istifad? etdik.Pythonun müqayis? operatorlar?n? t?qdim etdik. Sonra, istifad??id?n iki ?d?din daxil etm?sini t?l?b ed?r?k v? bir s?ra if operatorlar?n? istifad? ed?r?k d?y?rl?rini müqayis? ed?n bir skriptd? istifad? etdiniz.Python'un dinamik yaz?l?m?n? müzakir? etdik v? obyekt tipini g?st?rm?k ü?ün qura?d?r?lm?? funksiya tipind?n istifad? etdik. N?hay?t, ?sas t?sviri statistikan?n minimum v? maksimumunu t?qdim etdik v? bunlardan d?y?rl?r toplusunun aral???n? hesablamaq ü?ün istifad? etdik. N?vb?ti f?sild? Pythonun idar?etm? operatorlar?n? t?qdim edirik.Azerbaijan Lectures_033. ?dar?etm? operatorlar?M?qs?dl?rBu f?sild?:if, if else v? if elif else ??rti operatorlar?n?n konstruksiyalar?.D?f?l?rl? v? t?krar ??kild? eyni ?m?liyyatlar?n icra edilm?si ü?ün while v? for d?vr operatorlar?ndan istifad? olunur.??rti ifad?l?rin q?sa yaz?l???n?n hesab?na m?vcud imkanlar?n t?min edilm?si.for d?vr operatorunun k?m?yi il? diapazon funksiyas? (range function) ü?ün ?m?liyyatlar?n t?krarlanmas? hesab?na idar?etm?nin t??kil edilm?si.while d?vr operatorunun k?m?yi il? iterasiyalar?n mü?yy?n müdd?t ?rzind? yerin? yetirilm?si.Boolean m?ntiqi operatorlar?nda and, or v? ya not a?ar s?zl?rind?n istifad? etm?kl? mür?kk?b v?ziyy?tl?rin aradan qald?r?lmas?.Fasil? - break il? d?vr operatorunun f?aliyy?tinin bil?r?kd?n dayand?r?lmas?.N?vb?ti - continue il? h?r hans? d?vrün ??rtd?n as?l? olaraq cari iterasiyas?n?n bilavasit? yerin? yetirilm?si ba?a ?atd?r?lmadan n?vb?ti d?vr? adlad?lmas? il? m?cbur ??kild? iterasiyaya davam edilm?si.Daha q?sa, daha ayd?n, asan testl??diril?n, n?zar?td? saxlan?laraq izl?nil?n v? paralell??dirilm? bax?m?ndan daha asan olan kodlar? yazmaq ü?ün funksional proqramla?d?rma t?rzinin mühüm xüsusiyy?tl?rind?n istifad? edin.3.1 G?R??Bu f?sild? Python’un idar?etm? operatorlar?n? —if, if else, if elif else, while, for, break v? continue t?qdim edirik. Ard?c?ll ??kild? iterasiyalar?n idar? olunmas?n? for d?vr operatoru il? yerin? yetirm?k ü?ün istifad? ed?c?ksiniz - bir s?ra ?m?liyyatlar?n t?krarlanma say?n?n iterasiyalar?n say? il? t?yin olundu?unu g?r?c?ksiniz. Tam ?d?dl?r diapazonunu yaratmaq ü?ün qura?d?r?lm?? function range — diapazon funksiyas?ndan istifad? ed?c?ksiniz.Sentinel t?r?find?n idar? olunan iterasiya müdd?tini ifad? ed?rk?n while operatorunun i? prinsipl?rini g?st?r?c?yik. Vergüld?n sonra iki onluq i?ar?si olan d?qiq pul hesablamalar? ü?ün Python Standard Kitabxanas?n?n Python Standard Library’s Decimal type tipind?n istifad? ed?c?ksiniz. Müxt?lif veril?nl?rin format s?tirl?rind? d?qiq yerl??dirilm?sind?n ?trü f strings-d? (y?ni format s?tirl?rind?) istifad? ed?r?k m?lumatlar? formatla?d?raca??q. Boolean m?ntiqi operatorlar?n? da g?st?r?c?yik (Boolean operators and, or and not). Intro to Data Science b?lm?sind? measures of central tendency—mean, median and mode—Python Standard Kitabxanas?n?n statistika modulundan istifad? ed?r?k m?rk?zi meyl ?l?m?l?rini - ortalama, median v? moda – anlay??lar?n? n?z?rd?n ke?ir?c?yik.3.2 ?DAR?ETM? OPERATORLARIPython ya True v? ya False kimi m?ntiqi qiym?tl?ndiril?n bir ??rt ?sas?nda kodu icra ed?n ü? se?im operatorunu t?qdim edir:? if operatoru bir ??rt True olduqda ona uy?un kodu icra edir v? ya ??rt yanl??d?rsa, y?ni False olduqda n?vb?ti uy?un g?l?n kodu icra edir.? ?g?r if... else statement operatoru ü?ün bir ??rt True olduqda ona uy?un kodu icra edir v? ya ??rt yanl??d?rsa, y?ni False olduqda dig?r kod icra olunur.? ?g?r if... elif... else statement operatoru ü?ün bir ?ox f?rqli h?r?k?tl?rd?n birini ??rtin True v? ya False olmas?ndan as?l? olaraq yerin? yetirir.H?r yerd? t?k bir ?m?liyyat v? ya ?m?liyyatlar qrupu yerl??diril? bil?r. Python iki n?v iterasiya operatoru il? i?l?yir - iteration statements—while v? for: ? Bu while statement operatoru “n? q?d?r ki” kimi ba?a dü?ül?r?k qoyulan ??rtin True olmas?ndan as?l? olaraq t?k bir ?m?liyyat? v? ya ?m?liyyatlar qrupunu t?krar-t?krar icra edir.? Bu for statement operatoru “ü?ün” kimi ba?a dü?ül?r?k t?k bir ?m?liyyat? v? ya ?m?liyyatlar qrupunu ard?c?ll?qla mü?yy?n olunmu? s?rh?dl?r ??r?iv?sind?, mü?yy?n sayda t?krar icra edir.A?ar s?zl?rif, elif, else, while, for, True v? False s?zl?ri Python dilinin a?ar s?zl?ridir. Bunlar? d?yi??n ad? kimi, identifikator kimi istifad? etm?k sintaksis s?hvidir. A?a??dak? c?dv?ld? Pythonun a?ar s?zl?ri verilmi?dir.3.3 IF OPERATORUif statement operatorunu Python proqramla?d?rma dilind? yerin? yetir?k:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: grade = 85In [2]: if grade >= 60:...: print('Passed')...:Passed??rtd?n g?ründüyü kimi, ?g?r if grade >= 60 m?ntiqi ifad?si True qiym?tini alarsa, onda Passed yaz?s? ?ap olunacaqd?r.Girintili blokM?cburi qaydada girintili blokla yaz? t?rzi Python proqramla?d?rma dilind? t?l?b olunur, ?ks halda bir IndentationError sintaksis x?tas? ba? verir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: if grade >= 60:...: print('Passed') # statement is not indented properlyFile "<ipythoninput3f42783904220>", line 2print('Passed') # statement is not indented properlyIndentationError: expected an indented blockGirintili blok i?ind? bird?n ?ox operator varsa v? bu ifad?l?rd? eyni girintiy? sahib deyilsinizs?, giri? x?tas? da ba? verir:Kod g?rüntüsün? baxmaq ü?ün buraya vurun[In [4]: if grade >= 60:...: print('Passed') # indented 4 spaces...: print('Good job!) # incorrectly indented only two spacesFile <ipythoninput48c0d75c127bf>, line 3print('Good job!) # incorrectly indented only two spacesIndentationError: unindent does not match any outer indentation levelB?z?n s?hv mesajlar? ay?rd etm?k olmur. Pythonun s?tirl?rd? diqq?ti c?lb etm?si fikri, ümumiyy?tl?, s?hv yerin? yetiril? bil?r. Ona g?r? girintili blok yaz?lar? ü?ün t?l?b olunan bo?luqlar? eyni t?rzd? t?tbiq etm?k laz?m g?lir. H?r ?fad? ya True, ya da False olaraq interpretasiya edil? bil?rH?r hans? bir ifad?y? ?saslanaraq q?rar ver? bil?rsiniz. S?f?r olmayan bir d?y?r Do?rudur (True). S?f?r Yanl??d?r (False):Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [5]: if 1:...: print('Nonzero values are true, so this will print')...:Nonzero values are true, so this will printIn [6]: if 0:...: print('Zero is false, so this will not print')In [7]:Simvol olan s?tirl?r Do?ru (True) v? bo? s?tirl?r is? ('', "" v? ya """""") Yanl??d?r (False).?a?d?r?c? == v? =Bir müqayis? operatoru i?l?dil?n m?ntiqi ifad?d? == ?v?zin? = operatorundan istifad? edilm?si probleml?r? yol a?a bil?r. M?s?l?n, bu seansda, [1] kod fraqmentind? t?yin edilmi? grade ü?ün m?nims?tm? operatoru i?l?dilir:grade = 85Bunun ?v?zin? t?sadüf?n a?a??dak? kimi yazsaq:grade == 85onda grade d?yi??ni mü?yy?n olunmayacaq v? biz NameError ?ld? ed?rdik. ?g?r bu ikinci ifad?d?n qabaq birinci ifad? i?l?nils? bel?, sonda grade == 85 m?ntiqi ifad?sinin n?tic?si sad?c? True v? ya False qiym?tl?ndiril?c?k, ?a?d?r?c?l?q yaranacaq v? tap??r?q n?z?rd? tutulan kimi yerin? yetirilm?zdi. Bu m?ntiqi s?hvdir.3.4 IF ELSE V? IF ELIF ELSE OPERATORLARIif else konstruksiyal? ??rti operatorlar?n?n True v? ya False oldu?una ?saslanaraq kod fraqmentl?ri f?rqli icra edilir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: grade = 85In [2]: if grade >= 60:...: print('Passed')...: else:...: print('Failed')...:PassedYuxar?dak? qoyulan ??rt Do?rudur, buna g?r? d? if operatoru 'Passed' g?st?rilir. print('Passed') yazd?qdan sonra Enter düym?sini basd?qda ('Passed'), IPython n?vb?ti s?tird? d?rd bo?lu?u aradan qald?r?r. Bu d?rd bo?lu?u silm?lis?n ki, else: operatoru IPython daxilind? kursorun yeri düzgün uy?unla?s?n.A?a??dak? kod d?yi??n? 57 ?d?dini m?nims?dir, sonra ??rtd?n as?l? olaraq ya 'Passed', ya da ki, 'Failed' ifad?sini g?st?rir.Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: grade = 57In [4]: if grade >= 60:...: print('Passed')...: else:...: print('Failed')...:Failed?ndiki interaktiv sessiyan?n fraqmentl?ri vasit?sil? geri v? ir?li h?r?k?t etm?k ü?ün yuxar? v? a?a?? ox düym?l?rind?n istifad? edin. Enter düym?sini basaraq g?st?ril?n par?an? yenid?n yerin? yetirir. grade d?yi??ninin qiym?tini 99-a qoyaq, [4] kodunun fraqmentini geri ?a??rmaq ü?ün yuxar? kursor düym?sini iki d?f? vuraq, sonra kodun fraqmentinin [6]-dan yerin? yetirilm?si ü?ün Enter düym?sini bas?n. ?cra etdiyiniz h?r xat?rlad?lm?? fraqment yeni bir n?tic?nin al?nmas?na xidm?t edir: Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [5]: grade = 99In [6]: if grade >= 60:...: print('Passed')...: else:...: print('Failed')...:Passed??rti ifad?l?rB?z?n ba?qa bir ifad?d? olan bloklar üzr? mü?yy?n bir ??rtl? d?yi??n? f?rqli d?y?rl?r t?yin edirl?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [7]: grade = 87In [8]: if grade >= 60:...: result = 'Passed'...: else:...: result = 'Failed'...:Bundan sonra o d?yi??nin d?y?rini ?ap ed? v? ya qiym?tl?ndir? bil?rik:In [9]: resultOut[9]: 'Passed'Q?sa ??rti bir ifad? istifad? ed?r?k [8] kimi kod fraqmentl?rini y??cam yaza bil?rsiniz:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [10]: result = ('Passed' if grade >= 60 else 'Failed')In [11]: resultOut[11]: 'Passed'M?t?riz?l?r t?l?b olunmur, lakin n?tic?y? ??rti ifad?nin d?y?rinin t?yin edildiyini a??q ??kild? bildirilir. Birincisi, Python ??rtin m?ntiqi n?tic?sini qiym?tl?ndirir>= 60:?g?r ??rt True do?rudursa, [10] ifad?sinin qiym?ti soldak? d?y?ri 'Passed', ??rt False yanl??d?rsa, sa?dak? d?y?ri 'Failed' m?nims?tm?kl? n?tic?l?nir. ?nteraktiv rejimd? ??rti ifad?ni birba?a olaraq qiym?tl?ndir? bil?rsiniz:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [12]: 'Passed' if grade >= 60 else 'Failed'Out[12]: 'Passed'Blokda bird?n ?ox operatorlarA?a??dak? kod bir if ba?qa ... ba?qa bir ifad?d? iki ifad?ni g?st?rir:Kod g?rüntüsün? baxmaq ü?ün buraya vurun[13] -d?: d?r?c?li = 49[14] -d?: ?g?r sinif> = 60:...: ?ap ('Ke?di')...: ba?qa:...: ?ap ('U?ursuz')...: print ('Yenid?n bu kursu almal?s?n?z')...:U?ursuzYenid?n bu kursu almal?sanBu v?ziyy?td?, qiym?t 60-dan azd?r, buna g?r? d? dig?r paketd?ki h?r iki ifad?ni yerin? yetirir.?kinci ?ap? ??xartmasan?z, o zaman dig?r paketd? deyil. Bel?likl?, bu ifad? h?mi?? yerin? yetirilir, b?lk? d? q?rib? yanl?? n?tic? yarad?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurun[15] -d?: d?r?c?li = 100[16] -d?: ?g?r sinif> = 60:...: ?ap ('Ke?di')...: ba?qa:...: ?ap ('U?ursuz')...: print ('Yenid?n bu kursu almal?s?n?z')...:Ke?diYenid?n bu kursu almal?sanif... elif... else Operatorlar?if... elif... else operatorlar?n? birg? istifad? ed?r?k müxt?lif hallarda test ed? bil?rsiniz. A?a??dak? kod qiym?t c?dv?lind? t?l?b?l?rin qiym?tl?ndirilm?sinin alqoritmi kodla?d?r?lm??d?r. Bel? ki, yekun bal? 90-dan yuxar? v? ya ona b?rab?r olanlar ü?ün "A", 80–89 aral???nda "B", 70–79 aral???nda "C", 60-69 aral???nda "D" v? yerd? qalan dig?r hallarda is? "F" ü?ün g?st?rilir. Yaln?z ilk Do?ru (first True) ??rt ü?ün ?m?liyyat yerin? yetirilir. [18]-ci fraqment cavab?n C oldu?unu g?st?rir, ?ünki, grade d?yi??ninin qiym?ti 77-y? b?rab?rdir:In [17]: grade = 77In [18]: if grade >= 90:...: print('A')...: elif grade >= 80:...: print('B')...: elif grade >= 70:...: print('C')...: elif grade >= 60:...: print('D')...: else:...: print('F')...:Birinci ??rt ü?ün - grade >= 90 - False, buna g?r? ('A') ?ap oluna bilm?z. Eyni qaydada, ikinci ??rt - grade >= 80 - d? False, buna g?r? ('B') d? ?ap oluna bilm?z. ??üncü ??rt - grade >= 70 - True, buna g?r? ('C') ?ap olunar. Sonra if... elif... else operatorunun yerd? qalan dig?r kod bloklar? he? bir n?tic? verm?d?n yoxlamadan ke??r. Prinsipc?, if... elif... else ba?qa ayr?ca yaz?lan if operatorlar?na nisb?t?n bir q?d?r sür?tli olur, ?ünki ??rt do?rulduqca, testl??dirm? d? dayan?r.else operatorunun m?cburi i?l?dilm?m?si if... elif... else ??rti operatorlar?n konstruksiyas?nda sonuncunun i?l?dilm?m?si hal? mümkündür. Bel? ki, bu hal ??rtl?rin he? birini t?min etm?y?n d?y?rl?ri idar? etm?y? imkan verir. else ??rti operatoru konstruksiyan?n sonunda i?l?nil? bil?r. Dig?r hallarda SyntaxError meydana g?lir.M?ntiqi s?hvl?rIn [16]: grade = 100In [17]: if grade >= 60: ...: print('Passed') ...: else: ...: print('Failed') ...: print('You must take this course again') ...: PassedYou must take this course againIn [18]:[16]-c? fraqmentd? s?hv daxil edilmi? kodun ucbat?ndan, h?r iki halda You must take this course again mesaj? verilir. M?ntiqi c?h?td?n bu yana?ma s?hv hesab olunur. Baxmayaraq ki, kod icra edilir, lakin s?hv n?tic?l?r verir. H?r hans? bir skriptd? fatal bir m?ntiqi s?hv ü?ün istisna olur (m?s?l?n, 0 ?d?din? b?lm?k c?hdi ZeroDivisionError), buna g?r? Python mü?yy?n bir iz buraxma?? g?st?rir, lakin sonra skriptin icras?n? dayand?r?r. ?nteraktiv rejimd? fatal bir s?hv yaln?z cari fraqmenti dayand?r?r - sonra IPython n?vb?ti daxiletm?ni g?zl?yir.3.5 “N? Q?D?R KI” D?VR OPERATORUwhile statement ifad?si h?r hans? bir ??rtin do?ru oldu?u müdd?td? bir v? ya bir ne?? ?m?liyyat?n t?krarlanmas?na imkan verir. 50-d?n b?yük olana kimi 3-ün qüvv?tl?rinin ?n b?yük qiym?tini ard?c?l olaraq hesablayan proqram kodlar?na n?z?r yetir?k:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: product = 3In [2]: while product <= 50:...: product = product * 3...:In [3]: productOut[3]: 81 [3] fraqmentd? qüvv?t? yüks?ltm?nin son d?y?rinin hesablanmas? ?mri yerl??ir. Halbuki operatorun t?rkibind? davaml? ??kild? h?r hans? bir d?yi??nin qiym?ti t?dric?n d?yi?dirilm?lidir, buna g?r? d? son n?tic? yoxlan?lan ??rt False olur. ?ks t?qdird?, sonsuz bir d?vr meydana g?l? bil?rdi. H?r hans? bir Terminalda, Anaconda Command Prompt v? ya Shell ?rtük proqramlar?nda sonsuz icra icra olunan d?vrl?ri saxlamaq ü?ün Ctrl + c v? ya control + c birg? klavi?l?ri bas?lmal?d?r. IDE-l?rd? bir proqram?n icras?n? dayand?rmaq ü?ün ümumiyy?tl?, bir al?t paneli düym?sind?n v? ya menyu se?imi imkanlar?ndan istifad? etm?k olar.3.6 FOR D?VR OPERATORUFor d?vr operatoru h?r bir element ü?ün bir ?m?liyyat? v? ya bir ne?? ?m?liyyat? blok ??klind? elementar ard?c?ll?qla t?krarlama?a imkan verir. M?s?l?n, h?r hans? bir s?tir simvollar?n ard?c?ll???ndan ibar?tdir. Bir s?zd?n ibar?t 'Programming' daxil edilmi? String tipli s?tirin simvollar? aras?nda ?lav? bo?luqla ayr?lm?? P r o g r a m m i n g yaz?s?n? g?st?r?k:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: for character in 'Programming':...: print(character, end=' ')...:P r o g r a m m i n gBu operator a?a??dak? kimi yerin? yetirilir:For d?vr operatorunu daxil etdikd?n sonra 'Programming'd?ki 'P' simvolunu character d?yi??nin? m?nims?dir v? end=' ' oldu?undan ona aid olan bo?luqlar? daxil edilmi? simvolun sonuna ?lav? edir. Sonra is? verilmi? s?zd?ki simvollar?n say? q?d?r d?vr operatoru yerin? yetiril?c?kdir. Y?ni, blokdak? print operatoru yerin? yetirilir, h?r simvolun ard?nca iki bo?luq qoyularaq g?st?rilir. Proses sonuncu 'g' simvolu g?st?ril?n?d?k davam etdirilir - bu bar?d? daha sonra ?trafl? dan???lacaqd?r.Blokdak? ?m?liyyatlar ba?a ?atd?qdan sonra Python, ard?c?ll?qla n?vb?ti elementi ?ap etm?yi ?hd?sin? g?türür. Blokda h?d?f d?yi??nini istifad? etm?k, d?y?rini g?st?rm?k ü?ün burada etdiyimiz kimi, ümumi ??kild? yana?ma he? d? t?l?b olunmur.print funksiyas?n?n end a?ar s?zlü arqumenti: print(character, end=' ')print ?ap funksiyas? ?z arqumentl?rini (s?n?dl?rini) ekranda g?st?rir, sonra kursoru n?vb?ti s?tir? ke?irir. Bu davran?? t?rzini end arqumentinin k?m?yi il? d?yi?? bil?rsiniz:print(character, end=' ')simvolun d?y?rini iki bo?luq il? izl?y?n. Bel?likl?, bütün simvollar? eyni t?rzd?, h?r birisind?n sonra iki bo?lu?un qoyulmas? ??rti il? ?ap el?m?k ü?ün a?a??da qeyd olunan proqram fraqmentind?n istifad? olunur: print(character, end=' ')Python print funksiyas?nda a?ar s?zl?rind?n ibar?t olan arqumentl?rd?n istifad? ed?r?k, ?ap funksiyas?n?n imkanlar?n? daha da geni?l?ndirir. Lakin end a?ar s?zünün i?l?dilm?si Python ü?ün m?cburi deyildir. A?ar s?z arqumentl?rin? b?z?n adland?r?lan arqumentl?r deyilir. H?r hans? a?ar s?zü ?ap etm?k laz?m g?l?rs?, ('\ n') t?rs sl??d?n istifad? olunur. Python Kodlar?n?n standart ??kild? yaz?lmas? ü?ün yeri g?ldikc? Style Guide for Python Code t?vsiy? edilir.print funksiyas?n?n sep a?ar s?zlü arqumenti: print(10, 20, 30, sep=', ')Ekran? ?ap ed?n m?hsullar aras?nda g?rün?n s?tri t?yin etm?k ü?ün a?ar s?z arqumenti sep (separator ü?ün q?sa yaz?l??) istifad? ed? bil?rsiniz. Bu arqumenti g?st?rm?diyiniz zaman ?ap standart olaraq veril?nl?r aras?nda bo?luq simvolunu istifad? edir. H?r bir veril?nin ard?nca bo?luq deyil, vergül v? ya dig?r ay?r?c? il? g?st?ril? bil?n ü? ?d?din yaz?l???ndan ibar?t nümun?ni g?st?r?k:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [2]: print(10, 20, 30, sep=', ')10, 20, 30Standart bo?luqlar? silm?k ü?ün sep = '' (y?ni bo? bir s?tri) istifad? edin. 3.6.1 ?terasiya olunanlar (Iterables), Siyah?lar v? ?teratorlar (Iterators)for operatorundan sa? t?r?fd? yerl???n ard?c?ll??? iterable olmal?d?r, y?ni he? bir element qalmayana q?d?r for operatorunun h?r d?f? mü?yy?n qanunauy?unluqla bir element g?tür? bil?c?k bir obyekt olmal?d?r. Ba?qa s?zl? des?k, h?min elementl?r iterasiya oluna bil?n olmal?d?rlar. Python, s?tirl?rd?n ba?qa dig?r iterable ard?c?ll?q n?vl?rin? malikdir. ?n ?ox yay?lanlardan biri siyah?d?r. Hans? ki, kvadrat m?t?riz?d? ([v?]) ?lav? edilmi? vergüll? ayr?lm?? elementl?rin toplusu kimi qeyd oluna bil?r. A?a??dak? kod bir siyah?dak? be? tam ?d?di ehtiva edir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: total = 0In [4]: for number in [2, -3, 0, 17, 9]:...: total = total + number...:In [5]: totalOut[5]: 25H?r bir ard?c?l????n bir iteratoru vard?r. for operatoru ü?ün, ard?c?l bir elementin i?l?nm?si ü?ün ba?qa bir ?ey olmad?qda "p?rd? arxas?nda" iteratordan istifad? olunur. Iterator ?lf?cin kimidir - h?mi?? ard?c?ll?qda harada oldu?unu bilir, buna g?r? ?a??r?ld?qda n?vb?ti elementi geri qaytara bil?r. Siyah?lar? "Ard?c?ll?qlar: Siyahlar v? D?stl?r" f?slind? ?trafl? ??kild? ?yr?n?c?yik. Orada, siyah?dak? elementl?rin yerl??m? qaydas?n?n ?h?miyy?tini v? bir siyah? elementl?rinin d?yi?diril? bil?c?yini, mutable (y?ni d?yi?diril? bil?n) oldu?u g?rün?c?kdir.3.6.2 Qura?d?r?lm?? diapazon funksiyas?0 v? 9 aras?ndak?, y?ni 0-dan 10-a kimi yerl???n tam ?d?dl?ri g?st?r?r?k, for statement operatoru ü?ün v? range function qura?d?r?lm?? diapazon funksiyas?n? d?qiq 10 d?f? t?krarlamaqla istifad? ed?k: Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [6]: for counter in range(10):...: print(counter, end=' ')...:0 1 2 3 4 5 6 7 8 9 range(10), arqumentl?ri 0-dan ba?layaraq 10-a kimi tam ?d?dl?rin ard?c?ll???n? ?ks etdir?n bir obyekt yarad?r - bu v?ziyy?td? elementl?rin say? 10 olmaqla b?rab?r ?zl?ri 0, 1, 2, 3, 4 , 5, 6, 7, 8, 9 tam ?d?dl?rind?n ibar?t siyah?n? t??kil edir. Aral??a m?xsus son tam i?l?nib istifad? edildikd?n sonra iterasiya olunma ?m?liyyat? bitmi? hesab olunur. ?teratorlar v? iterable obyektl?r Python-un funksional t?rzind? proqramla?d?rma xüsusiyy?tl?rind?n biridir. Bunlardan daha bir ne??sini kitab boyunca t?qdim ed?c?yik.T?k-t?k s?hvl?rBir aral???n arqument d?y?rinin yarad?lan ard?c?ll??a daxil edildiyini güman etdiyiniz zaman bir s?hv n?tic?sind? t?k-tük x?talar ba? verir. M?s?l?n, range funksiyas?n?n argumenti olaraq 0-dan 9-a q?d?r ard?c?ll??? g?st?rdikd? v? cavab diapazonu yaln?z 0 il? 8 aras?ndak? tam ?d?dl?ri ifad? ed?c?kdir. 9-u bu aral???n arqumenti kimi t?qdim etm?k ist?yirsinizs?, onda range(10) yazmaq laz?m g?l?r.3.7 GEN??L?ND?R?LM?? M?N?MS?TM?L?RGeni?l?ndirilmi? m?nims?tm?l?r dedikd? (Augmented assignments), eyni d?yi??n ad?n?n b?rab?rliyin (=) solunda v? sa??nda g?ründüyü t?qdird? m?nims?tm? operatorundan ?vv?l c?min, f?rqin, hasilin, qism?tin, qal?ql? b?lm?nin, tam b?lm?nin v? dig?r bu kimi hesabi ?m?liyyatlar?n apar?lmas?n? n?z?rd? tutan kompleks t?dbirl?rin bir operatorla yerin? yetirilm?sini n?z?rd? tutan ?m?liyyat ba?a dü?ülür. Kod g?rüntüsün? baxmaq ü?ün buraya vurunfor number in [1, 2, 3, 4, 5]:total = total + numberKodun [2] fraqmenti bu ?m?liyyat?n q?sa ??kild? yaz?l???na baxmayaraq, deyildiyi kimi geni?l?ndirilmi? m?nims?tm? operatorunun (+=) h?yata ke?irilm?sini t?min edir. Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: total = 0In [2]: for number in [1, 2, 3, 4, 5]:...: total += number # add number to total...:In [3]: totalOut[3]: 15[2] kod fraqmentind? olan += hesabi ifad?si ?vv?lc? cari c?m? ?d?din d?y?rini ?lav? edir, sonra yeni d?y?ri c?m kimii saxlay?r. A?a??dak? c?dv?ld? geni?l?ndirilmi? m?nims?tm? operatorlar?n?n a??l??? g?st?rilir:+= c += 7 c = c + 7 -= d -= 4 d = d - 4 *= e *= 5 e = e * 5 **= f **= 3 f = f ** 3 /= g /= 2 g = g / 2 //= g //= 2 g = g // 2 %= h %= 9 h = h % 93.8 ?TERAS?YALAR ARDICILLI?ININ ?DAR? OLUNMASI; S?T?RL?R?N FORMATLA?DIRILMASIBu v? sonrak? b?lm?l?rd? t?l?b?l?rin orta bal g?st?ricil?rinin probleml?ri ?z h?llini tap?r. A?a??dak? t?l?bl?r ??r?iv?sind? m?s?l?ni n?z?rd?n ke?irin:On ?agirdd?n ibar?t bir sinif viktorina etdi. Onlar?n ?ld? etdiyi qiym?tl?ri (0 - 100 aral???ndak? tam ?d?dl?r) 98, 76, 71, 87, 83, 90, 57, 79, 82, 94 kimi siyah?da g?st?r? bil?rik. Test imtahan?ndak? ballar?n orta qiym?t g?st?ricil?rini t?yin ed?n proqram? t?rtib edin. Bu problemi h?ll etm?k ü?ün a?a??dak? skript qiym?tl?rin c?mini saxlay?r, orta qiym?ti hesablay?r v? son n?tic?ni g?st?rir. 10 n?f?r ?agirdin qiym?tl?rini bir siyah?ya qoyduq, ancaq klaviaturadan istifad??i t?r?find?n qiym?tl?ri daxil ed? bil?rsiniz (n?vb?ti misalda g?st?r?c?yimiz kimi) v? ya bir fayldan oxuya bil?rsiniz (nec? ed?c?yinizi g?rm?k ü?ün "Fayllar v? ?stisnalar" f?sli). SQL v? NoSQL veril?nl?r bazas?ndan m?lumatlar?n nec? oxunaca??n? is? 16-c? f?sild? g?st?ririk.Kod g?rüntüsün? baxmaq ü?ün buraya vurun:Kod g?rüntüsün? baxmaq ü?ün buraya vurunSinifd? qiym?tl?rin orta g?st?ricisi 81,7-dir.5-6 s?tirl?r ü?ün total v? grade_counter d?yi??nl?rini yarad?r v? h?r birini 0-a düz?ldir.7-ci s?tirKod g?rüntüsün? baxmaq ü?ün buraya vurungrades = [98, 76, 71, 87, 83, 90, 57, 79, 82, 94] # list of 10 gradesgrades d?yi??ninin qiym?tl?ri yarad?l?r v? 10 tam ?d?din qiym?tl?ri siyah?s? il? inisializasiya olunur.for operatoru siyah?dak? h?r bir qiym?ti ard?c?l olaraq istifad? edir. 11-ci s?tird? c?min cari qiym?tin? siyah?dak? n?vb?ti qiym?t ?lav? edilir. Sonra, 12-ci s?tird? indiy? q?d?r istifad? olunan qiym?tl?rin say?n? izl?m?k ü?ün n?z?rd? tutulan say?ac? ifad? ed?n grade_counter d?yi??nin? 1 ?lav? edilir. Siyah?dak? bütün 10 d?n? qiym?tl?r istifad? olunduqdan sonra t?krarlama dayand?r?l?r. Python Kodlar? ??ün B?l?d?i, Style Guide for Python Code h?r bir idar?etm? operatorunun üstünd? v? alt hiss?sind? bir bo? s?trin qoyulmas?n? t?vsiy? edir (8 v? 13-cü s?tirl?rd? oldu?u kimi). for operatoru ba?a ?atd?qda 15-ci s?tird? orta qiym?t hesablan?r v? 16-c? s?tird? ?ap olunaraq ekranda g?st?rilir. Daha sonra bu f?sild? bir siyah? elementl?rinin ortalama qiym?tini daha q?sa ??kild? hesablamaq ü?ün funksional proqramla?d?rma t?rzind?n istifad? edirik.Formatlanm?? s?tirl?r? giri?16-c? s?tir skriptin n?tic?sini formatla?d?rmaq ü?ün a?a??dak? sad? f-string (bi?imli q?sa s?tir) istifad? edir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunf'Class average is {average}' S?trin a??l?? sitat?ndan ?vv?l f h?rfi onun f-string oldu?unu g?st?rir. Fiqurlu m?t?riz? ({and}) il? ayr?lm?? yer doldurucular?ndan istifad? ed?r?k d?y?rl?ri harada daxil ed?c?yinizi t?yin edirsiniz. Doldurucu {average}, d?yi??nin ortalama d?y?rini s?tir t?msil?isin? ?evirir, sonra {average} ?v?zedici m?tnl? ?v?z edir. ?v?zedici m?tn ifad?l?rind? d?y?rl?r, d?yi??nl?r v? ya hesablamalar v? ya funksiya z?ngl?ri kimi dig?r ifad?l?r ola bil?r. 16-c? s?tird?, s?tir 15-? olan ehtiyac? aradan qald?raraq, total / grade_counter ?d?d? g?r? istifad? ed? bil?rdik.3.9 SENTINEL- ?DAR?ED?L?N ?TERAS?YASinifd?ki ?agirdl?rin ortalama qiym?tl?ri problemini ümumil??dir?k. A?a??dak? t?l?bl?ri n?z?r? alaraq ??rh ed?k:Proqram?n h?r d?f? yerin? yetirildiyi zaman ixtiyari sayda qiym?tl?ri emal ed?n bir sinif ?agirdl?rinin ortalama qiym?tini hesablaya bil?n proqram? haz?rlay?n.T?l?bl?r ifad? edildikd? qiym?tl?rin n? oldu?u v? ya ne?? oldu?u bildirilmir. Ona g?r? d? istifad??inin qiym?tl?ri daxil etm?sini t?min ed?c?yik. Proqram, ixtiyari sayda qiym?tl?ri emal edir. ?stifad??i, bütün ?agirdl?rin qiym?tl?ri daxil olana q?d?r bir-bir qiym?tl?r siyah?ya ?lav? olunur, sonra daha ?ox qiym?t olmad???n? g?st?rm?k ü?ün bir sentinel d?y?ri daxil dilir (siqnal d?y?ri, dummy d?y?ri v? ya bayraq d?y?ri deyilir).Sentinel üz?rind?n idar?etm? il? iterasiyalar?n t?tbiq olunmas?A?a??dak? skript sentinel idar?etm?si il? iterasiyalar?n sinifd?ki ?agirdl?rin orta qiym?t problemini h?ll edir.Diqq?t yetirin ki, s?f?ra b?lünm? ehtimal?n? s?nay?r?q. ?g?r bu a?karlanmasa, bel? fatal m?ntiq s?hvin? s?b?bin qar??s?n? almaq laz?m g?l?rdi. "Fayllar v? ?stisnalar" b?lümünd? bu cür istisnalar? tan?yan v? müvafiq t?dbirl?r g?r?n proqramlar yaz?r?q.Kod g?rüntüsün? baxmaq ü?ün buraya vurunSentinel üz?rind?n idar?etm? edil?n ?terasiyalar ü?ün Proqram M?ntiqiSentinel üz?rind?n idar? olunan iterasyalarda, proqram, while operatoruna ?atmazdan ?vv?l ilk d?y?ri (9-cu x?tt) oxuyur. 9-cu s?tird? olan input proqram?n idar?etm? ax?n?n?n while d?stin? daxil olub-olmamas?n? mü?yy?nl??dirir (s?tirl?r 12-14). 11-ci s?tird?ki ??rt yanl??d?rsa, False olduqda istifad??i sentinel d?y?rini (-1) daxil etmi?dir. Buna g?r? istifad??i he? bir qiym?t daxil ed? bilm?diyi ü?ün while d?sti icra edilmir. ??rt do?rudursa, True olduqda while d?sti yerin? yetirilir, total n?tic?sin? grade ?lav? edil?nd?n sonar ard?nca say?ac kimi n?z?rd? tutulan grade_counter d? art?r?l?r. Sonra, 14-cü s?tird? istifad??id?n ba?qa bir qiym?t daxil edilm?si t?l?b olunur v? bel? bir v?ziyy?t (11-ci s?tird?ki kimi) istifad??i t?r?find?n daxil edilmi? ?n yeni qiym?tin yenid?n s?naqdan ke?irilm?sini t?l?b edir. grade d?yi??ninin d?y?ri h?mi?? proqram?n v?ziyy?tini yoxlamazdan d?rhal ?vv?l daxil edilir. Buna g?r? bu d?y?rin bir qiym?t kimi i?l?nm?sind?n ?vv?l sad?c? daxil edilmi? d?y?rin sentinel olub-olmad???n? mü?yy?n edil? bilm?sin? g?tirib ??xar?r. Sentinel d?y?ri, (-1) daxil edildikd?, d?vr ba?a ?at?r v? proqram grade_counter say?ac?na 1 ?lav? etmir. ?stifad??i giri?ini yerin? yetir?n bir sentinel idar? olunan bir d?vrd? h?r hans? bir g?st?ri? (9 v? 14-cü s?tirl?r) istifad??iy? sentinel d?y?rini xat?rlatmal?d?r.Sinif ortalamas?n? iki onluq yer il? formatla?d?rmaqBu nümun? sinifd? ?agird qiym?tl?rinin ortalamas?n? ondabirlik n?qt?nin sa??nda iki r?q?ml? verilm?sini formatlad?q. f-s?tird? (f-string), ?v?zolunan m?tnin ifad?sini bir qo?a n?qt? (:) v? ?v?zedici m?tnin nec? formatla?d?r?laca??n? izah ed?n bir format spesifikatoru (format specifier) il? izl?y? bil?rsiniz. .2f format spesifikatoru (s?tir 19) ortalama onluq n?qt?nin (.2) sa??ndak? iki r?q?m il? sürü?k?n vergüllü - n?qt? n?mr?si (f) kimi formatlay?r. Bu misalda, qiym?tl?rin c?mi 257 idi ki, 3-? b?lündükd? 85.666666666 verir .... Orta s?viyy?ni .2f il? formatla?d?raraq, ?v?zedici m?tni ??xararaq 85.67. Onluq n?qt?sinin sa??nda yaln?z bir r?q?mli olan ortalama s?f?r il? formatlan?rd? (m?s., 85.50). "Strings: D?rin bir g?rünü?" F?silind? daha ?ox formatla?d?rma xüsusiyy?tl?rini müzakir? edilir.3.10 RANGE QURA?DIRILMI? FUNKS?YASI: B?R Q?D?R D?R?N BAXI?range diapason funksiyas?n?n iki v? ü? arqumentli versiyas? da var. G?rdüyünüz kimi, diapazonun bir arqument versiyas? arqumenti 0-dan arqument? q?d?r ard?c?l tam ?d?dl?r ard?c?ll???n? verir, lakin arqumentin ?z d?y?rini daxil etmir. range diapason funksiyas?n?n iki arqumentli versiyas?nda, ilk arqumentin d?y?rind?n ba?layaraq ard?c?l ??kild? tam ?d?dl?rin s?ralamas? ikinci arqument? kimi verilir, lakin ikinci arqumentin d?y?ri bu s?raya daxil edilmir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [1]: for number in range(5, 10):...: print(number, end=' ')...:5 6 7 8 9range diapason funksiyas?n?n ü? arqumentli versiyas?nda, ilk arqumentin d?y?rind?n ba?layaraq ard?c?l ??kild? tam ?d?dl?rin s?ralamas? ü?üncü arqumentd? verilmi? add?mlar üzr? ikinci arqumentin d?y?ri daxil olmamaqla verilir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [2]: for number in range(0, 10, 2):...: print(number, end=' ')...:0 2 4 6 8??üncü arqument m?nfi olarsa, ard?c?ll?q birinci arqumentin d?y?rind?n a?a??ya do?ru ir?lil?yir, buraya ikinci arqumentin d?y?ri daxil deyil, ü?üncü arqumentin d?y?ri q?d?r azal?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: for number in range(10, 0, 2):...: print(number, end=' ')...:10 8 6 4 23.11 PUL M?BAD?L?S? ???N DECIMAL T?P?ND?N ?ST?FAD?Bu b?lm?d? d?qiq pul hesablamalar? ü?ün Decimal onluq k?sr imkanlar?n? t?qdim edirik. Bank v? ya ticar?t obyektl?rind? olsan?z, onda "q?pik" d?qiqliyi t?l?b olunacaqd?r. Decimal onluq k?sr imkanlar?n? d?rind?n ara?d?rmal?s?n?z. Onluq k?srl?ri istifad? ed?n ?ks?r elmi v? dig?r riyazi t?tbiql?r ü?ün vergüll?r v? ya n?qt?l?r, Python'da is? sürü?k?n vergüllü (n?qt?li) ?d?dl?r yax?? i?l?yir. M?s?l?n, suyun qaynayana yax?n temperaturunun 98,6 oldu?unu s?yl?s?k, vergüld?n sonar ?ox sayda r?q?md?n istifad? edilm?sin? ehtiyac qalm?r. H?r hans? bir termometrd?ki temperaturu g?rüb 98.6 olaraq oxudu?umuz zaman, ola bilsin ki, h?qiqi temperaturun qiym?ti 98.5999473210643 ola bil?r. M?s?l? buras?ndad?r ki, 98.6 onluq k?srl? qeyd olunan ?d?d, ?ks?r halda h?min anda suyun istiliyin? tam uy?undur.Sürü?k?n vergüllü ?d?dl?r ikili formatda saxlan?l?r (birinci f?sild? ikili tan?td?q v? onlayn "Say? Sisteml?ri" ?lav?sind? müzakir? edirik). B?zi sürü?k?n vergüllü ?d?dl?rin d?y?rl?ri vergüld?n sonar iki r?q?ml? ifad? olunduqda yaln?z t?qrib?n t?msil olunur. M?s?l?n, d?yi??n m?bl??i dollar v? sent d?y?ri 112.31 il? n?z?rd?n ke?ir?k. M?bl??i g?st?rs?niz, ona t?yin etdiyiniz d?qiq bir d?y?rin oldu?u g?rünür:In [1]: amount = 112.31In [2]: print(amount)112.31Bununla birlikd?, onluq n?qt?nin sa??na 20 d?qiqlik d?r?c?si il? ?ap ets?niz, yadda?dak? h?qiqi d?yi??nin d?qiq qiym?tinin 112.31 olmad???n? g?r? bil?rsiniz - bu yaln?z yax?nla?mad?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [3]: print(f'{amount:.20f}')112.31000000000000227374Bir ?ox t?tbiql?rd? onluq n?qt?l?ri olan ?d?dl?rin d?qiq ??kild? g?st?rilm?si t?l?b edilir. Günd? milyonlarla v? ya h?tta milyardlarla ?m?liyyatla m???ul olan banklar kimi t??kilatlar, ?m?liyyatlar?n? "q?pik-quru?a" ba?lamal? olurlar. Sürü?k?n vergüllü ?d?dl?r t?kc? pullar? deyil, ham?s?n? pul d?qiqliyi il? ?ks etdirir. Python Standard Library, Python Standard Kitabxanas? Python kodunuzda istifad? etdiyiniz v? ?vv?lc?d?n mü?yy?n edilmi? ?oxsayl? imkanlar? t?min edir. "T?k?rin yenid?n icad edilm?sinin" qar??s?n? almaq ü?ün istifad? olunur. Pul hesablamalar? v? ?d?dl?rin onluq n?qt?l?rl? d?qiq t?msil olunmas? v? manipulyasiyas?n? t?l?b ed?n dig?r t?tbiqetm?l?r ü?ün Python Standard Kitabxanas? Decimal tipini t?qdim edir. Q?pikl?rl? ifad? olunan d?qiqliyi h?ll etm?k ü?ün xüsusi kodla?d?rma sxemind?n istifad? edilir. Bu sxem ?d?dl?ri saxlamaq ü?ün ?lav? yadda? t?l?b edir v? hesablamalar? aparmaq ü?ün ?lav? i?l?m? vaxt? t?l?b edir, lakin pul hesablamalar? ü?ün t?l?b olunan d?qiqliyi t?min edir.Banklar hesablarda günd?lik faizl?ri hesablayark?n ?dal?tli yuvarlaqla?d?rma alqoritmind?n istifad? kimi dig?r m?s?l?l?rl? d? m???ul olmal?d?rlar. Decimal tipi bel? imkanlar? t?klif edir.decimal Moduldan Decimal tipin idxal?Biz qura?d?r?lm?? bir ne?? tipd?n istifad? etdik - int (tam ?d?dl?r ü?ün, m?s?l?n, 10), float (sürü?k?n vergüllü onluq k?srli ?d?d, m?s?l?n, 7.5) v? str ('Python' kimi s?tirl?r ü?ün). Onluq tip hesab olunan Decimal tipi Python-a daxil edilm?mi?dir. ?ksin?, decimal modulu Standard Python Kitabxanas?n?n (Python Standard Library) bir hiss?sidir. decimal modulu Decimal tipini v? onun imkanlar?n? mü?yy?nl??dirir.Decimal tipini istifad? etm?k ü?ün ?vv?lc? bütün onluq modulu oldu?u kimi tam ??kild? idxal etm?lisiniz:import decimalv? Decimal tipin? decimal olaraq bax?n. Decimal v? ya burada etdiyimiz kimi idxaldan istifad? etm?kl? mü?yy?n bir imkan? h?yata ke?irm?lisiniz:Kod g?rüntüsün? baxmaq ü?ün buraya vurunIn [4]: from decimal import DecimalBu kodunuzda istifad? ed? bil?c?yiniz ü?ün decimal moduldan yaln?z Decimal tipi idxal edilir. N?vb?ti f?sild? ba?layan dig?r idxal formalar?n? müzakir? ed?c?yik.Decimal tipli ?d?dl?rin yarad?lmas?Siz ad?t?n bir simvoldan ibar?t Decimal tipli ?d?dl?ri yarad?rs?n?z:Kod g?rüntüsün? baxmaq ü?ün buraya vurun ?ox decimal modul xüsusiyy?tl?ri ü?ün ziyar?t edin [5]: principal = Decimal('1000.00')In [6]: principalOut[6]: Decimal('1000.00')In [7]: rate = Decimal('0.05')In [8]: rateOut[8]: Decimal('0.05')Tezlikl? principal v? rate d?yi??nl?rini mür?kk?b faiz hesablamas?nda istifad? ed?c?yik.Decimal hesab?Decimal-lar standart hesabi operatorlar? +, -, *, /, //, ** v? %, h?m?inin uy?un ?lav? tap??r?qlar? d?st?kl?yir:In [9]: x = Decimal('10.5')In [10]: y = Decimal('2')In [11]: x + yOut[11]: Decimal('12.5')In [12]: x // yOut[12]: Decimal('5')In [13]: x += yIn [14]: xOut[14]: Decimal('12.5')Decimal-lar v? tam ?d?dl?r aras?nda hesabi ?m?liyyatlar apara bil?rsiniz, ancaq Decimal-lar v? sürü?k?n n?qt?li ?d?dl?r aras?nda hesabi ?m?liyyatlar apar?la bilm?z.Mür?kk?b Faiz Probleml?ri t?l?bl?rin? uy?un operatorlar üz?rind? i?D?qiq pul hesablamalar? ü?ün Decimal tipind?n istifad? ed?r?k mür?kk?b faizl?ri hesablayaq. A?a??dak? t?l?bl?r ??r?iv?sind? problemin qoyulu?unu n?z?rd?n ke?ir?k:Bir ??xs ild? 5% faiz g?lirl? bir ?man?t hesab?na 1000 dollar s?rmay? qoyur. ??xsin hesabdak? ?man?t üzr? bütün faizl?r üzr? g?lirl?rinin s?rmay? üz?rin? ?lav? edildiyini güman ed?r?k, h?r ilin sonunda, 10 il ?rzind? hesabdak? pul m?bl??ini hesablay?n v? ekranda ?ap ed?r?k g?st?rin. Bu m?bl??l?ri mü?yy?nl??dirm?k ü?ün a?a??dak? düsturdan istifad? edilir:a = p(1 + r)nharada ki,p - qoyulmu? ilkin m?bl?? (y?ni ?sas),r - illik faiz d?r?c?sidir,n - ill?rin v?a - Ilin sonundak? ?man?td?ki m?bl??dir.Mür?kk?b faiz hesablanmas?Bu problemi h?ll etm?k ü?ün, [5] v? [7] s?tirl?rind? mü?yy?nl??dirdiyimiz principal v? rate, h?m?inin for operatorunun pulun ?man?td? qalan qalan hiss?sinin 10 il ü?ün faiz d?r?c?sinin hesablanmas?n? h?yata ke?ir?n bir operatoru istifad? ed?k. H?r il ü?ün d?vrd? il say? v? h?min ilin sonundak? depozit miqdar? olan formatland?r?lm?? bir ifad?ni g?st?rilir:Kod g?rüntüsün? baxmaq ü?ün buraya vurunQoyulan t?l?bl?r ?sas?nda formala?an c?bri ifad?si (1 + r)n kimi yaz?lm??d?r(1 + rate) ** yearburada s?rmay? d?yi??nini r v? ill?rin say? n-ni t?msil edir. Depozitd? ?l v? M?bl??in formatlanmas?operatoruKod g?rüntüsün? baxmaq ü?ün buraya vurunprint(f'{year:>2}{amount:>10.2f}')d?vrün ??x???n? formatla?d?rmaq ü?ün iki fiqurlu m?t?riz? il? f-s?tir (f-string) istifad? edir.?l fiqurlu m?t?riz?si {year:>2} ill?rin say?n?n >2 spesifikatoru onu bildirir ki, il g?st?ricisi sa? t?r?fd?n 2 ayr?lm?? sah?d? düzl?ndirilm?lidir. Bir r?q?mli il say? olan 1-9 ü?ün, format mü?yy?nl??diricisi >2, ard?ndan g?l?n sayda ilk sütunda ill?r? uy?un olaraq bo?luq i?ar?si g?st?rilir. A?a??dak? diaqram h?r bir sah?nin 2 geni?liyind? formatland??? 1 v? 10 ?d?dl?rini g?st?rir:D?y?rl?ri < il? düzl?ndir? bil?rsiniz.Fiqurlu m?t?riz?d? 10.2f format d?qiql??diricisi{amount:>10.2f}amount formatlar?, ??x??da veril?nin sürü?k?n n?qt? il? birlikd? 10 r?q?md?n ibar?t olmas? il? b?rab?r, onluq i?ar?l?rin say?n?n n?qt?d?n sonra 2 r?q?md?n ibar?t olmas? il? s?ciyy?l?nir. M?bl??l?ri bu ??kild? formatla?d?rmaq, pul m?bl??l?ri il? xarakterik oldu?u kimi, onluq n?qt?l?rini d? ?aquli olaraq düzl?ndirir. 10 i?ar?li m?vqed?ki ü? ?n yax?? simvol sa?dak? iki r?q?min ard?nca ?d?din onluq n?qt?sidir. Qalan yeddi simvol m?vqeyi apar?c? bo?luq v? onluq m?rt?b? vahidl?rin? qalan sah?l?rdir. Bu misalda, bütün dollar m?bl??l?rind? onluq n?qt?nin solunda d?rd r?q?m var, buna g?r? h?r n?mr? ü? apar?c? bo?luq il? formatlan?r. A?a??dak? diaqram 1050.00 d?y?ri ü?ün formatlaman? g?st?rir:3.12 BREAK V? CONTINUE OPERATORLARIbreak v? continue operatorlar? bir d?vrün idar? olunmas? ax?n?n? d?yi?dirir. break operatorunun while v? ya for operatorlar?n?n t?rkibind? d?vrün icras?n? bird?f?lik k?sir, continue operatoru is? d?vrün cari icras?n? ba?a ?atd?rmadan n?vb?ti d?vrün icra edilm?sin? ke?id imkan? yarad?r. A?a??dak? kodda range diapazon funksiyas? 0–99 tam ard?c?ll???n? n?z?rd? tutur, buna baxmayaraq ancaq ?d?d 10 olduqda d?vrün icras? sona ?at?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunBir skriptd? icra prosesi for d?vründ?n sonrak? operatorlarla davam ed?c?kdir. while v? for operatorlar? ü?ün else a?ar s?zünd?n istifad? etm?k m?cburi deyildir. Buna r??m?n d?vr normal olaraq dayand?r?ld??? t?qdird?, y?ni bir ara verm? n?tic?sind? ?z i?ini icra edir. Continue operatorunun rast g?linm?si d?vrün cari anda icras?na bir n?v fasil? yarad?r v? icra prosesi n?vb?ti d?vr? adlay?r. Bir müdd?td?n sonra, v?ziyy?t d?vrün icras?na davam edib-etm?m?si ü?ün yoxlan?l?r. Bu halda, d?vr ard?c?ll?qla n?vb?ti elementi (?g?r varsa) emal edir:Kod g?rüntüsün? baxmaq ü?ün buraya vurun3.13 BOOLEAN OPERATORLARI AND, OR V? NOT??rti operatorlar >, <, > =, <=, == v? ! = vasit?si il? grade >= 60 kimi sad? ??rtl?ri yaratmaq ü?ün istifad? edil? bil?r. Sad? ??rtl?ri birl??dir?n daha mür?kk?b ??rtl?r yaratmaq ü?ün istifad? edil?n v? ya Booleanoperatorlar? adlanan and, or v? not say?la bil?r.and M?ntiqi OperatoruMür?kk?b ??rtli idar?etm? operatoru paketini icra etm?zd?n ?vv?l h?r iki ??rtin True oldu?u hal?nda icra prosesinin ba? tutulmas? ist?nil?rs?, onda bu ??rtl?ri m?ntiqi ??kild? birl??dirm?k ü?ün and operatorundan istifad? edilir. A?a??dak? kod iki d?yi??ni mü?yy?nl??dirir, sonra h?r iki d?yi??nd? ??rtin m?ntiqi True oldu?u hal?nda v?ziyy?ti yoxlay?r - ?g?r sad? ??rtl?rin ya biri (ya da h?r ikisi) False olarsa, onda m?ntiqi operator büt?vlükd? False olacaqd?r.Kod g?rüntüsün? baxmaq ü?ün buraya vurun If operatorunun iki sad? ??rti var:gender == 'Female', ??xsin qad?n olub-olmad???n? v? ya??n?n >= 65 oldu?unu yoxlay?r. Bununla da n?z?rd? tutulan ??xsin, ya?l? bir qad?n olub-olmad??? t?yin edilir. and operatorunun solundak? sad? ??rt ?vv?lc? hesablan?r, ?ünki == m?ntiqi operatoru and m?ntiqi operatorundan daha yüks?k üstünlüy? malikdir. Laz?m g?l?rs?, sa?dak? sad? ??rt sonra qiym?tl?ndirilir, ?ünki >= m?ntiqi operatoru and m?ntiqi operatorundan daha yüks?k üstünlüy? malikdir (and m?ntiqi operatorun sa? t?r?finin yaln?z sol t?r?fin do?ru oldu?u hal?nda niy? hesabland???n? q?sa bir ??kild? müzakir? ed?c?yik). if operatorunun ??rtl?rinin h?r ikisi d? do?rudursa, m?ntiqi operatorun ??rti ümumilikd? do?rudur. Birl??dirilmi?, kombinasiyal? v?ziyy?tl?rd? üstünlüyün ayd?n ba?a dü?ülm?si ü?ün laz?ms?z m?t?riz?l?rin ?lav? edilm?si praktikada geni? yay?lm??d?r.Kod g?rüntüsün? baxmaq ü?ün buraya vurun(gender == 'Female') and (age >= 65)A?a??dak? c?dv?ld? and m?ntiqi ba?lay?c?s?ndan istifad? olunmas?n?n n?tic?l?ri ?ks olunmu?dur. or M?ntiqi Operatoru?ki ??rtd?n birinin v? ya h?r ikisinin do?rulu?unu yoxlamaq ü?ün M?ntiqi or operatorundan istifad? edilir. A?a??dak? kod, ??rtl?rin he? olmasa birinin True oldu?u bir v?ziyy?ti yoxlay?r, h?r iki sad? ??rt d? False olduqda bütün ??rt büt?vlükd? False hesab olunur:Kod g?rüntüsün? baxmaq ü?ün buraya vurun [6] kod fraqmenti d? iki sad? ??rtd?n ibar?tdir:semester_average >= 90 ??rti t?l?b?nin semestr ?rzind? ortalama qiym?tl?ndirm? ballar?n?n A (90 v? ya yuxar?) olub-olmad???n? mü?yy?nl??dirir v? final_exam >= 90 t?l?b?nin son imtahan qiym?tinin A olub-olmad???n? mü?yy?nl??dirir. and operator or operatoruna nisb?t?n daha yüks?k üstünlükl?r? malikdir.Q?sa d?vr?li qiym?tl?ndirm? il? performans?n yax??la?d?r?lmas?Python and m?ntiqi ?m?liyyat?na g?r? operatorun yerin? yetirilm?sini h?r hans? bir ??rtin False il? n?tic?l?n?c?yi halda dayand?r?r. Eynil?, Python or m?ntiqi ?m?liyyat?na g?r? operatorun yerin? yetirilm?sini bütün ??rtl?rin False il? n?tic?l?n?c?yi halda dayand?r?r. Buna q?sa d?vr? qapanmal? m?ntiqi qiym?tl?ndirm? deyilir. Bel?likl?, ??rt? baxaq:Kod g?rüntüsün? baxmaq ü?ün buraya vurungender == 'Female' and age >= 65??xsin cinsi 'Qad?n' deyils?, d?rhal m?ntiqi qiym?tl?ndirm?ni dayand?r?r, ?ünki bütün ifad? False olacaqd?r. ??xsin cinsi 'Qad?n' olarsa, icra davam edir, ?ünki ya? 65 v? ya daha ?ox olduqda bütün ifad? Do?ru olacaq.Kod g?rüntüsün? baxmaq ü?ün buraya vurunsemester_average >= 90 or final_exam >= 90semester_average 90'dan b?yük v? ya b?rab?r olduqda d?rhal m?ntiqi qiym?tl?ndirm? dayand?r?l?r, ?ünki bütün ifad? True olacaqd?r. semester_average 90-dan azd?rsa, icra davam edir, ?ünki final_exam 90-dan ?ox v? ya b?rab?r olduqda ifad? yen? d? True ola bil?r.?stifad? olunan ifad?l?rd? daha False oldu?u ü?ün daha sol ??rt olaca??n? ??rtl?ndirin. Operator ifad?l?rind?, ?n sol ??rt olan True olma ehtimal? daha yüks?k olan v?ziyy?ti düz?ldin. Bu üsullar bir proqram?n icra müdd?tini azalda bil?r.not M?ntiqi Operatorunot m?ntiqi operatoru bir ??rtin m?nas?n? "geri ?evirir" - True ??rti False olur v? False ??rti True olur. Bu unar operatordur - yaln?z bir operand? var. not m?ntiqi operatorunun ??rti (?m?liyyat??s?z) False olduqda, icra kodunu se?m?k imkan? yaran?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurun ?ox vaxt v?ziyy?ti daha “t?bii” v? ya rahat ??kild? ifad? etm?kl? istifad? etm?kd?n qa?maq olar. M?s?l?n, ?vv?lki if operatoru a?a??dak? kimi yaz?la bil?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunA?a??dak? not operatoru c?dv?lidir.A?a??dak? c?dv?ld? indiy? q?d?r t?tbiq olunan operatorlar?n üstünlüyü v? qrupla?d?r?lmas? yuxar?dan a?a??ya, üstünlüyün azalma qaydas?nda g?st?rilir.3.14 VER?L?NL?R ELM?N? G?R??: M?RK?Z? TENDENS?YA T?DB?RL?R? - ORTALAMA, MED?AN V? MODABurada bir ne?? ?lav? t?sviri statistika il? m?lumatlar? t?hlil etm?k ü?ün statistikadan istifad? bar?d? müzakir?l?rimizi davam etdiririk:ortalama - d?y?rl?r toplusundak? orta d?y?r.median - bütün d?y?rl?r s?ralanm?? qaydada yerl??dirildikd? orta d?y?r.moda - ?n tez-tez meydana g?l?n d?y?r.Bunlar m?rk?zi meyl ?l?m?l?ridir - h?r biri d?y?rl?r toplusundak? "m?rk?zi" bir d?y?ri ifad? ed?n, y?ni mü?yy?n m?nada dig?rl?rin? xas olan bir d?y?ri meydana g?tir?n bir üsuldur.Tam ?d?dl?rin siyah?s?nda ortalama, median v? modan? hesablayaq. N?vb?ti sessiyada qiym?tl?r deyil?n bir siyah? yarad?l?r, sonra "?l il?" ortalamas?n? hesablamaq ü?ün qura?d?r?lm?? sum v? len funksiyalar?ndan istifad? olunur - c?m qiym?tl?rin c?mi sum (397) hesablay?r v? len (5) say?n? qaytar?r:?vv?lki f?sild? Python-da len v? sum funksiyalar?nda qurulmu? t?svir xarakterli statistikan?n say? v? c?mind?n b?hs edilmi?dir. min v? max (?vv?lki f?sild? t?qdim olunmu?) funksiyalar kimi, sum v? len d? funksional stil proqramla?d?rman?n q?sald?lm?? nümun?l?ridir - d?y?rl?r toplusunu vahid bir d?y?r? - müvafiq olaraq h?min d?y?rl?rin c?min? v? d?y?rl?rin say?na endirirl?r. B?lm? 3.8-in ortalama sinifin? aid nümun?sind? skriptin 10-15 s?tirini sil? bil?rik v? 16-c? s?tird? orta hiss?ni [2] fraqmentinin hesablanmas? il? ?v?z ed? bil?rik.Python Standard Kitabxanas?n?n statistika modulu ortalama, median v? moda hesablanmas? ü?ün funksiyalar? t?qdim edir - bunlar da q?sald?lm?? ??kild? olur. Bu imkanlardan istifad? etm?k ü?ün ?vv?lc? statistics modulunu idxal edirik:In [3]: import statisticsSonra modulun funksiyalar?n? "statistics" il? ?ld? ed? bil?rsiniz, ard?nca modulu ?a??rmaq ü?ün funksiyan?n ad? t?qdim olunur. A?a??da statistika modulunun ortalama, median v? moda funksiyalar?ndan istifad? ed?r?k qiym?tl?r siyah?s?n?n ortalama, median v? moda hesablan?r:Kod g?rüntüsün? baxmaq ü?ün buraya vurunH?r bir funksiyan?n arqumenti iterable olmal?d?r - bu halda siyah? qiym?tl?rind?n ibar?t olmas? n?z?rd? tutulur. Median?n v? modan?n düzgün oldu?unu t?sdiql?m?k ü?ün, qiym?tl?rin artan s?rada t??kil edilmi? sur?tini almaq ü?ün sorted function s?ralanm?? funksiyas?ndan istifad? ed? bil?rsiniz:In [7]: sorted(grades)Out[7]: [45, 85, 85, 89, 93]Qiym?tl?r siyah?s?nda t?k qiym?tl?r var (5), buna g?r? median orta d?y?ri (85) qaytar?r. Siyah?dak? d?y?rl?rin say? b?rab?r olduqda, median iki orta d?y?rin ortalama nisb?tini qaytar?r. ?e?idl?n?n d?y?rl?ri ?yr?n?r?k 85-nin ?n ?ox (iki d?f?) ba? verdiyi ü?ün moda oldu?unu g?r? bil?rsiniz. moda funksiyas? kimi siyah?lar ü?ün StatisticsError statistika s?hvin? s?b?b olur[85, 93, 45, 89, 85, 93]iki v? ya daha ?ox "?n tez-tez" d?y?rl?r var. Bel? bir d?y?rl?r d?stinin bimodal oldu?u deyilir. Burada h?m 85, h?m d? 93 iki d?f? ba? verir.3.15 WRAP-UPBu f?sild? Python'un ??rtd?n as?l? olaraq idar?etm? operatorlar?n?, o cüml?d?n, if, if... else, if... elif... else, while, for, break v? continue kimi m?vzular? da müzakir? etdik. Siz operatorun ard?c?ll?qla idar? olunan iterasiyas?n? yerin? yetirdiyini g?rdünüz - h?r bir elementi, m?s?l?n, tam saylar, s?tir v? ya siyah? kimi iterable i?l?yir. Qura?d?r?lm?? funksiya aral???ndan 0 aral???na q?d?r ard?c?ll?qla yaratmaq ü?ün, arqumentini d? daxil etm?d?n v? operatorlar?n t?krarlanmas?n? ne?? d?f? mü?yy?nl??dirm?k ü?ün istifad? etdiniz.Bir sentinel d?y?ri tap?lana q?d?r icras?n? davam etdir?n bir d?vr yaratmaq ü?ün müdd?tli bildiri?l? sentinel idar?etm? iteratorundan istifad? etdiniz. Birinci arqumentin d?y?rind?n ikinci arqumentin d?y?rin? q?d?r olan, lakin daxil olmayan tam ?d?dl?r ard?c?ll??? yaratmaq ü?ün funksiya diapazonunun iki arqument versiyas?ndan istifad? etdiniz. ??üncü arqumentin bir s?ra tam ?d?dl?r aras?ndak? add?m? g?st?rdiyi ü? arqument versiyas?ndan da istifad? etdiniz.D?qiq pul hesablamalar? ü?ün Decimal tipini t?qdim etdik v? mür?kk?b faiz hesablamaq ü?ün istifad? etdik. Formatlanm?? ??x??? yaratmaq ü?ün f-strings v? müxt?lif format d?qiql??diricil?rind?n istifad? etdiniz. break t?qdim etdik v? d?vrl?rd? n?zar?t ax?n? d?yi?dirm?k ü?ün continue operatorlar? il? davam etdik. M?ntiqi operatorlar?n? müzakir? etdik v? ya sad? ??rtl?ri birl??dir?n ??rait yaratmaq ü?ün deyil.N?hay?t, Python Standard Kitabxanas?n?n statistika modulundan m?rk?zi meyl ?l?m? - ortalama, median v? moda - ?l?ül?ri t?tbiq ed?r?k v? funksiyalar? hesablamaqla t?svir statistikas? bar?d? müzakir?l?rimizi davam etdirdik.N?vb?ti f?sild? xüsusi funksiyalar yaradacaq v? Python'un riyaziyyat v? t?sadüfi modullar?ndan m?vcud funksiyalar? istifad? ed?c?ksiniz. Bir ne?? ?vv?lc?d?n t?yin edilmi? funksional proqramla?d?rman?n q?sald?lm?? nümun?l?rini g?st?rir v? ?lav? funksional proqramla?d?rma imkanlar?n? g?r?c?ksiniz. ................
................

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

Google Online Preview   Download