Programiranje

Kaj je Python? Zmogljivo, intuitivno programiranje

Od leta 1991 je programski jezik Python veljal za zapolnjevalce vrzeli, za način pisanja skriptov, ki "avtomatizirajo dolgočasne stvari" (kot je zapisala ena priljubljena knjiga o učenju Pythona), ali za hitro prototipiranje aplikacij, ki bodo implementirane v drugih jezikih. .

Vendar se je Python v zadnjih nekaj letih izkazal za prvovrstnega državljana na področju sodobne programske opreme, upravljanja infrastrukture in analize podatkov. To ni več pomožni jezik back-room, ampak glavna sila pri ustvarjanju spletnih aplikacij in upravljanju sistemov ter ključni dejavnik eksplozije v analitiki velikih podatkov in strojni inteligenci.

Povezani video: Kako Python olajša programiranje

Kot nalašč za IT, Python poenostavlja številne vrste dela, od avtomatizacije sistema do dela na najsodobnejših področjih, kot je strojno učenje.

Pythonove ključne prednosti

Pythonov uspeh se vrti okoli številnih prednosti, ki jih ponuja tako za začetnike kot strokovnjake.

Python je enostaven za učenje in uporabo

Število funkcij v jeziku je skromno, zato zahtevajo razmeroma malo časa ali truda za izdelavo svojih prvih programov. Sintaksa Python je zasnovana tako, da je berljiva in enostavna. Zaradi te preprostosti je Python idealen učni jezik, novince pa omogoča, da ga hitro izberejo. Posledično razvijalci porabijo več časa za razmišljanje o težavi, ki jo skušajo rešiti, manj časa pa za razmišljanje o jezikovni zapletenosti ali dešifriranju kode, ki jo pustijo drugi.

Python je široko sprejet in podprt

Python je tako priljubljen kot široko uporabljen, kar potrjujejo visoke uvrstitve v raziskavah, kot je indeks Tiobe, in veliko število projektov GitHub, ki uporabljajo Python. Python deluje v vseh večjih operacijskih sistemih in platformah, pa tudi v večini manjših. Številne večje knjižnice in storitve, ki jih poganja API, imajo vezave ali ovojnice Pythona, kar omogoča, da se Python prosto vmeša s temi storitvami ali neposredno uporablja te knjižnice.

Python ni "igralski" jezik

Čeprav skriptiranje in avtomatizacija zajemata velik del primerov uporabe Pythona (več o tem kasneje), se Python uporablja tudi za izdelavo programske opreme profesionalne kakovosti, tako kot samostojne aplikacije kot kot spletne storitve. Python morda ni najhitreje jezik, toda tisto, kar mu primanjkuje v hitrosti, nadomesti v vsestranskosti.

Python se premika naprej

Vsaka revizija jezika Python dodaja uporabne nove funkcije, ki sledijo sodobnim praksam razvoja programske opreme. Asinhrone operacije in podprogrami so na primer zdaj standardni deli jezika, kar olajša pisanje aplikacij Python, ki izvajajo sočasno obdelavo.

Za kaj se uporablja Python

Najosnovnejši primer uporabe Pythona je kot skriptni in avtomatizacijski jezik. Python ni le zamenjava za skripte lupine ali batch datoteke; uporablja se tudi za avtomatizacijo interakcij s spletnimi brskalniki ali uporabniškimi vmesniki aplikacij ali za zagotavljanje in konfiguracijo sistema v orodjih, kot sta Ansible in Salt. Toda skriptiranje in avtomatizacija sta pri Pythonu le vrh ledene gore.

Gsplošno programiranje aplikacij s Pythonom

Z Pythonom lahko ustvarite aplikacije GUI v ukazni vrstici in med platformami ter jih namestite kot samostojne izvedljive datoteke. Python nima izvorne zmožnosti ustvarjanja samostojnega binarnega programa iz skripta, vendar lahko za dosego tega uporabite pakete drugih proizvajalcev, kot sta cx_Freeze in PyInstaller.

Podatkovne vede in strojno učenje s Pythonom

Izpopolnjena analiza podatkov je postala eno najhitreje področij IT in eden od primerov Pythonove glavne uporabe. Velika večina knjižnic, ki se uporabljajo za podatkovne vede ali strojno učenje, ima vmesnike Python, zaradi česar je jezik najbolj priljubljen ukazni vmesnik na visoki ravni za knjižnice strojnega učenja in druge numerične algoritme.

Spletne storitve in RESTful API-ji v Pythonu

Izvorne knjižnice Pythona in tuji spletni okviri ponujajo hitre in priročne načine za ustvarjanje vsega, od preprostih REST API-jev v nekaj vrsticah kode do popolnih spletnih mest, ki temeljijo na podatkih. Najnovejše različice Pythona močno podpirajo asinhrone operacije, saj spletna mesta omogočajo obdelavo deset tisoč zahtev na sekundo s pravimi knjižnicami.

Metaprogramiranje in generiranje kode v Pythonu

