Programmēšana

Kas ir Python? Jaudīga, intuitīva programmēšana

1991. gadā Python programmēšanas valoda tika uzskatīta par nepilnību aizpildītāju - veidu, kā rakstīt skriptus, kas “automatizē garlaicīgo saturu” (kā izteicās viena populāra grāmata par Python apgūšanu) vai ātri prototipēt lietojumprogrammas, kuras tiks ieviestas citās valodās .

Tomēr pēdējo gadu laikā Python ir kļuvis par pirmās klases pilsoni mūsdienu programmatūras izstrādē, infrastruktūras pārvaldībā un datu analīzē. Tā vairs nav otrā līmeņa komunālā valoda, bet gan būtisks spēks tīmekļa lietojumprogrammu izveidē un sistēmu pārvaldībā, kā arī galvenais lielo datu analīzes un mašīnizlūkošanas sprādziena virzītājspēks.

Saistītais video: kā Python atvieglo programmēšanu

Ideāli piemērots IT, Python vienkāršo daudzu veidu darbu, sākot no sistēmas automatizācijas līdz darbam tādās modernās jomās kā mašīnmācīšanās.

Galvenās Python priekšrocības

Python panākumi ir saistīti ar vairākām priekšrocībām, kuras tā sniedz gan iesācējiem, gan ekspertiem.

Python ir viegli iemācīties un izmantot

Funkciju skaits pašā valodā ir neliels, un tas prasa salīdzinoši maz laika vai pūļu, lai izveidotu savas pirmās programmas. Python sintakse ir veidota tā, lai tā būtu lasāma un vienkārša. Šī vienkāršība padara Python par ideālu mācību valodu, un tā ļauj jaunpienācējiem to ātri uzņemt. Rezultātā izstrādātāji tērē vairāk laika, domājot par problēmu, kuru mēģina atrisināt, un mazāk laika domājot par valodas sarežģītību vai citu atstāta koda atšifrēšanu.

Python ir plaši pieņemts un atbalstīts

Python ir gan populārs, gan plaši izmantots, jo augstais reitings tādās aptaujās kā Tiobe indekss un liels skaits GitHub projektu, kas izmanto Python, apliecina. Python darbojas uz visām lielākajām operētājsistēmām un platformām, kā arī uz lielāko daļu mazāko. Daudzās galvenajās bibliotēkās un ar API darbinātajos pakalpojumos ir Python sasaistes vai ietinēji, ļaujot Python brīvi saskarties ar šiem pakalpojumiem vai tieši izmantot šīs bibliotēkas.

Python nav “rotaļlietu” valoda

Lai gan skriptu veidošana un automatizācija aptver lielu daļu Python lietojuma gadījumu (par to vēlāk), Python tiek izmantots arī profesionālas kvalitātes programmatūras veidošanai gan kā atsevišķas lietojumprogrammas, gan kā tīmekļa pakalpojumus. Python, iespējams, nav visātrāk valoda, bet tas, kas tai trūkst ātrumā, kompensē daudzpusību.

Python turpina virzīties uz priekšu

Katra Python valodas pārskatīšana pievieno jaunas noderīgas funkcijas, lai neatpaliktu no mūsdienu programmatūras izstrādes prakses. Piemēram, asinhronās operācijas un korutīnas tagad ir standarta valodas daļas, tādējādi atvieglojot tādu Python lietotņu rakstīšanu, kuras veic vienlaicīgu apstrādi.

Kāpēc tiek izmantots Python

Visvienkāršākais Python lietošanas gadījums ir skriptu un automatizācijas valoda. Python nav tikai čaulas skriptu vai pakešfailu aizstājējs; to izmanto arī, lai automatizētu mijiedarbību ar tīmekļa pārlūkprogrammām vai lietojumprogrammu GUI vai veiktu sistēmas nodrošināšanu un konfigurēšanu tādos rīkos kā Ansible un Salt. Bet skripti un automatizācija ir tikai aisberga virsotne ar Python.

General lietojumprogrammu programmēšana ar Python

Izmantojot Python, varat izveidot gan komandrindas, gan starpplatformu GUI lietojumprogrammas un izvietot tās kā patstāvīgus izpildāmos failus. Python nav dzimtā spēja ģenerēt atsevišķu bināru failu no skripta, taču to var izmantot trešo pušu pakotnēs, piemēram, cx_Freeze un PyInstaller.

