Faydalı məsləhətlər

Python proqramlaşdırma dilində məlumatları necə çıxarmaq olar

Pin
Send
Share
Send
Send


Python-da hansı mühitdə proqram yarada və işlədə biləcəyinizi bildikdən sonra bu dilin əsaslarını öyrənməyə başlaya bilərsiniz. Ən maraqlısı, ilk sadə proqramları heç bir mürəkkəb konstruksiya və proqramın orqanı (Paskalda olduğu kimi) haqqında məlumat olmadan yazmaq olar. Bu dərsdə Pythonda giriş-çıxış əməliyyatları, eləcə də kompüter ekranında arifmetik əməliyyatların sürətli çıxışı ilə tanış olacağıq.



Proqramda etdiyiniz hərəkətlər nəticəsində nəyin baş verdiyini bilmək üçün birtəhər bunu göstərməlisiniz. Proqramdan məlumat çıxartmağın ən sadə və əsas yolu, nəticənin ekrana, birbaşa IDLE inkişaf mühitinin Shell əmr satırından yaxşı köhnə çıxışıdır.

Dəyərləri ekranda göstərmək üçün Python funksiyası var çap et (). Parantezlərin içərisinə vergül ilə ayrılmış, çıxarmaq istədiyinizi yazın.

Rahat çıxış formatı

Bu anda dəyərləri çıxarmağın iki yolunu anladıq: operator ifadələri (ifadə ifadələri) və çap () funksiyası. (Üçüncü yol, fayl obyektlərinin yazmaq () metodundan istifadə etməkdir; standart çıxış faylı sys.stdout kimi müraciət edə bilərsiniz. Bu element haqqında daha çox məlumat üçün Kitabxana İstinadına baxın.)

Tez-tez boşluqlarla ayrılan dəyərlərin adi çapından daha çox çıxışın formatlanmasına daha çox nəzarət etmək istəyi var. Çıxışınızı formatlaşdırmağın iki yolu var. Birinci yol bütün işləri özünüz etməkdir: xətt kəsikləri və bağlama istifadə edərək istədiyiniz şablon yarada bilərsiniz. Standart simli modul sətirləri müəyyən bir sütun genişliyinə uyğunlaşdırmaq üçün bir çox faydalı əməliyyatları özündə cəmləşdirir (bunları qısa zamanda nəzərdən keçirəcəyik). İkinci yol str.format () metodundan istifadə etməkdir.

Simli modul, dəyərləri sətirlərə dəyişdirməyin başqa bir yolunu təmin edən Şablon sinifini özündə cəmləşdirir.

Əlbətdə bir sual qalır: Dəyərləri simlərə necə çevirmək olar? Xoşbəxtlikdən, Pythonda hər hansı bir dəyəri sətirə çevirməyin iki yolu var - bunlar repr () və str () funksiyalarıdır.

Str () funksiyasının məqsədi, tərcüməçi tərəfindən oxuna bilən formaları yaratmaq (və ya ekvivalent sintaksis olmadıqda SyntaxError-a səbəb olmaq) olan repr () -dan fərqli olaraq, dəyərləri kifayət qədər oxunan formada qaytarmaqdır. İnsan oxuya bilən bir formaya sahib olmayan obyektlər üçün str () funksiyası repr () ilə eyni dəyəri qaytaracaqdır. Rəqəmlər və lüğətlər kimi nömrələr və ya strukturlar kimi bir çox dəyər hər iki funksiya üçün eyni formaya malikdir. Xüsusilə strings və üzən nöqtə nömrələri iki fərqli formaya malikdir.

Budur kvadrat və kublar cədvəlini göstərməyin iki yolu:

(Qeyd edək ki, birinci misalda sütunlar arasındakı tək boşluqlar print () funksiyası ilə əlavə olunur: həmişə parametrləri arasındakı boşluqları əlavə edir)