V Pythonu je vse v jeziku predmet, vključno z moduli in knjižnicami Python. To omogoča Pythonu, da deluje kot zelo učinkovit generator kod, kar omogoča pisanje aplikacij, ki manipulirajo z lastnimi funkcijami in imajo takšno razširljivost, ki bi jo bilo težko ali nemogoče izvesti v drugih jezikih.

Python se lahko uporablja tudi za poganjanje sistemov za ustvarjanje kode, kot je LLVM, za učinkovito ustvarjanje kode v drugih jezikih.

»Koda lepila« v Pythonu

Python je pogosto opisan kot "jezik lepila", kar pomeni, da lahko dovoli, da različna koda (običajno knjižnice z vmesniki jezika C) deluje. Njegova uporaba v znanosti o podatkih in strojnem učenju je v tem smislu, vendar je to le ena inkarnacija splošne ideje. Če imate aplikacije ali programske domene, ki jih želite priključiti, vendar se ne morete neposredno pogovarjati, jih lahko uporabite za povezavo s Pythonom.

Kjer Python ni dovolj

Omeniti velja tudi vrste nalog, ki jih ima Python ne primerna za.

Python je jezik na visoki ravni, zato ni primeren za programiranje na sistemski ravni - gonilniki naprav ali jedra OS so zunaj slike.

Prav tako ni idealno za situacije, ki zahtevajo večplastna samostojne binarne datoteke. Lahko sestavite samostojno aplikacijo Python za Windows, MacOS in Linux, vendar ne elegantno ali preprosto.

Nazadnje, Python ni najboljša izbira, kadar je hitrost absolutna prednostna naloga v vseh pogledih aplikacije. Za to vam je bolje, če uporabljate C / C ++ ali drug jezik tega kalibra.

Kako Python poenostavi programiranje

Pythonova sintaksa naj bi bila berljiva in čista, z malo pretvarjanja. Standardni »zdravi svet« v Pythonu 3.x ni nič drugega kot:

natisni (»Pozdravljeni svet!«)

Python ponuja veliko skladenjskih elementov za jedrnato izražanje številnih pogostih programskih tokov. Razmislite o vzorčnem programu za branje vrstic iz besedilne datoteke v objekt seznama, pri čemer vsaki vrstici odstranite končni znak nove vrstice:

z odprtim (‘myfile.txt’) kot my_file:

file_lines = [x.rstrip (‘\ n’) za x v moji_datoteki]

The z / kot gradnja je a upravitelj konteksta, ki zagotavlja učinkovit način za primer primera za blok kode in ga nato odstrani zunaj tega bloka. V tem primeru je objekt moja_datoteka, na primer z odprto() funkcijo. To zamenja mesto več vrstic, da datoteko odprete, preberete posamezne vrstice iz nje in jo zaprete.

The [x… za x v moji_datoteki] gradnja je še ena Pythonova samosvojnost, razumevanje seznama. Omogoča element, ki vsebuje druge elemente (tukaj, moja_datoteka in vrstice, ki jih vsebuje), se ponovijo in omogočijo vsakemu ponovljenemu elementu (torej vsakemu x) se obdelajo in samodejno dodajo na seznam.

Ti lahko napiši kaj takega kot formalno za ... zanko v Pythonu, podobno kot v drugem jeziku. Bistvo je v tem, da ima Python način, da ekonomično izrazi stvari, kot so zanke, ki se ponavljajo nad več predmeti in izvedejo preprosto operacijo za vsak element v zanki, ali za delo s stvarmi, ki zahtevajo izrecno instanciranje in odstranjevanje.

Takšne konstrukcije omogočajo razvijalcem Pythona, da uravnotežijo kratkost in berljivost.

Pythonove druge jezikovne funkcije naj bi dopolnile pogoste primere uporabe. Večina sodobnih vrst predmetov - na primer nizi Unicode - je vgrajena neposredno v jezik. Podatkovne strukture - na primer seznami, slovarji (tj. Hashmapi ali shrambe ključ-vrednost), nabori (za shranjevanje nespremenljivih zbirk predmetov) in nabori (za shranjevanje zbirk unikatnih predmetov) - so na voljo kot elementi s standardno izdajo.

Python 2 proti Python 3

Python je na voljo v dveh različicah, ki sta dovolj različni, da lahko privedeta do številnih novih uporabnikov. Python 2.x, starejša »zapuščena« veja, bo še naprej podprt (to je prejemati uradne posodobitve) do leta 2020, po tem pa bo morda neuradno obstajal. Python 3.x, sedanja in prihodnja inkarnacija jezika, ima veliko uporabnih in pomembnih funkcij, ki jih v Python 2.x ni mogoče najti, na primer nove skladenjske funkcije (npr. »Operater mrožev«), boljši nadzor hkratnosti in več učinkovit tolmač.

Sprejetje Pythona 3 je najdlje upočasnilo relativno pomanjkanje podpore knjižnic drugih proizvajalcev. Številne knjižnice Python so podpirale samo Python 2, zaradi česar je bilo težko preklopiti. Toda v zadnjih nekaj letih se je število knjižnic, ki podpirajo samo Python 2, zmanjšalo; vse najbolj priljubljene knjižnice so zdaj združljive s Python 2 in Python 3. Danes je Python 3 najboljša izbira za nove projekte; ni razloga, da bi izbrali Python 2, razen če nimate druge izbire. Če ste zaljubljeni v Python 2, imate na voljo različne strategije.