Datu zinātne un mašīnmācīšanās ar Python

Sarežģīta datu analīze ir kļuvusi par vienu no visstraujāk virzošajām IT jomām un par vienu no Python zvaigžņu izmantošanas gadījumiem. Lielākajai daļai bibliotēku, kuras izmanto datu zinātnei vai mašīnmācībai, ir Python saskarnes, padarot valodu par populārāko augsta līmeņa komandu saskarni mašīnmācīšanās bibliotēkām un citiem skaitliskiem algoritmiem.

Tīmekļa pakalpojumi un RESTful API API Python

Python vietējās bibliotēkas un trešo pušu tīmekļa ietvari nodrošina ātrus un ērtus veidus, kā izveidot visu, sākot no vienkāršām REST API dažās koda rindiņās līdz pilnvērtīgām, ar datiem pamatotām vietnēm. Python jaunākajām versijām ir spēcīgs atbalsts asinhronām operācijām, ļaujot vietnēm apstrādāt desmitiem tūkstošu pieprasījumu sekundē ar pareizajām bibliotēkām.

Metaprogrammēšana un kodu ģenerēšana Python

Programmā Python viss šajā valodā ir objekts, ieskaitot Python moduļus un pašas bibliotēkas. Tas ļauj Python darboties kā ļoti efektīvam kodu ģeneratoram, ļaujot rakstīt lietojumprogrammas, kas manipulē ar viņu pašu funkcijām un kurām ir sava veida paplašināmība, kuru būtu grūti vai neiespējami izvilkt citās valodās.

Python var izmantot arī kodu ģenerēšanas sistēmu, piemēram, LLVM, vadīšanai, lai efektīvi izveidotu kodu citās valodās.

“Līmēšanas kods” Python

Python bieži tiek raksturots kā “līme valoda”, kas nozīmē, ka tas var ļaut dažādu kodu (parasti bibliotēku ar C valodas saskarnēm) sadarbībai. Tā tiek izmantota datu zinātnē un mašīnmācībā, taču tas ir tikai viens vispārējās idejas iemiesojums. Ja jums ir lietojumprogrammas vai programmu domēni, kurus vēlaties savienot, bet nevarat tieši sarunāties savā starpā, varat tos savienot, izmantojot Python.

Kur pietrūkst Python

Jāatzīmē arī Python uzdevumu veidi labi piemērots.

Python ir augsta līmeņa valoda, tāpēc tā nav piemērota sistēmas līmeņa programmēšanai - ierīces draiveri vai OS kodoli nav redzami.

Tas nav arī ideāli piemērots situācijām, kurās tas nepieciešams starpplatformu atsevišķie binārie faili. Jūs varētu izveidot atsevišķu Python lietotni Windows, MacOS un Linux, taču ne eleganti vai vienkārši.

Visbeidzot, Python nav labākā izvēle, ja ātrums ir absolūta prioritāte visos lietojumprogrammas aspektos. Šim nolūkam jums labāk ir izmantot C / C ++ vai citu šāda kalibra valodu.

Kā Python padara programmēšanu vienkāršu

Python sintakse ir domāta lasāmībai un tīrībai, ar nelielu izlikšanos. Standarta “sveika pasaule” Python 3.x versijā ir nekas cits kā:

drukāt (“Sveika pasaule!”)

Python nodrošina daudz sintaktisko elementu, lai īsi izteiktu daudzas kopīgas programmu plūsmas. Apsveriet programmas paraugu rindiņu lasīšanai no teksta faila saraksta objektā, pa ceļam atņemot katrai rindai tās beigu jaunās līnijas rakstzīmi:

ar atvērtu (‘myfile.txt’) kā my_file:

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

The ar / kā būvniecība ir a konteksta menedžeris, kas nodrošina efektīvu veidu, kā objektu izcelt koda blokam un pēc tam iznīcināt to ārpus šī bloka. Šajā gadījumā objekts ir my_file, instantiated ar atvērts () funkciju. Tas aizņem vairākas katla plāksnes rindas, lai atvērtu failu, nolasītu no tā atsevišķas rindas un pēc tam aizvērtu.