Bu nümunə simli obyekt metodunu, solu boşluqlarla boşaltmaqla ötürülən eni sahəsində sağa uyğunlaşdıran rjust () əməliyyatını göstərir. Bənzər metodlar ljust () və center () üçün mövcuddur. Bu üsullar heç bir şey çap etmir, yalnız yeni bir xətt geri qaytarır. Giriş xətti çox uzunsa, onda onu kəsmirlər, bu da ümumiyyətlə pisliklərdən daha azdır. (Kəsmək üçün bir dilim əməliyyatı əlavə edə bilərsiniz, məsələn: x.ljust (n) [: n].)

Digər bir üsul var - zfill (), nömrə xəttinin solundakı boşluğu doldurur. Bu artım və mənfi əlamətləri tanıyır:

Str.format () metodundan istifadə etməyin əsas yolu belədir:

İçərisində simvol olan mötərizələr (deyilir) format sahələri (format sahələri)) format metoduna keçən obyektlərlə əvəz olunur. Mötərizədə olan rəqəm, format metoduna keçən parametrlər siyahısında obyektin mövqeyini göstərir.

Format üsulu adlandırılan parametrlərdən istifadə edərsə, müvafiq arqumentin adından istifadə edərək dəyərlərinə istinad edə bilərsiniz.

Mövqe və adlandırılan parametrlər özbaşına birləşdirilə bilər:

İsteğe bağlı ':' format dəqiqləşdiricisi bir sahə adını izləyə bilər. Bir dəyərin formatlanmasına nəzarət etmək üçün istifadə edin. Aşağıdakı nümunə, Pi-ni onluq ayırıcıdan sonra yalnız üç rəqəm buraxır.

':' Dəqiqləşdiricisindən sonra bir nömrə - simvolların sayı ilə ifadə olunan minimum sahə genişliyini göstərə bilərsiniz. Gözəl masalar yaratmaq üçün istifadə etmək rahatdır:

Format siminiz çox uzunsa və onu alt hissələrə ayırmaq istəmirsinizsə, biçimlendirme üçün nəzərdə tutulan dəyişiklərə mövqeyə görə deyil, adla müraciət etsəniz yaxşı olardı. Bunu sadəcə lüğəti keçmək və kvadrat mötərizədə istifadə etməklə edə bilərsiniz '[]Açarlara daxil olmaq üçün.

Eyni şeyi "**" qeydini istifadə edərək adlandırılmış parametrlərin lüğətini keçməklə etmək olar:

Xüsusilə, bu texnikanın daxili dəyişənlərlə bir lüğəti qaytardığı daxili funksiyası vars () ilə birlikdə istifadə etmək rahatdır.

Str.format () metodundan istifadə edərək biçimləmə sətirlərinin ətraflı təsviri formatlama sətrinin sintaksis bölməsində təsvir edilmişdir.

Ekran çıxışı

Tutaq ki, müəyyən bir dəyəri olan bir dəyişən var və onu ekranda göstərmək istəyirik. Bunun üçün Python bir funksiya var çap et (). Qavslar içərisində dəyişənimizin və ya bəzi simvolların adını qoyduq. Sadəcə bir ədədi dəyişən kimi bir rəqəm daxil etsəniz, tərcüməçi and içəcək.

Hər dəfə bir funksiya tetiklenir çap et () bəzi məlumatlar ekranda görünəcək, bu vəziyyətdə eyni. Sonra çap et () Ona deyilənlərin hamısını çap etdirdi, o, növbəti sətirdən çıxacaq. Bunun baş verməməsi üçün bir şey əlavə etməlisiniz ...

Dırnaqarası yazılarda, prinsipcə, ürəyiniz istədiyi hər şeyi yaza bilərsiniz.

Sətirləri köhnə üslubda biçmək

Sətirləri formatlamaq üçün% əməliyyatı istifadə edə bilərsiniz. Sol operandı sağ operanda tətbiq edilməli olan sprintf tərzi formatlı bir sətir kimi şərh edir və bu dönüşüm nəticəsində yaranan sətri qaytarır. Məsələn:

Str.format () metodu olduqca yeni olduğundan, Python mənbəyinin çoxu yenə də% əməliyyatını istifadə edir. Ancaq zaman keçdikcə sətir formatlaşdırma dildən silinəcək, buna görə də əksər hallarda str.format () istifadə edilməlidir.