Pythonove knjižnice

Uspeh Pythona temelji na bogatem ekosistemu lastne in tuje programske opreme. Python ima tako močno standardno knjižnico kot tudi širok izbor knjižnic, ki jih je mogoče zlahka dobiti in jih je mogoče zlahka uporabiti, od tujih razvijalcev. Python je bil obogaten z desetletji širjenja in prispevanja.

Pythonova standardna knjižnica ponuja module za pogosta programska opravila - matematiko, obdelavo nizov, dostop do datotek in imenikov, mreženje, asinhrone operacije, navoje, upravljanje več procesov itd. Vključuje pa tudi module, ki upravljajo običajne programske naloge na visoki ravni, ki jih potrebujejo sodobne aplikacije: branje in pisanje strukturiranih formatov datotek, kot sta JSON in XML, manipuliranje stisnjenih datotek, delo z internetnimi protokoli in podatkovnimi formati (spletne strani, URL-ji, e-pošta). Večina katere koli zunanje kode, ki izpostavlja vmesnik tujih funkcij, združljiv s C, je dostopna s Pythonom ctipov modul.

Privzeta distribucija Pythona ponuja tudi osnovno, a uporabno knjižnico GUI med platformami prek Tkinterja in vdelano kopijo baze podatkov SQLite 3.

Na tisoče neodvisnih knjižnic, ki so na voljo prek indeksa paketov Python (PyPI), predstavljajo najmočnejšo predstavitev Pythonove priljubljenosti in vsestranskosti.

Na primer:

  • Knjižnica BeautifulSoup ponuja vsestransko orodje za strganje HTML-ja - tudi zapletenega, pokvarjenega HTML-ja - in pridobivanje podatkov iz njega.
  • Zahteve omogočajo delo s HTTP zahtevami v obsegu neboleče in preprosto.
  • Okvira, kot sta Flask in Django, omogočata hiter razvoj spletnih storitev, ki zajemajo tako preproste kot napredne primere uporabe.
  • Z objektnim modelom Pythona lahko z Apache Libcloud upravljate več storitev v oblaku.
  • NumPy, Pandas in Matplotlib pospešujejo matematične in statistične operacije ter olajšajo ustvarjanje vizualizacij podatkov.

Pythonovi kompromisi

Tako kot C #, Java in Go ima tudi Python upravljanje s pomnilnikom, zbrano s smeti, kar pomeni, da programerju ni treba izvajati kode za sledenje in sproščanje predmetov. Običajno se zbiranje smeti samodejno izvaja v ozadju, če pa to predstavlja težavo z zmogljivostjo, jo lahko sprožite ročno ali v celoti onemogočite ali pa celo področja predmetov, izvzetih iz zbiranja smeti, razglasite za izboljšanje zmogljivosti.

Pomemben vidik Pythona je dinamičnost. Vse v jeziku, vključno s funkcijami in moduli, se obravnava kot predmeti. To gre na račun hitrosti (več o tem kasneje), vendar je veliko lažje pisati kodo na visoki ravni. Razvijalci lahko izvajajo zapletene manipulacije predmetov z le nekaj navodili in celo dele aplikacije obravnavajo kot abstrakcije, ki jih je mogoče po potrebi spremeniti.

Pythonova uporaba pomemben presledek je bil naveden kot eden najboljših in najslabših Pythonovih lastnosti. Zamik v drugi vrstici spodaj ni samo za berljivost; je del Pythonove sintakse. Tolmači Pythona bodo zavrnili programe, ki ne uporabljajo ustreznih zamikov za označevanje krmilnega toka.

z odprtim (‘myfile.txt’) kot my_file:

file_lines = [x.rstrip (‘\ n’) za x v moji_datoteki]

Sintaksični presledek lahko povzroči gube v nosu in nekateri zato Python zavrnejo. Toda stroga pravila za zamike so v praksi veliko manj vsiljiva, kot bi se morda zdela teoretično, tudi z najmanjšim številom urejevalnikov kod, rezultat pa je čistejša in bolj berljiva koda.

Še en potencialni odmik, zlasti za tiste, ki prihajajo iz jezikov, kot sta C ali Java, je, kako Python obravnava tipkanje s spremenljivkami. Python privzeto uporablja dinamično ali »račje« tipkanje - odlično za hitro kodiranje, vendar lahko v velikih osnovah kode problematično. Kljub temu je Python pred kratkim dodal podporo za neobvezno namigovanje v času prevajanja, tako da ga lahko uporabljajo projekti, ki bi lahko imeli koristi od statičnega tipkanja.

Je Python počasen? Ni nujno

Pogosto opozorilo Pythona je, da je počasen. Objektivno je res. Programi Python se običajno izvajajo veliko počasneje kot ustrezni programi v C / C ++ ali Java. Nekateri programi Python bodo počasnejši za red velikosti ali več.

$config[zx-auto] not found$config[zx-overlay] not found