Programavimas

Kas yra „Python“? Galingas, intuityvus programavimas

Nuo 1991 m. „Python“ programavimo kalba buvo laikoma spragų užpildymo priemone, kuria galima rašyti scenarijus, „automatizuojančius nuobodžius dalykus“ (kaip sakoma vienoje populiarioje knygoje apie „Python“ mokymąsi) arba greitai prototipuoti programas, kurios bus įdiegtos kitomis kalbomis. .

Tačiau per pastaruosius kelerius metus „Python“ tapo pirmos klasės piliečiu kuriant šiuolaikinę programinę įrangą, valdant infrastruktūrą ir analizuojant duomenis. Tai nebėra antrinio kambario paslaugų kalba, bet pagrindinė interneto programų kūrimo ir sistemų valdymo jėga ir pagrindinis didžiųjų duomenų analizės ir mašininio intelekto sprogimo variklis.

Susijęs vaizdo įrašas: Kaip „Python“ palengvina programavimą

Puikiai IT, „Python“ supaprastina daugybę rūšių darbų, pradedant sistemos automatizavimu ir baigiant darbais pažangiose srityse, tokiose kaip mašininis mokymasis.

Pagrindiniai „Python“ privalumai

„Python“ sėkmė siejasi su keletu privalumų, kuriuos teikia tiek pradedantiesiems, tiek ekspertams.

„Python“ lengva išmokti ir naudoti

Pačios kalbos ypatybių skaičius yra nedidelis, o norint sukurti savo pirmąsias programas reikia palyginti mažai laiko ar pastangų. „Python“ sintaksė sukurta taip, kad būtų suprantama ir paprasta. Dėl šio paprastumo „Python“ yra ideali mokymo kalba, ir tai leidžia naujokams greitai ją pasirinkti. Todėl kūrėjai praleidžia daugiau laiko galvodami apie problemą, kurią bando išspręsti, ir mažiau laiko galvodami apie kalbos sudėtingumą ar iššifruotą kitų paliktą kodą.

„Python“ yra plačiai pritaikytas ir palaikomas

„Python“ yra ir populiarus, ir plačiai naudojamas, nes aukštas reitingas apklausose, tokiose kaip „Tiobe Index“, ir didelis „GitHub“ projektų, naudojančių „Python“, patvirtinimas. „Python“ veikia visose pagrindinėse operacinėse sistemose ir platformose, taip pat daugumoje mažesnių. Daugelis pagrindinių bibliotekų ir API valdomų paslaugų turi „Python“ susiejimus ar paketus, leidžiančius „Python“ laisvai sąveikauti su tomis paslaugomis arba tiesiogiai naudotis tomis bibliotekomis.

Python nėra „žaislų“ kalba

Nors scenarijus ir automatika apima didelę dalį „Python“ naudojimo atvejų (apie tai vėliau), „Python“ taip pat naudojamas profesionalios kokybės programinei įrangai kurti tiek kaip atskiras programas, tiek kaip žiniatinklio paslaugas. „Python“ gali būti ne tas greičiausias kalba, bet tai, ko jai trūksta greičio, kompensuoja universalumą.

„Python“ vis juda į priekį

Kiekviena „Python“ kalbos peržiūra suteikia naujų naudingų funkcijų, kad neatsiliktų nuo šiuolaikinės programinės įrangos kūrimo praktikos. Pavyzdžiui, asinchroninės operacijos ir korutinos dabar yra standartinės kalbos dalys, todėl lengviau rašyti „Python“ programas, atliekančias vienu metu atliekamą apdorojimą.

Kam naudojamas „Python“

Pats pagrindinis „Python“ naudojimo atvejis yra scenarijų ir automatizavimo kalba. „Python“ nėra tik „shell“ scenarijų ar paketinių failų pakaitalas; jis taip pat naudojamas sąveikos su žiniatinklio naršyklėmis ar programų GUI automatizavimui arba sistemos aprūpinimui ir konfigūravimui tokiuose įrankiuose kaip „Ansible“ ir „Salt“. Tačiau scenarijus ir automatizavimas yra tik „Python“ ledkalnio viršūnė.

Gbendros programos programavimas su „Python“