The [x… x failam my_file] būvniecība ir vēl viena Python savdabība, saraksta izpratne. Tas ļauj vienumam, kas satur citus vienumus (šeit, my_file un tajā esošās līnijas) iterēt cauri, un tas ļauj katram iterētam elementam (tas ir, katram x) tiks apstrādāti un automātiski pievienoti sarakstam.

Jūs varēja raksti tādu kā formālu priekš… cilpa Python, līdzīgi kā jūs to darītu citā valodā. Lieta ir tāda, ka Python ir veids, kā ekonomiski izteikt tādas lietas kā cilpas, kas atkārtojas vairākos objektos un veic vienkāršu darbību ar katru cilpas elementu, vai strādāt ar lietām, kurām nepieciešama skaidra tūlītēja atjaunošana un iznīcināšana.

Šādas konstrukcijas ļauj Python izstrādātājiem līdzsvarot īsumu un lasāmību.

Citas Python valodas funkcijas ir domātas, lai papildinātu parastos lietošanas gadījumus. Lielākā daļa mūsdienu objektu tipu - piemēram, Unicode virknes - ir iebūvēti tieši valodā. Datu struktūras, piemēram, saraksti, vārdnīcas (t.i., hashmaps vai atslēgas vērtību krājumi), kopas (nemainīgu objektu kolekciju glabāšanai) un kopas (unikālu objektu kolekciju glabāšanai), ir pieejamas kā standarta izlaiduma vienības.

Python 2 pret Python 3

Python ir pieejams divās versijās, kas ir pietiekami atšķirīgas, lai piesaistītu daudzus jaunus lietotājus. Python 2.x, vecākā “mantotā” filiāle, arī turpmāk tiks atbalstīta (tas ir, saņem oficiālus atjauninājumus) līdz 2020. gadam, un pēc tam tā var pastāvēt neoficiāli. Python 3.x, valodas pašreizējam un nākotnes iemiesojumam, ir daudzas noderīgas un svarīgas funkcijas, kas nav atrodamas Python 2.x versijā, piemēram, jaunas sintakses funkcijas (piemēram, “valzirgu operators”), labākas vienlaicīguma kontroles un citas iespējas efektīvs tulks.

Python 3 pieņemšanu visilgāk palēnināja trešās puses bibliotēku atbalsta relatīvais trūkums. Daudzas Python bibliotēkas atbalstīja tikai Python 2, apgrūtinot pārslēgšanos. Taču pēdējo pāris gadu laikā ir samazinājies tikai Python 2 atbalstošo bibliotēku skaits; visas populārākās bibliotēkas tagad ir saderīgas gan ar Python 2, gan ar Python 3. Mūsdienās Python 3 ir labākā izvēle jauniem projektiem; nav pamata izvēlēties Python 2, ja vien jums nav citas izvēles. Ja esat aizķēries ar Python 2, jūsu rīcībā ir dažādas stratēģijas.

Python bibliotēkas

Python panākumi ir balstīti uz bagātīgu pirmās un trešās puses programmatūras ekosistēmu. Python izmanto gan spēcīgu standarta bibliotēku, gan bagātīgu viegli iegūstamu un viegli izmantojamu bibliotēku sortimentu no trešo pušu izstrādātājiem. Python ir bagātināts ar gadu desmitiem ilgu paplašināšanos un ieguldījumu.

Python standarta bibliotēka nodrošina moduļus parastajiem programmēšanas uzdevumiem - matemātikai, virkņu apstrādei, piekļuvei failiem un direktorijām, tīklošanai, asinhronām operācijām, pavedieniem, daudzprocesu pārvaldībai utt. Bet tas ietver arī moduļus, kas pārvalda kopīgus, augsta līmeņa programmēšanas uzdevumus, kas nepieciešami mūsdienu lietojumprogrammām: strukturētu failu formātu, piemēram, JSON un XML, lasīšana un rakstīšana, manipulēšana ar saspiestiem failiem, darbs ar interneta protokoliem un datu formātiem (tīmekļa lapas, URL, e-pasts). Visiem ārējiem kodiem, kas atklāj ar C saderīgu ārvalstu funkciju saskarni, var piekļūt, izmantojot Python’s ctipi modulis.

