Programmering

Hva er Python? Kraftig, intuitiv programmering

Python-programmeringsspråket ble datert fra 1991 og ble ansett som et gap-filler, en måte å skrive manus som "automatiserer de kjedelige tingene" (som en populær bok om å lære Python formulerte det) eller for å raskt prototype applikasjoner som vil bli implementert på andre språk. .

I løpet av de siste årene har Python imidlertid dukket opp som en førsteklasses borger innen moderne programvareutvikling, infrastrukturadministrasjon og dataanalyse. Det er ikke lenger et back-room-verktøyspråk, men en stor styrke i nettapplikasjon og systemadministrasjon, og en nøkkeldriver for eksplosjonen innen stor dataanalyse og maskinintelligens.

Relatert video: Hvordan Python gjør programmeringen enklere

Perfekt for IT, forenkler Python mange typer arbeid, fra systemautomatisering til arbeid i banebrytende felt som maskinlæring.

Pythons viktigste fordeler

Pythons suksess dreier seg om flere fordeler den gir både nybegynnere og eksperter.

Python er lett å lære og bruke

Antall funksjoner i selve språket er beskjedent, og krever relativt lite investering av tid eller krefter for å produsere de første programmene dine. Python-syntaksen er designet for å være lesbar og grei. Denne enkelheten gjør Python til et ideelt undervisningsspråk, og lar nybegynnere plukke det opp raskt. Som et resultat bruker utviklere mer tid på å tenke på problemet de prøver å løse, og mindre tid på å tenke på språkkompleksitet eller dechiffrere kode som er igjen av andre.

Python er bredt adoptert og støttet

Python er både populært og mye brukt, som den høye rangeringen i undersøkelser som Tiobe Index og det store antallet GitHub-prosjekter som bruker Python, vitner om. Python kjører på alle større operativsystemer og plattformer, og de fleste mindre også. Mange store biblioteker og API-drevne tjenester har Python-bindinger eller innpakninger, slik at Python kan grensesnitt fritt med disse tjenestene eller direkte bruke disse bibliotekene.

Python er ikke et "leketøy" -språk

Selv om skripting og automatisering dekker en stor del av Pythons brukssaker (mer om det senere), brukes Python også til å bygge programvare av profesjonell kvalitet, både som frittstående applikasjoner og som webtjenester. Python er kanskje ikke det raskest språk, men hva det mangler i hastighet, gjør det opp for allsidighet.

Python fortsetter fremover

Hver revisjon av Python-språket legger til nyttige nye funksjoner for å holde tritt med moderne programvareutviklingspraksis. Asynkrone operasjoner og coroutines, for eksempel, er nå standard deler av språket, noe som gjør det lettere å skrive Python-apper som utfører samtidig behandling.

Hva Python brukes til

Den mest grunnleggende brukssaken for Python er som skripts- og automatiseringsspråk. Python er ikke bare en erstatning for skallskript eller batchfiler; den brukes også til å automatisere interaksjoner med nettlesere eller applikasjons-GUIer eller for å gjøre systemadministrering og konfigurering i verktøy som Ansible og Salt. Men skripting og automatisering representerer bare toppen av isfjellet med Python.

Gprogrammering av eneral applikasjon med Python

Du kan opprette både kommandolinje- og plattform-GUI-applikasjoner med Python og distribuere dem som selvstendige kjørbare filer. Python har ikke den opprinnelige muligheten til å generere en frittstående binær fra et skript, men tredjepartspakker som cx_Freeze og PyInstaller kan brukes til å oppnå det.

Datavitenskap og maskinlæring med Python

Sofistikert dataanalyse har blitt et av IT-områdene som er raskest i bevegelse, og en av Pythons stjernesaker. De aller fleste bibliotekene som brukes til datavitenskap eller maskinlæring har Python-grensesnitt, noe som gjør språket til det mest populære kommandogrensesnittet på høyt nivå for maskinlæringsbiblioteker og andre numeriske algoritmer.

Webtjenester og RESTful APIer i Python

Pythons innfødte biblioteker og tredjeparts nettrammer gir raske og praktiske måter å lage alt fra enkle REST API-er i noen få kodelinjer til fullstendige, datadrevne nettsteder. Pythons nyeste versjoner har sterk støtte for asynkrone operasjoner, og lar nettsteder håndtere titusenvis av forespørsler per sekund med de riktige bibliotekene.

Metaprogrammering og kodegenerering i Python

I Python er alt i språket et objekt, inkludert Python-moduler og biblioteker selv. Dette lar Python fungere som en svært effektiv kodegenerator, noe som gjør det mulig å skrive applikasjoner som manipulerer sine egne funksjoner og har den typen utvidbarhet som det vil være vanskelig eller umulig å få til på andre språk.