Daha çox məlumatı köhnə üslubda sətir formatlaşdırma əməliyyatlarını formatlaşdırma bölməsində tapa bilərsiniz.

İstifadəçi girişi

Unutmayın, istifadəçi daxil etdiyi hər şey yalnız bir sıra daxil olsa da, bir xarakter dəyişkənidir.
İstifadəçinin bir sıra (məsələn, riyazi əməliyyatlar üçün) bir sıra daha bir hərəkət etməsi üçün bir sıra daxil etməsinə ehtiyacımız varsa, onda aşağıdakı hiyləni etməliyik: sətir nəticəmizi rəqəmə çevirin.

Birincisi, istifadəçi məlumatları daxil edir və basdıqdan sonra Daxil edin, onun daxil etdiyi simli məlumatlar bir sıra formata çevrilir. Funksiya bu işdə bizə kömək edir. int (). Hər hansı bir məlumatı rəqəmli tam formata çevirir. Ancaq bəzi simvolları ədədi formata çevirmək qərarına gəlsəniz, tərcüməçi sizə bir səhv verəcəkdir.

Məktublar rəqəm deyil!

Bu qədər sadə bir şəkildə “Dildə giriş və çıxış Python«

Faylların yazılması və oxunması

Open () funksiyası bir fayl obyekti qaytarır və əksər hallarda iki dəlil ilə istifadə olunur: açıq (file_name, rejimi) .

Birinci parametr, fayl adını ehtiva edən bir simdir. İkincisi, faylı necə istifadə edəcəyinizi izah edən bir neçə simvol olan başqa bir sətirdir. Parametr dəyəri rejimi fayl yalnız oxumaq üçün açıqdırsa 'r' simvolu ola bilər, 'w' yalnız yazmaq üçün açıqdır (eyni adlı bir mövcud sənəd silinəcəkdir) və 'a' əlavə etmək üçün açıqdır: hər hansı bir məlumat avtomatik olaraq yazılır sonuna əlavə olunur. 'r +' faylı həm oxumaq, həm də yazmaq üçün açır. Parametr rejimi isteğe bağlı: əgər buraxılıbsa, 'r' -ə bərabər olduğu qəbul edilir.

Adi vəziyyətdə, fayllar açılır mətn rejimi (mətn rejimi) - bu, bir fayldan oxuduğunu və müəyyən bir kodlaşdırmada bir fayl sətirinə yazıldığın deməkdir (standart olaraq istifadə olunur Utf-8) Simvol b 'fayl rejiminə əlavə etsəniz, fayl açılır ikili rejim (ikili rejim): indi məlumatlar ikili obyektlər şəklində oxunur və yazılır. Bu rejim mətn olmayan bütün fayllar üçün istifadə edilməlidir.

Mətn rejimindən istifadə edərkən, bütün sətir sonları, standart olaraq, platforma ( n Unix-də, r n Windows-da) fayldan oxuyarkən n xarakterinə kəsilir və n-dan xüsusi bir görünüşə çevrilir. bir sənəd yazarkən platformalar. Fayl məlumatlarındakı səhnə arxasında dəyişikliklər mətn sənədləri vəziyyətində düzgün işləyir, lakin JPEG və ya EXE kimi fayllarda ikili məlumatları korlayır. Bu cür faylları oxuyarkən və yazarkən ikili rejimdən istifadə etmək üçün diqqətli olun.

Fayl obyekt metodları

Aşağıdakı nümunələr f adlı bir fayl obyektinin əvvəlcədən yaradıldığını güman edir.

Bir faylın məzmununu oxumaq üçün f.read (ölçüsü) - funksiya müəyyən bir miqdarda məlumat oxuyur və onu sətir və ya bayt obyekti kimi qaytarır. ölçüsü - isteğe bağlı rəqəmli parametr. Əgər ölçüsü buraxılmış və ya mənfi olduqda, faylın bütün məzmunu oxunacaq və geri qaytarılacaqdır, əgər fayl kompüterinizin RAM-dan iki dəfə böyükdürsə, bu problemin həlli vicdanınızda qalır. Əks təqdirdə, maksimum oxunacaq və geri qaytarılacaqdır. ölçüsü bayt Faylın sonuna çatdısa, f.read () boş bir sətri ().