Noklusētais Python izplatījums nodrošina arī elementāru, bet noderīgu starpplatformu GUI bibliotēku, izmantojot Tkinter, un iegultu SQLite 3 datu bāzes kopiju.

Tūkstošiem trešo pušu bibliotēku, kas pieejamas, izmantojot Python Package Index (PyPI), ir visspēcīgākais paraugs Python popularitātei un daudzpusībai.

Piemēram:

  • BeautifulSoup bibliotēka nodrošina visu vienā rīku, lai nokasītu HTML - pat viltīgu, salauztu HTML - un no tā iegūtu datus.
  • Pieprasījumi padara darbu ar HTTP pieprasījumiem mērogā nesāpīgu un vienkāršu.
  • Tādas sistēmas kā Flask un Django ļauj ātri attīstīt tīmekļa pakalpojumus, kas ietver gan vienkāršus, gan uzlabotus lietošanas gadījumus.
  • Vairākus mākoņpakalpojumus var pārvaldīt, izmantojot Python objektu modeli, izmantojot Apache Libcloud.
  • NumPy, Pandas un Matplotlib paātrina matemātikas un statistikas operācijas un atvieglo datu vizualizāciju izveidi.

Python kompromisi

Tāpat kā C #, Java un Go, arī Python ir atkritumu savākta atmiņas pārvaldība, kas nozīmē, ka programmētājam nav jāievieš kods, lai izsekotu un atbrīvotu objektus. Parasti atkritumu savākšana notiek automātiski fonā, bet, ja tas rada veiktspējas problēmu, varat to iedarbināt manuāli vai pilnībā atspējot vai pasludināt par objekta veseliem reģioniem, kas atbrīvoti no atkritumu savākšanas, kā veiktspējas uzlabojumu.

Svarīgs Python aspekts ir tā dinamisms. Viss valodas saturs, ieskaitot pašas funkcijas un moduļus, tiek apstrādāti kā objekti. Tas notiek uz ātruma rēķina (vairāk par to vēlāk), bet ievērojami atvieglo augsta līmeņa koda rakstīšanu. Izstrādātāji var veikt sarežģītas objektu manipulācijas, izmantojot tikai dažas instrukcijas, un pat apstrādāt lietojumprogrammas daļas kā abstrakcijas, kuras vajadzības gadījumā var mainīt.

Python izmantošana ievērojams atstarpe ir minēts kā viens no Python labākajiem un sliktākajiem atribūtiem. Ievilkums otrajā zemākajā rindā ir paredzēts ne tikai lasāmībai; tā ir daļa no Python sintakses. Python tulki noraidīs programmas, kas neizmanto pareizu atkāpi, lai norādītu vadības plūsmu.

ar atvērtu (‘myfile.txt’) kā my_file:

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

Sintaktiskā atstarpe var izraisīt degunu grumbu veidošanos, un daži cilvēki šī iemesla dēļ noraida Python. Bet stingri ievilkuma noteikumi praksē ir daudz mazāk uzmācīgi, nekā tas varētu šķist teorētiski, pat ja minimālais kodu redaktoru skaits ir rezultāts, un rezultāts ir tīrāks un lasāmāks kods.

Vēl viens potenciāls izslēgšana, īpaši tiem, kas nāk no tādām valodām kā C vai Java, ir tas, kā Python apstrādā mainīgo rakstīšanu. Pēc noklusējuma Python izmanto dinamisko vai “pīļu” rakstīšanu - lieliski piemērots ātrai kodēšanai, bet potenciāli problemātisks lielās kodu bāzēs. Tas nozīmē, ka Python nesen ir pievienojis atbalstu izvēles kompilēšanas laika tipa norādījumiem, tāpēc projekti, kuriem varētu noderēt statiskā rakstīšana, var tos izmantot.

Vai Python ir lēns? Nav nepieciešams

Viens izplatīts brīdinājums par Python ir tas, ka tas ir lēns. Objektīvi tas ir taisnība. Python programmas parasti darbojas daudz lēnāk nekā atbilstošās programmas C / C ++ vai Java. Dažas Python programmas būs lēnākas par lieluma pakāpi vai vairāk.