Python kan også brukes til å drive kodegenereringssystemer, for eksempel LLVM, for effektivt å lage kode på andre språk.

"Limkode" i Python

Python blir ofte beskrevet som et "limspråk", noe som betyr at det kan la forskjellig kode (vanligvis biblioteker med C-språkgrensesnitt) fungere sammen. Dens bruk i datavitenskap og maskinlæring er i denne retning, men det er bare en inkarnasjon av den generelle ideen. Hvis du har applikasjoner eller programdomener som du ønsker å koble til, men ikke kan snakke direkte med hverandre, kan du bruke Python til å koble dem til.

Hvor Python kommer til kort

Det er også verdt å merke seg hva slags oppgaver Python er ikke godt egnet for.

Python er et språk på høyt nivå, så det er ikke egnet for programmering på systemnivå - enhetsdrivere eller OS-kjerner er utenfor bildet.

Det er heller ikke ideelt for situasjoner som krever kryssplattform frittstående binærfiler. Du kan bygge en frittstående Python-app for Windows, MacOS og Linux, men ikke elegant eller enkelt.

Til slutt er Python ikke det beste valget når hastighet er en absolutt prioritet i alle aspekter av applikasjonen. For det har du det bedre med C / C ++ eller et annet språk av det kaliberet.

Hvordan Python gjør programmering enkel

Pythons syntaks er ment å være leselig og ren, med lite foregivelse. En standard “hei verden” i Python 3.x er ikke mer enn:

utskrift (“Hello world!”)

Python gir mange syntaktiske elementer for å uttrykke kortfattet mange vanlige programflyter. Tenk på et eksempelprogram for å lese linjer fra en tekstfil til et listeobjekt, og striper hver linje for den avsluttende newline-karakteren underveis:

med åpen (‘myfile.txt’) som min_fil:

file_lines = [x.rstrip (‘\ n’) for x i min_fil]

De med / som konstruksjon er en kontekstansvarlig, som gir en effektiv måte å instantiere et objekt for en blokk med kode og deretter kaste den utenfor den blokken. I dette tilfellet er objektet det min_fil, instantiert med åpen() funksjon. Dette tar plass til flere linjer med kokeplate for å åpne filen, lese individuelle linjer fra den, og deretter lukke den opp.

De [x ... for x i min_fil] konstruksjon er en annen Python-egenhet, den listeforståelse. Den lar et element som inneholder andre elementer (her, min_fil og linjene den inneholder) blir iterert gjennom, og den lar hvert itererte element (det vil si hver x) behandles og automatisk legges til en liste.

Du kunne skriv en slik ting som en formell til… loop i Python, omtrent som du ville gjort på et annet språk. Poenget er at Python har en måte å økonomisk uttrykke ting som sløyfer som gjentas over flere objekter og utføre en enkel operasjon på hvert element i sløyfen, eller å jobbe med ting som krever eksplisitt instantiering og avhending.

Konstruksjoner som dette lar Python-utviklere balansere tøffhet og lesbarhet.

Pythons andre språkfunksjoner er ment å utfylle vanlige brukssaker. De fleste moderne objekttyper - for eksempel Unicode-strenger - er bygget direkte inn i språket. Datastrukturer - som lister, ordbøker (dvs. hashmaps eller nøkkelverdilagre), tupler (for lagring av uforanderlige samlinger av objekter) og sett (for lagring av samlinger av unike objekter) - er tilgjengelige som standardutgaver.

Python 2 vs. Python 3

Python er tilgjengelig i to versjoner, som er forskjellige nok til å gi mange nye brukere. Python 2.x, den eldre "eldre" grenen, vil fortsette å bli støttet (det vil si motta offisielle oppdateringer) gjennom 2020, og det kan fortsette uoffisielt etter det. Python 3.x, den nåværende og fremtidige inkarnasjonen av språket, har mange nyttige og viktige funksjoner som ikke finnes i Python 2.x, for eksempel nye syntaksfunksjoner (f.eks. “Hvalrossoperatøren”), bedre samtidskontroll og mer effektiv tolk.

Python 3-adopsjon ble bremset lengst av den relative mangelen på tredjepartsbibliotekstøtte. Mange Python-biblioteker støttet bare Python 2, noe som gjorde det vanskelig å bytte. Men i løpet av de siste par årene har antallet biblioteker som bare støtter Python 2 gått ned; alle de mest populære bibliotekene er nå kompatible med både Python 2 og Python 3. I dag er Python 3 det beste valget for nye prosjekter; det er ingen grunn til å velge Python 2 med mindre du ikke har noe valg. Hvis du sitter fast med Python 2, har du forskjellige strategier til din disposisjon.