f.readline () fayldan bir sətir oxuyur, yeni satır simvolu ( n) oxunan sətrin sonunda qalır və faylın son sətirini oxuyarkən yalnız boşdursa, boş bir sətirlə oxuyanda olmur. Bununla əlaqədar olaraq, qaytarılma dəyəri birmənalı olur: f.readline () boş bir sətri qaytarırsa, faylın sonu çatır, eyni zamanda ' n' ilə təmsil olunan boş sətirdə yalnız bir yeni xətt simvolu var.

f.readlines (), faylda olan bütün məlumat sətirlərini ehtiva edən bir siyahını qaytarır. İsteğe bağlı hint_size parametri ötürülərsə, funksiya sənəddən bayt sayını, əlavə olaraq müəyyən sayda bayt əlavə edib, xətti tamamlamaq üçün kifayətdir və nəticədən sətirlərin siyahısını təşkil edir. Funksiya çox vaxt daha səmərəli istifadə olunur (fayl tamamilə yaddaşa yüklənmir) böyük sənədlərin ardıcıl oxunması. Yalnız tam (tamamlanmış) satırlar geri qaytarılacaqdır.

Alternativ bir xətt oxu, bir fayl obyekti ilə döngə etməkdir. Tez, yaddaş səmərəlidir və nəticədə sadə bir kod var:

Alternativ bir üsul daha sadədir, ancaq baş verənlərə incə bir nəzarət təmin etmir. Bu metodların hər ikisi də müxtəlif yollarla xətt tamponlama ilə işləndiyindən, qarışdırılmamalıdır.

f. yazısimli) məzmunu yazır strings bir faylı və yazılmış bayt sayını qaytarır.

Fayldan bir simli fərqli bir şey yazmaq üçün əvvəlcə bir şeyi sətirə çevirməlisiniz:

f.tell (), faylın əvvəlindən baytla ölçülən f sənədindəki cari vəziyyəti əks etdirən tam ədəd qaytarır. Bir fayl obyektinin yerini dəyişdirmək üçün f.seek (yerdəyişmə, haradan) Mövqe istinad nöqtəsinə ofset əlavə etməklə hesablanır, istinad nöqtəsi parametrdən seçilir haradan . Parametr dəyəri 0 haradan faylın əvvəlindən ofseti ölçür, 1 dəyəri sənəddəki mövcud mövqeyi tətbiq edir və 2 bir dəyəri sənədin sonunu istinad nöqtəsi kimi istifadə edir. Parametr haradan sənədin başlanğıcını bir istinad nöqtəsi olaraq istifadə edərək buraxıla bilər və standart olaraq 0 olaraq təyin edilə bilər.

Mətn sənədləri ilə işləyərkən (rejim xəttində b işarəsi olmadan açılır), axtarışa yalnız faylın əvvəlindən icazə verilir (axtar (0, 2) istifadə edərək faylın sonuna keçmək istisna olmaqla).

Fayldakı bütün hərəkətləri bitirdikdən sonra f.close () ilə əlaqə qurun və onu açmaq üçün istifadə olunan bütün sistem mənbələrini boşaltın. F.close () çağırdıqdan sonra fayl obyektindən istifadə etmək üçün edilən bütün cəhdlər istisna olacaqdır.

Fayl obyektləri ilə işləyərkən açar sözlə istifadə etmək yaxşı təcrübə hesab olunur. Bu metodun üstünlüyü, blokun icra edildikdən sonra və ya icra zamanı bir istisna edildiyi təqdirdə faylın hər zaman düzgün bağlanmasıdır. Bundan əlavə, ortaya çıxan kod bloklarla ekvivalent formadan daha qısadır cəhd edin - nəhayət :