Naudodami „Python“ galite sukurti tiek komandų eilutės, tiek kelių platformų GUI programas ir įdiegti jas kaip savarankiškus vykdomuosius failus. „Python“ neturi natūralios galimybės iš scenarijaus generuoti atskirą dvejetainį failą, tačiau tam pasiekti galima naudoti trečiųjų šalių paketus, pvz., „Cx_Freeze“ ir „PyInstaller“.

Duomenų mokslas ir mašininis mokymasis naudojant „Python“

Įmantri duomenų analizė tapo viena greičiausiai besikeičiančių IT sričių ir vienu iš „Python“ žvaigždžių naudojimo atvejų. Didžioji dauguma bibliotekų, naudojamų duomenų mokslui ar mašininiam mokymuisi, turi „Python“ sąsajas, todėl kalba yra populiariausia aukšto lygio komandų sąsaja, skirta mašininio mokymosi bibliotekoms ir kitiems skaitiniams algoritmams.

Žiniatinklio paslaugos ir „RESTful“ API „Python“

Gimtosios „Python“ bibliotekos ir trečiųjų šalių žiniatinklio sistemos suteikia greitus ir patogius būdus sukurti viską, pradedant paprastomis REST API keliose kodo eilutėse, ir baigiant pilnomis, duomenų valdomomis svetainėmis. Naujausiose „Python“ versijose yra stiprus asinchroninių operacijų palaikymas, leidžiantis svetainėms tvarkyti dešimtis tūkstančių užklausų per sekundę tinkamomis bibliotekomis.

Metaprogramavimas ir kodų generavimas „Python“

„Python“ kalboje viskas yra objektas, įskaitant „Python“ modulius ir pačias bibliotekas. Tai leidžia „Python“ veikti kaip labai efektyvus kodų generatorius, leidžiantis rašyti programas, kurios manipuliuoja jų pačių funkcijomis ir turi tokį išplėtimo būdą, kurį būtų sunku ar neįmanoma pasirinkti kitomis kalbomis.

„Python“ taip pat gali būti naudojamas kodų generavimo sistemoms, tokioms kaip LLVM, valdyti, norint efektyviai kurti kodus kitomis kalbomis.

„Klijuoti kodą“ „Python“

„Python“ dažnai apibūdinamas kaip „klijų kalba“, tai reiškia, kad jis gali leisti veikti skirtingiems kodams (paprastai bibliotekoms su C kalbos sąsajomis). Šiuo tikslu jis naudojamas duomenų moksle ir mašininiame mokyme, tačiau tai tik vienas bendros idėjos įsikūnijimas. Jei turite programų ar programų domenų, kuriuos norėtumėte susikabinti, bet negalite tiesiogiai kalbėtis tarpusavyje, galite juos prijungti naudodami „Python“.

Kur trūksta „Python“

Taip pat verta atkreipti dėmesį į „Python“ užduočių rūšis ne gerai tinka.

„Python“ yra aukšto lygio kalba, todėl ji netinka programuoti sistemos lygiu - įrenginio tvarkyklės ar OS branduoliai nėra vaizde.

Tai taip pat nėra ideali situacijoms, kuriose to reikia tarp platformos atskiros dvejetainės programos. Galite sukurti atskirą „Python“ programą, skirtą „Windows“, „MacOS“ ir „Linux“, bet ne elegantiškai ar paprastai.

Galiausiai, „Python“ nėra geriausias pasirinkimas, kai greitis yra absoliutus prioritetas kiekviename programos aspekte. Tam jums geriau naudotis C / C ++ ar kita tokio kalibro kalba.

Kaip „Python“ daro paprastą programavimą

„Python“ sintaksė skirta būti skaitoma ir švari, mažai apsimetinėjant. Standartinis „labas pasaulis“ „Python 3.x“ yra ne kas kita:

spausdinti („Labas pasaulis!“)

„Python“ pateikia daug sintaksinių elementų, kurie glaustai išreiškia daugybę bendrų programų srautų. Apsvarstykite programos pavyzdį, skirtą eilutėms skaityti iš teksto failo į sąrašo objektą, kiekvienai eilutei nuimant baigiamąjį naujos eilutės simbolį:

su open (‘myfile.txt’) kaip my_file:

file_lines = [x.rstrip (‘\ n’) x „my_file“]

su / kaip statyba yra a konteksto valdytojas, kuris suteikia efektyvų būdą nustatyti objektą kodo blokui ir išmesti jį už to bloko ribų. Šiuo atveju objektas yra my_file, iš karto su atviras() funkcija. Tai užima kelių katilinės eilučių vietą, kad atidarytumėte failą, perskaitytumėte iš jo atskiras eilutes, tada uždarytumėte.