Pythons biblioteker

Suksessen til Python hviler på et rikt økosystem med første- og tredjepartsprogramvare. Python drar nytte av både et sterkt standardbibliotek og et sjenerøst utvalg av lett oppnådde og lett brukte biblioteker fra tredjepartsutviklere. Python har blitt beriket av flere tiår med utvidelse og bidrag.

Pythons standardbibliotek tilbyr moduler for vanlige programmeringsoppgaver - matematikk, strenghåndtering, fil- og katalogtilgang, nettverk, asynkrone operasjoner, tråder, flerprosessadministrasjon og så videre. Men det inkluderer også moduler som administrerer vanlige programmeringsoppgaver på høyt nivå som er nødvendige for moderne applikasjoner: lese og skrive strukturerte filformater som JSON og XML, manipulere komprimerte filer, jobbe med internettprotokoller og dataformater (websider, URL-er, e-post). Mest mulig ekstern kode som avslører et C-kompatibelt utenlandsk funksjonsgrensesnitt, kan nås med Pythons typer modul.

Standard Python-distribusjon gir også et rudimentært, men nyttig GUI-bibliotek på tvers av plattformer via Tkinter, og en innebygd kopi av SQLite 3-databasen.

De tusenvis av tredjepartsbiblioteker, tilgjengelig via Python Package Index (PyPI), utgjør det sterkeste utstillingsvinduet for Pythons popularitet og allsidighet.

For eksempel:

  • BeautifulSoup-biblioteket tilbyr en alt-i-ett-verktøykasse for å skrape HTML - til og med vanskelig, ødelagt HTML - og trekke ut data fra den.
  • Forespørsler gjør det vanskelig og enkelt å jobbe med HTTP-forespørsler i målestokk.
  • Rammeverk som Flask og Django tillater rask utvikling av webtjenester som omfatter både enkle og avanserte brukstilfeller.
  • Flere skytjenester kan administreres gjennom Pythons objektmodell ved hjelp av Apache Libcloud.
  • NumPy, Pandas og Matplotlib akselererer matematikk og statistiske operasjoner, og gjør det enkelt å lage visualiseringer av data.

Pythons kompromisser

I likhet med C #, Java og Go har Python minnestyring som samles inn søppel, noe som betyr at programmereren ikke trenger å implementere kode for å spore og frigjøre objekter. Normalt skjer søppeloppsamling automatisk i bakgrunnen, men hvis det utgjør et ytelsesproblem, kan du utløse det manuelt eller deaktivere det helt, eller erklære hele regioner av objekter unntatt fra søppeloppsamling som en ytelsesforbedring.

Et viktig aspekt av Python er dens dynamikk. Alt på språket, inkludert funksjoner og moduler, håndteres som objekter. Dette kommer på bekostning av hastighet (mer om det senere), men gjør det langt lettere å skrive kode på høyt nivå. Utviklere kan utføre komplekse objektmanipulasjoner med bare noen få instruksjoner, og til og med behandle deler av en applikasjon som abstraksjoner som kan endres om nødvendig.

Pythons bruk av betydelig hvitt mellomrom har blitt sitert som både en av Pythons beste og verste attributter. Innrykk på den andre linjen nedenfor er ikke bare for lesbarhet; det er en del av Pythons syntaks. Python-tolker vil avvise programmer som ikke bruker riktig innrykk for å indikere kontrollflyt.

med åpen (‘myfile.txt’) som min_fil:

file_lines = [x.rstrip (‘\ n’) for x i min_fil]

Syntaktisk hvitt rom kan føre til at nesene rynker seg, og noen mennesker avviser Python av denne grunn. Men strenge innrykkingsregler er langt mindre påtrengende i praksis enn de kan virke i teorien, selv med de mest minimale kodeditorene, og resultatet er kode som er renere og mer lesbar.

En annen potensiell avstenging, spesielt for de som kommer fra språk som C eller Java, er hvordan Python håndterer variabel skriving. Som standard bruker Python dynamisk eller "duck" -typing - flott for rask koding, men potensielt problematisk i store kodebaser. Når det er sagt, har Python nylig lagt til støtte for valgfri kompileringstidstips, slik at prosjekter som kan dra nytte av statisk skriving, kan bruke den.

Er Python treg? Ikke nødvendigvis

En vanlig advarsel om Python er at den er treg. Objektivt er det sant. Python-programmer kjører vanligvis mye saktere enn tilsvarende programmer i C / C ++ eller Java. Noen Python-programmer vil være langsommere i størrelsesorden eller mer.

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