Fayl obyektlərində tez-tez istifadə olunmayan isatty () və truncate () kimi bir neçə əlavə metod mövcuddur, fayl obyektlərinə daha dolğun baxmaq üçün Kitabxana arayışına baxın.

Turşu modulu

Sətirlər asanlıqla bir sənəddən yazıla və oxuya bilər. Rəqəmlər vəziyyətində bir az daha çox səy göstərməlisiniz: oxu () metodu yalnız '123' şəklindən bir simli götürən və ədədi dəyərini geri qaytarmış int () kimi bir funksiyaya keçməli olduğunuz xətləri geri qaytarır. Ancaq siyahılar, lüğətlər və ya sinif nümunələri kimi daha mürəkkəb məlumat növlərini qorumaq istəyirsinizsə, işlər bir az çaşdırıcı olur.

Proqramçını mürəkkəb məlumat növləri üçün kod yazmaq və debugunu daim yazmağa məcbur etmək əvəzinə, Python turşu adlı standart bir modul təqdim edir. Bu, hər hansı bir Python obyektini (hətta Python kodunun bəzi formalarını da) götürə biləcək və onu simli nümayəndəliyə çevirə biləcək böyük bir moduldur: bu proses adlanır konservasiya (alma) Bir obyekti simli nümayəndəliyindən bərpa etmək deyilir de-qorunması (açmaq): obyekti izah edən bir xətt bir faylı qeyd edə bilər, bəzi məlumatlara əlavə edilə bilər və ya şəbəkə bağlantısı ilə uzaq bir kompüterə göndərilə bilər.

İkili rejimdə (ikili rejimdə, "wb" parametri ilə) yazmaq üçün açıq bir neçə obyekt x və fayl obyekti varsa, ən sadə yolu qorumaq obyekt bir kod xətti tələb edir:

F-i oxumaq üçün açılan sənədin obyekti olması şərtilə yenidən qorumaq üçün (həmçinin 'rb' parametri ilə ikili rejimdə):

(Zaman tətbiq olunan bu əməliyyatları yerinə yetirmək üçün seçimlər var de-qorunması birdən çox obyekt və ya qeyd etmək lazım olduqda konservləşdirilmiş məlumatları bir fayla göndərin, Kitabxana İstinadından turşu modulu üçün sənədlərə baxın.)

turşu digər proqramlar və ya eyni proqramın gələcək versiyaları tərəfindən yenidən istifadə edilə bilən Python obyektlərini yaratmaq üçün standart bir yoldur, bunun üçün texniki bir müddət var - davamlı obyekt (davamlı obyekt) Turşu tez-tez istifadə edildiyi üçün Python uzantılarının bir çox müəllifi matrislər kimi yeni məlumat tiplərinin düzgün ola biləcəyinə əmin olur konservləşdirilmişgüvənli.

Redaktor, Müəllif: Fred L. Drake Jr. (Fred L. Drake, Jr.) və başqaları

kolleksiyalar

Python-da sərin daxili məlumat növləri var, lakin bəzən onlar istədikləri kimi davranmırlar.

Xoşbəxtlikdən, Python daxili kitabxanasında rahat əlavə məlumat növləri olan bir kolleksiya modulu var:

Python'dakı bir obyektin içərisinə necə baxmaq və onun atributlarına baxmaq necə merak etdiniz? Əlbətdə düşündülər.

1 avqust saat 10: 00-da, Onlayn, pulsuz

Komanda satırından istifadə edin:

Bu Pythonda interaktiv bir sessiya zamanı, həm də işlədiyiniz obyektlərin və modulların dinamik öyrənilməsi üçün yararlı ola bilər.

$ pip emoji quraşdırın

Və cəhd etmək istəmədiyinizi iddia etməyin:

__future__ idxalından

Python-un populyarlığının nəticələrindən biri yeni versiyaların daim hazırlanması və buraxılmasıdır. Yeni versiyalar - yeni xüsusiyyətlər, lakin köhnəlmiş istifadə etsəniz sizin üçün deyil.