[x… x x my_file] konstrukcija yra dar viena „Python“ savitumas, sąrašo supratimas. Tai leidžia elementui, kuriame yra kitų elementų (čia, my_file ir jame esančios eilutės) turi būti kartojamos, ir tai leidžia kiekvienam iteruotam elementui (tai yra kiekvienam x) bus tvarkomi ir automatiškai pridedami prie sąrašo.

Tu galėjo parašyk tokį dalyką kaip oficialų dėl… kilpa „Python“, panašiai kaip jūs darytumėte kita kalba. Esmė ta, kad „Python“ turi būdą ekonomiškai išreikšti tokius dalykus kaip kilpos, kurie kartojasi keliuose objektuose ir atlieka paprastą kiekvieno kilpos elemento operaciją, arba dirbti su dalykais, kuriems reikia aiškaus išaiškinimo ir šalinimo.

Tokios konstrukcijos leidžia „Python“ kūrėjams išlaikyti pusiausvyrą ir įskaitomumą.

Kitos „Python“ kalbos ypatybės skirtos papildyti įprasto naudojimo atvejus. Dauguma šiuolaikinių objektų tipų - pavyzdžiui, „Unicode“ eilutės - yra įmontuotos tiesiai į kalbą. Duomenų struktūros, pvz., Sąrašai, žodynai (t. Y. Hashmaps arba raktų vertės saugyklos), rinkiniai (nekintamiems objektų rinkiniams saugoti) ir rinkiniai (unikalių objektų kolekcijoms saugoti), yra prieinami kaip standartiniai leidiniai.

„Python 2“ ir „Python 3“

„Python“ yra dviejų versijų, kurios yra pakankamai skirtingos, kad sukeltų daug naujų vartotojų. „Python 2.x“, senesnis „senas“ filialas, ir toliau bus palaikomas (t. Y. Gaukite oficialius atnaujinimus) iki 2020 m., Ir po to jis gali neoficialiai išlikti. „Python 3.x“, dabartinis ir būsimas kalbos įsikūnijimas, turi daug naudingų ir svarbių funkcijų, kurių nerasta „Python 2.x“, pvz., Naujos sintaksės funkcijos (pvz., „Valso operatorius“), geresni lygiagrečių valdymai ir dar daugiau efektyvus vertėjas.

„Python 3“ priėmimą ilgiausiai sulėtino santykinis trečiųjų šalių bibliotekų palaikymo trūkumas. Daugelis „Python“ bibliotekų palaikė tik „Python 2“, todėl buvo sunku perjungti. Tačiau per pastaruosius porą metų bibliotekų, palaikančių tik „Python 2“, skaičius sumažėjo; visos populiariausios bibliotekos dabar yra suderinamos tiek su „Python 2“, tiek su „Python 3“. Šiandien „Python 3“ yra geriausias pasirinkimas naujiems projektams; nėra jokios priežasties pasirinkti „Python 2“, nebent neturite kito pasirinkimo. Jei esate įstrigę „Python 2“, turite savo žinioje įvairias strategijas.

„Python“ bibliotekos

„Python“ sėkmė priklauso nuo turtingos pirmosios ir trečiosios šalies programinės įrangos ekosistemos. „Python“ naudinga ir tvirta standartinė biblioteka, ir gausus lengvai gaunamų ir lengvai naudojamų trečiųjų šalių kūrėjų bibliotekų asortimentas. „Python“ praturtėjo dešimtmečių plėtra ir indėlis.

Standartinėje „Python“ bibliotekoje yra modulių, skirtų įprastoms programavimo užduotims - matematikai, eilučių tvarkymui, prieigai prie failų ir katalogų, tinklų kūrimui, asinchroninėms operacijoms, sriegiams, daugiaprocesiniam valdymui ir kt. Bet tai taip pat apima modulius, kurie valdo įprastas, aukšto lygio programavimo užduotis, reikalingas šiuolaikinėms programoms: skaityti ir rašyti struktūrinius failų formatus, tokius kaip JSON ir XML, manipuliuoti suglaudintais failais, dirbti su interneto protokolais ir duomenų formatais (tinklalapiai, URL, el. Paštas). Daugumą bet kokių išorinių kodų, kuriuose pateikiama su C suderinama užsienio funkcijų sąsaja, galima pasiekti naudojant „Python“ ctypes modulis.