Ancaq hər şey o qədər də pis deyil. __Future__ modulu Python-un gələcək versiyalarının işləməsini idxal etməyə imkan verir. Sadəcə vaxt səyahət və ya sehr kimi:

Proqramçıların coğrafiyada gəzməsi çətin ola bilər. Ancaq geopiya modulu şeyləri asanlaşdırır:

$ pip quraşdırma geopiyası

Müxtəlif geokodlaşdırma xidmətlərinin API-lərini mücərrədləşdirməklə işləyir. Bu modul yerin tam ünvanını, uzunluğu və enini və hətta hündürlüyünü öyrənməyə imkan verir.

Həm də faydalı məsafə sinifinə malikdir. Rahat bir ölçü vahidində iki yer arasındakı məsafəni hesablayır.

Bir problemə bağlısınız və onun həllini xatırlaya bilmirsiniz? StackOverflow-a getmək lazımdır, ancaq terminaldan getmək istəmirsiniz?

Sonra bu əmr satırı vasitəsi olmadan edə bilməzsiniz:

$ pip howdoi quraşdırın

Hər hansı bir sual verin və o cavabını tapmağa çalışacaq:

Ancaq diqqətli olun: StackOverflow-dakı ən üst cavablardan kod çıxarır və həmişə faydalı məlumat vermir:

$ howdoi çıxış vim

Yoxlama modulu Pythonda pərdə arxasında baş verənləri başa düşmək üçün əlverişlidir. Öz metodlarını özünüz də çağıra bilərsiniz!

Aşağıdakı öz mənbə kodunu çıxarmaq üçün inspect.getsource () metodundan istifadə edir. Müayinə.getmodule () metodu, təyin olunduğu modulu çıxarmaq üçün də istifadə olunur.

Son əmr yerləşdiyi sətir nömrəsini göstərir:

Əlbəttə ki, bu mənasız istifadədən əlavə, bu modul kodunuzun nə etdiyini başa düşmək üçün faydalı ola bilər. Bundan əlavə, özünü sənədləşdirmə kodu yazmaq üçün istifadə edə bilərsiniz.

Jedi kitabxanası kod doldurma və təhlil üçün hazırlanmışdır. Kod yazma prosesini sürətləndirir və daha məhsuldar edir.

IDE'nizi inkişaf etdirmirsinizsə, deməli Jedi'nin redaktor uzantısı olaraq istifadə edilməsində daha çox maraqlı olacaqsınız. Xoşbəxtlikdən, artıq çox seçim var.

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.

Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.

Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.

Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs :

Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.

Прим.перев. Bütün arqumentləri başqa bir funksiyaya ötürən sarmalayıcı funksiyaları yazarkən də yararlı ola bilər.

Siyahı generatorları

Siyahıları tez yaratmağı təmin edən başqa bir sərin Python xüsusiyyəti. Belə ifadələr demək olar ki, təbii bir dil kimi oxunan təmiz kodu yazmağı asanlaşdırır:

Python funksional proqramlaşdırma üçün yaxşı quraşdırılmış dəstəyə malikdir. Ən faydalı xüsusiyyətlərdən biri xəritə () funksiyasıdır, xüsusən lambda funksiyaları ilə birlikdə:

Burada xəritə () hər bir x elementdə sadə bir lambda funksiyasını tətbiq edir və siyahı və ya başlıq kimi bəzi iterable obyektə çevrilə bilən xəritə obyektini qaytarır.

qəzet3k

Əgər hələ onunla görüşməmisinizsə, o zaman qəzet modulunun sizi partlatmasına hazır olun.

Bir çox fərqli mənbədən məqalə və əlaqəli meta məlumatları çıxarmağa imkan verir. Şəkillər, mətn və müəllif adlarını çıxara bilərsiniz.

Hətta quraşdırılmış NLP funksionallığına malikdir.

Buna görə də, növbəti layihənizdə veb kazıma üçün BeautifulSoup ya da başqa bir kitabxanadan istifadə etmək istəyirdinizsə, vaxt və səyinizə qənaət edib qəzet yazmaq daha yaxşıdır:

$ pip quraşdırma qəzet3k

Operator həddindən artıq yüklənmə

Python, operatorun həddən artıq yüklənməsinə dəstək verir - bütün həqiqi kompüter elm adamlarının danışdıqlarından biridir.

Əslində fikir sadədir. Heç Python'un həm nömrə əlavə etməsi və həm də əlaqələndirici simlər üçün + operatorundan istifadə etməyinizə icazə verdiyinizi görəsən? Bunun arxasında yalnız operatorun həddən artıq yüklənməsi dayanır.

Hər hansı bir şəkildə standart operator simvollarından istifadə edən obyektləri təyin edə bilərsiniz. Bu, onları işlədiyiniz obyektlərin kontekstində tətbiq etməyə imkan verir:

Standart Python funksiyası print () hiylə işlədir. Ancaq hansısa böyük iç içə bir obyekti göstərməyə çalışarsanız nəticə çox gözəl görünməyəcəkdir.

Standart çap kitabxanasındakı modul (olduqca çap) burada xilasetmə işinə gəlir. Bundan istifadə edərək mürəkkəb bir quruluşa sahib olan obyektləri oxunaqlı formada göstərə bilərsiniz.

Xüsusi məlumat strukturları ilə işləyən hər hansı bir Python geliştiricisi üçün olmalıdır:

Python, Queue standart modulunun istifadəsinə kömək etdiyi çox iplik dəstəkləyir.

Belə bir məlumat quruluşunu növbə şəklində həyata keçirməyə imkan verir. Sıralar, müəyyən bir qaydaya uyğun olaraq elementləri əlavə və geri almağa imkan verir.

"Birincisi, birincisi", FİFO növbələri əlavə olunmuş qaydada obyektləri əldə etməyə imkan verir. "Sonuncu, əvvəlcədən" ("sonuncu, əvvəlcədən", LIFO) növbələrdən son əlavə edilmiş obyektləri əldə edə bilərsiniz.

Nəhayət, prioritet növbələr, obyektləri sıralama qaydasına görə geri almağa imkan verir.

Burada çox yivli Python proqramlaşdırmasında növbələrin istifadəsi nümunəsini görə bilərsiniz.

Bir sinif və ya bir obyekt təyin edərkən, obyektin simli olaraq təqdim edilməsinin "rəsmi" yolunu əlavə etmək faydalıdır. Məsələn:

Bu diskussiyanı xeyli asanlaşdırır. Budur, etməlisiniz.

Təxminən. __Repr __ () metodu proqramçı üçün nəzərdə tutulmuş və diskussiya zamanı istifadə etmək üçün rahat olan bir simli nümayəndəliyi təyin etməyə imkan verir və __str __ () metodu proqram interfeysində göstərilə bilən istifadəçi dostu sim təmsilçiliyini təyin etməyə imkan verir.

Python əla bir yazı dilidir. Lakin bəzən standart os və subproses kitabxanaları yalnız baş ağrılarına səbəb olur.

Sh kitabxanası gözəl bir alternativ ola bilər.

Hər hansı bir proqramı adi Python-dan istifadə edərək müxtəlif tapşırıqların avtomatlaşdırılması üçün faydalı olan adi bir funksiya adlandırmağa imkan verir:

Təxminən. Sh kitabxanası yalnız Linux və macOS platformalarını dəstəkləyir; Windows-da işləmək üçün başqa bir vasitə axtarmalısınız.

Annotasiyalar yazın

Python dinamik tipik bir dildir. Dəyişənləri, funksiyaları, sinifləri və s. Təyin edərkən məlumatların növünü göstərməyə ehtiyacınız yoxdur.

Bu inkişaf prosesini sürətləndirir. Ancaq sadə bir uyğunsuzluq səbəb olan bir iş vaxtı səhv qədər azdır.

Python 3.5-dən bəri, bir funksiyanı təyin edərkən tip əlavə əlavə edə bilərsiniz:

Hətta tip ləqəbləri də müəyyənləşdirə bilərsiniz:

Onların istifadəsi isteğe bağlı olsa da, tip izahatların köməyi ilə kodu daha aydın başa düşmək olar.