Numatytasis „Python“ paskirstymas taip pat teikia elementarią, bet naudingą kelių platformų GUI biblioteką per „Tkinter“ ir įterptą „SQLite 3“ duomenų bazės kopiją.

Tūkstančiai trečiųjų šalių bibliotekų, kurias galima rasti per „Python Package Index“ (PyPI), yra stipriausias „Python“ populiarumo ir universalumo pavyzdys.

Pavyzdžiui:

  • „BeautifulSoup“ biblioteka teikia „viskas viename“ įrankių rinkinį, skirtą HTML - net ir keblios, sugadintos HTML - nuskaitymui ir duomenims išgauti.
  • Užklausos leidžia nesunkiai ir paprastai dirbti su HTTP užklausomis.
  • Tokios struktūros kaip „Flask“ ir „Django“ leidžia greitai plėtoti žiniatinklio paslaugas, apimančias paprastus ir pažangesnius naudojimo atvejus.
  • Keletą debesų paslaugų galima valdyti naudojant „Python“ objektų modelį naudojant „Apache Libcloud“.
  • „NumPy“, „Pandas“ ir „Matplotlib“ paspartina matematikos ir statistikos operacijas ir leidžia lengvai kurti duomenų vizualizacijas.

Pythono kompromisai

Kaip ir C #, „Java“ ir „Go“, „Python“ turi šiukšlių surinktą atminties valdymą, o tai reiškia, kad programuotojui nereikia diegti kodo objektams stebėti ir išleisti. Paprastai šiukšlių surinkimas vyksta automatiškai fone, tačiau jei tai kelia našumo problemą, galite ją suaktyvinti rankiniu būdu arba visiškai išjungti arba paskelbti ištisus objektų, kuriems netaikomas šiukšlių surinkimas, regionus kaip našumo pagerinimą.

Svarbus „Python“ aspektas yra jo dinamiškumas. Viskas kalboje, įskaitant funkcijas ir pačius modulius, tvarkoma kaip objektai. Tai vyksta greičio sąskaita (apie tai vėliau), tačiau žymiai lengviau rašyti aukšto lygio kodą. Kūrėjai gali atlikti sudėtingus objektų manipuliavimus tik keliomis instrukcijomis ir netgi traktuoti programos dalis kaip abstrakcijas, kurias prireikus galima pakeisti.

„Python“ naudojimas reikšmingą tarpą buvo minimas kaip vienas geriausių ir blogiausių Python atributų. Antroje žemiau esančioje eilutėje esanti įtrauka skirta ne tik skaitomumui; tai yra „Python“ sintaksės dalis. „Python“ vertėjai atmes programas, kuriose nenaudojama tinkama įtrauka valdymo srautui nurodyti.

su open (‘myfile.txt’) kaip my_file:

file_lines = [x.rstrip (‘\ n’) x „my_file“]

Dėl sintaksinės baltos erdvės nosys gali susiraukšlėti, o kai kurie žmonės atmeta „Python“ dėl šios priežasties. Tačiau griežtos įtraukos taisyklės praktiškai yra mažiau įkyrus, nei gali atrodyti teoriškai, net turint kuo mažiau kodo redaktorių, o rezultatas yra švaresnis ir labiau įskaitomas kodas.

Kitas galimas išjungimas, ypač tiems, kurie ateina iš tokių kalbų kaip C ar Java, yra tai, kaip „Python“ tvarko kintamojo rinkimą. Pagal numatytuosius nustatymus „Python“ naudoja dinaminį arba „anties“ spausdinimą - puikiai tinka greitai koduoti, tačiau gali būti problematiška didelėse kodų bazėse. Be to, „Python“ neseniai pridėjo pasirinktinių kompiliavimo laiko tipo užuominų palaikymą, todėl projektai, kuriems gali būti naudingas statinis spausdinimas, gali jį naudoti.

Ar „Python“ yra lėtas? Nebūtinai

Vienas įprastas įspėjimas apie „Python“ yra tas, kad jis lėtas. Objektyviai tai tiesa. „Python“ programos paprastai veikia daug lėčiau nei atitinkamos programos C / C ++ ar Java. Kai kurios „Python“ programos bus lėtesnės didumo tvarka ar daugiau.