Ayrıca TypeError səhvlərini tutmaq üçün tip yoxlama vasitələrindən istifadə etməyə imkan verir.

Bu uuid standart modulu bir UUID (universal nadir identifikator) yaratmaq üçün sürətli və asan bir yoldur.

Beləliklə, demək olar ki, unikal olacaq təsadüfi 128-bit bir nömrə yaradırıq.

2¹²²-dən çox mümkün UUID var. Bu, 5 milyarddan çox və ya 5.000.000.000.000.000.000.000.000.000.000.000.000-dən çoxdur.

Verilən dəstdə dublikat tapmaq ehtimalı olduqca azdır. Bir trilyon UUID-lə belə, onların arasında bir dublikatın olması ehtimalı bir milyarddan bir qədər azdır.

İki kod xətti üçün pis deyil.

Virtual mühit

Tez-tez Python proqramçıları eyni anda bir neçə layihə üzərində işləyirlər. Təəssüf ki, bəzən iki layihə eyni asılılığın müxtəlif versiyalarından asılıdır. Hansı birini quraşdırmaq lazımdır?

Xoşbəxtlikdən, Python hər iki dünyanın ən yaxşısını alan virtual mühitlərə dəstək verir. Əmr əmrində daxil edin:

İndi eyni maşında Python-un fərqli müstəqil versiyalarına sahib ola bilərsiniz.

Wikipedia tamamilə pulsuz bir məlumat mənbəyinə daxil olmağa imkan verən sərin bir API var.

Wikipedia modulu bu API-yə girişi demək olar ki, çox rahat edir:

Həqiqi bir sayt kimi, modul səhifələrin qeyri-müəyyənliyini həll etmək, təsadüfi səhifə əldə etmək və hətta bağışlamaq () metodu ilə bir çox dildə dəstək verir.

Yumor Pythonun əsas xüsusiyyətidir. Sonda dil İngilis komediya şousu Monty Python'un Uçan Sirk adını aldı. Rəsmi sənədlərin bir çox yerində şounun ən məşhur epizodlarına istinadlar tapa bilərsiniz.

Əlbəttə, yumor hissi sənədləşmə ilə bitmir. Aşağıdakı sətirə girməyə çalışın:

Özünüz qalın, Python. Özünüz qalın.

YAML "YAML işarələmə dili deyildir" deməkdir ("YAML işarə dili deyil"). JSON'un üstün bir məlumatı olan bir məlumat biçimlendirme dildir.

JSON-dan fərqli olaraq, YAML daha mürəkkəb obyektləri saxlaya və öz elementlərinə istinad edə bilər. Ayrıca orada şərhlər yaza bilərsiniz, bu da YAML-i konfiqurasiya faylları üçün uyğun edir.

PyYAML modulu sizə Pythonda YAML istifadə etməyə imkan verir. Bunu belə quraşdıra bilərsiniz:

$ pip quraşdırma pyyaml

Və sonra idxal:

PyYAML hər hansı bir Python obyektlərini və istənilən xüsusi sinif nümunələrini saxlamağa imkan verir.

Nəhayət, başqa bir sərin şey. Heç iki siyahıdan bir lüğət yaratmağa ehtiyac varmı?

Daxili zip () funksiyası bir neçə iterable obyekti götürür və bir sıra ardıcıllıqla qaytarır. Hər bir qoşa obyektlərin elementlərini indekslərinə görə qruplaşdırır.

Zip (*) istifadə edərək tərs tərtib edə bilərsiniz.

Və hansı üsulları və ya faydalı kitabxanaları bilirsiniz? Şərhlərdə paylaşın.

  1. 0, 0.0 ↩
  2. 0, 1.0 ↩
  3. 0, 1.0 ↩
  4. 0, -2.0 ↩

Xidmətləri fərdiləşdirmək üçün Yandex məlumatlarınızı və maşın öyrənməyinizi necə istifadə edir - YaC 2019-u oxuyun və izləyin.

Pin
Send
Share
Send
Send