Hva kan du gjøre med Python? Her er Pythons 3 hovedapplikasjoner.

Hvis du tenker på å lære Python - eller hvis du nylig begynte å lære det - kan du spørre deg selv:

"Hva kan jeg bruke Python til?"

Vel, det er et vanskelig spørsmål å svare på, fordi det er så mange applikasjoner for Python.

Men over tid har jeg observert at det er tre populære applikasjoner for Python:

  • Webutvikling
  • Datavitenskap - inkludert maskinlæring, dataanalyse og datavisualisering
  • Skripting

La oss snakke om hver av dem etter tur.

Webutvikling

Nettrammer som er basert på Python som Django og Flask har nylig blitt veldig populære for webutvikling.

Disse web-rammene hjelper deg med å lage server-side-kode (backend-kode) i Python. Det er koden som kjører på serveren din, i motsetning til på brukernes enheter og nettlesere (front-end-kode). Hvis du ikke er kjent med forskjellen mellom backend-kode og front-end-kode, kan du se fotnoten min nedenfor.

Men vent, hvorfor trenger jeg et nettrammeverk?

Det er fordi et web-rammeverk gjør det lettere å bygge felles backendlogikk. Dette inkluderer kartlegging av forskjellige URL-er til biter av Python-kode, håndtering av databaser og generering av HTML-filer som brukerne ser i nettleserne.

Hvilket Python-nettverk skal jeg bruke?

Django og Flask er to av de mest populære Python-nettrammene. Jeg vil anbefale å bruke en av dem hvis du nettopp er i gang.

Hva er forskjellen mellom Django og Flask?

Det er en utmerket artikkel om dette emnet av Gareth Dwyer, så la meg sitere det her:

te>

Hovedkontraster:

  • Kolbe gir enkelhet, fleksibilitet og finkornet kontroll. Det er uopinert (det lar deg bestemme hvordan du vil implementere ting).
  • Django gir en altomfattende opplevelse: du får et adminpanel, databasegrensesnitt, en ORM [objekt-relasjonskartlegging] og katalogstruktur for appene og prosjektene dine ut av boksen.

Du bør sannsynligvis velge:

  • Kolbe, hvis du er fokusert på opplevelsen og læringsmulighetene, eller hvis du vil ha mer kontroll om hvilke komponenter du skal bruke (for eksempel hvilke databaser du vil bruke og hvordan du vil samhandle med dem).
  • Django, hvis du er fokusert på det endelige produktet. Spesielt hvis du jobber med en rett frem applikasjon, for eksempel et nyhetsnettsted, en e-butikk eller blogg, og du vil at det alltid skal være en enkelt, åpenbar måte å gjøre ting på.

te>

Med andre ord, hvis du er nybegynner, er Flask sannsynligvis et bedre valg fordi den har færre komponenter å håndtere. Flask er også et bedre valg hvis du vil ha mer tilpasning.

På den annen side, hvis du ønsker å bygge noe rett frem, vil Django sannsynligvis la deg komme raskere dit.

Nå, hvis du ønsker å lære Django, anbefaler jeg boken som heter Django for nybegynnere. Du finner den her.

Du kan også finne de gratis eksemplene på boken her.

Ok, la oss gå til neste emne!

Datavitenskap - inkludert maskinlæring, dataanalyse og datavisualisering

Først av alt, la oss se på hva maskinlæring er .

Jeg tror den beste måten å forklare hva maskinlæring er, er å gi deg et enkelt eksempel.

La oss si at du vil utvikle et program som automatisk oppdager hva som er i et bilde.

Så gitt dette bildet nedenfor (Bilde 1), vil du at programmet ditt skal erkjenne at det er en hund.

Gitt denne andre nedenfor (bilde 2), vil du at programmet ditt skal erkjenne at det er en tabell.

Du kan si, vel, jeg kan bare skrive litt kode for å gjøre det. For eksempel, kanskje hvis det er mange lysebrune piksler på bildet, så kan vi si at det er en hund.

Eller kanskje du kan finne ut hvordan du kan oppdage kanter i et bilde. Så kan du si, hvis det er mange rette kanter, så er det et bord.

Imidlertid blir denne typen tilnærming vanskelig ganske raskt. Hva om det er en hvit hund på bildet uten brunt hår? Hva om bildet bare viser de runde delene av bordet?

Det er her maskinlæring kommer inn.

Maskinlæring implementerer vanligvis en algoritme som automatisk oppdager et mønster i den gitte inngangen.

Du kan gi, si 1000 bilder av en hund og 1000 bilder av et bord til en maskinlæringsalgoritme. Deretter vil den lære forskjellen mellom en hund og et bord. Når du gir den et nytt bilde av enten en hund eller et bord, vil den kunne gjenkjenne hvilken den er.

Jeg tror dette ligner noe på hvordan en baby lærer nye ting. Hvordan lærer en baby at en ting ser ut som en hund og en annen et bord? Sannsynligvis fra en haug med eksempler.

Du sier sannsynligvis ikke eksplisitt til en baby: "Hvis noe er furry og har lysebrunt hår, er det sannsynligvis en hund."

Du vil sannsynligvis bare si, “Det er en hund. Dette er også en hund. Og denne er et bord. Den ene er også et bord. ”

Maskinlæringsalgoritmer fungerer omtrent på samme måte.

Du kan bruke den samme ideen til:

  • anbefalingssystemer (tenk YouTube, Amazon og Netflix)
  • ansiktsgjenkjenning
  • stemme gjenkjenning

blant andre applikasjoner.

Populære maskinlæringsalgoritmer du kanskje har hørt om inkluderer:

  • Nevrale nettverk
  • Dyp læring
  • Støtt vektormaskiner
  • Tilfeldig skog

Du kan bruke hvilken som helst av de ovennevnte algoritmene til å løse bildemerkingsproblemet jeg forklarte tidligere.

Python for maskinlæring

Det er populære maskinlæringsbiblioteker og rammer for Python.

To av de mest populære er scikit- learning og TensorFlow .

  • scikit-learning kommer med noen av de mer populære innebygde maskinlæringsalgoritmene. Jeg nevnte noen av dem ovenfor.
  • TensorFlow er mer et lavnivåbibliotek som lar deg bygge tilpassede maskinlæringsalgoritmer.

Hvis du nettopp har kommet i gang med et maskinlæringsprosjekt, vil jeg anbefale at du først starter med scikit-learning. Hvis du begynner å komme inn på effektivitetsproblemer, vil jeg begynne å se på TensorFlow.

Hvordan skal jeg lære maskinlæring?

For å lære grunnleggende om maskinlæring, vil jeg anbefale enten Stanfords eller Caltechs maskinlæringskurs.

Vær oppmerksom på at du trenger grunnleggende kunnskap om beregning og lineær algebra for å forstå noe av materialet i disse kursene.

Så ville jeg øve på det du har lært fra et av disse kursene med Kaggle. Det er et nettsted der folk konkurrerer om å lage den beste maskinlæringsalgoritmen for et gitt problem. De har fine opplæringsprogrammer også for nybegynnere.

Hva med dataanalyse og datavisualisering?

For å hjelpe deg med å forstå hvordan disse kan se ut, la meg gi deg et enkelt eksempel her.

La oss si at du jobber for et selskap som selger noen produkter online.

Deretter kan du som dataanalytiker tegne et søylediagram som dette.

Fra denne grafen kan vi fortelle at menn kjøpte over 400 enheter av dette produktet, og kvinner kjøpte omtrent 350 enheter av dette produktet denne søndagen.

Som dataanalytiker kan du komme med noen mulige forklaringer på denne forskjellen.

En åpenbar mulig forklaring er at dette produktet er mer populært blant menn enn for kvinner. En annen mulig forklaring kan være at utvalgsstørrelsen er for liten, og denne forskjellen ble forårsaket bare ved en tilfeldighet. Og nok en mulig forklaring kan være at menn pleier å kjøpe dette produktet mer bare på søndag av en eller annen grunn.

For å forstå hvilken av disse forklaringene som er riktig, kan du tegne en annen graf som denne.

I stedet for å vise dataene bare for søndag, ser vi på dataene i en hel uke. Som du kan se, fra denne grafen, kan vi se at denne forskjellen er ganske konsistent over forskjellige dager.

Fra denne lille analysen kan du konkludere med at den mest overbevisende forklaringen på denne forskjellen er at dette produktet ganske enkelt er mer populært blant menn enn for kvinner.

På den annen side, hva om du ser en graf som denne i stedet?

Hva forklarer så forskjellen på søndag?

Du kan si, kanskje menn pleier å kjøpe mer av dette produktet bare på søndag av en eller annen grunn. Eller kanskje det bare var en tilfeldighet at menn kjøpte mer av det på søndag.

Så dette er et forenklet eksempel på hvordan dataanalyse kan se ut i den virkelige verden.

Dataanalysearbeidet jeg gjorde da jeg jobbet hos Google og Microsoft, var veldig lik dette eksemplet - bare mer komplekst. Jeg brukte faktisk Python på Google for denne typen analyser, mens jeg brukte JavaScript på Microsoft.

Jeg brukte SQL hos begge disse selskapene for å hente data fra databasene våre. Deretter vil jeg bruke enten Python og Matplotlib (hos Google) eller JavaScript og D3.js (hos Microsoft) for å visualisere og analysere disse dataene.

Dataanalyse / visualisering med Python

En av de mest populære bibliotekene for datavisualisering er Matplotlib.

Det er et godt bibliotek å komme i gang med fordi:

  • Det er lett å komme i gang med
  • Noen andre biblioteker som seaborn er basert på det. Så, å lære Matplotlib vil hjelpe deg å lære disse andre bibliotekene senere.

Hvordan skal jeg lære dataanalyse / visualisering med Python?

Du bør først lære det grunnleggende om dataanalyse og visualisering. Da jeg lette etter gode ressurser for dette på nettet, kunne jeg ikke finne noen. Så jeg endte opp med å lage en YouTube-video om dette emnet:

Jeg endte også med å lage et fullstendig kurs om dette emnet på Pluralsight, som du kan ta gratis ved å registrere deg for deres 10-dagers gratis prøveperiode.

Jeg vil anbefale dem begge.

Etter å ha lært det grunnleggende om dataanalyse og visualisering, vil det også være nyttig å lære grunnleggende om statistikk fra nettsteder som Coursera og Khan Academy.

Skripting

Hva er skripting?

Scripting refererer vanligvis til å skrive små programmer som er designet for å automatisere enkle oppgaver.

Så, la meg gi deg et eksempel fra min personlige erfaring her.

Før jobbet jeg ved en liten oppstart i Japan hvor vi hadde et e-poststøttesystem. Det var et system for oss å svare på spørsmål kundene sendte oss via e-post.

Da jeg jobbet der, hadde jeg i oppgave å telle antall e-poster som inneholder bestemte nøkkelord, slik at vi kunne analysere e-postene vi mottok.

Vi kunne ha gjort det manuelt, men i stedet skrev jeg et enkelt program / enkelt skript for å automatisere denne oppgaven.

Egentlig brukte vi Ruby for dette den gang, men Python er også et godt språk for denne typen oppgaver. Python er egnet for denne typen oppgaver, hovedsakelig fordi den har relativt enkel syntaks og er lett å skrive. Det er også raskt å skrive noe lite med det og teste det.

Hva med innebygde applikasjoner?

Jeg er ikke ekspert på innebygde applikasjoner, men jeg vet at Python fungerer med Rasberry Pi. Det virker som et populært program blant maskinvarehobbyister.

Hva med spill?

Du kan bruke biblioteket PyGame til å utvikle spill, men det er ikke den mest populære spillmotoren der ute. Du kan bruke den til å bygge et hobbyprosjekt, men jeg personlig ville ikke valgt det hvis du er seriøs med spillutvikling.

Snarere vil jeg anbefale å komme i gang med Unity med C #, som er en av de mest populære spillmotorene. Det lar deg bygge et spill for mange plattformer, inkludert Mac, Windows, iOS og Android.

Hva med stasjonære applikasjoner?

Du kan lage en med Python ved hjelp av Tkinter, men det virker ikke som det mest populære valget heller.

I stedet virker det som språk som Java, C # og C ++ er mer populære for dette.

Nylig har noen selskaper begynt å bruke JavaScript til å opprette skrivebordsprogrammer.

For eksempel ble Slacks desktop-app bygget med noe som heter Electron. Det lar deg bygge stasjonære applikasjoner med JavaScript.

Personlig, hvis jeg bygde et skrivebordsprogram, ville jeg gå med et JavaScript-alternativ. Det lar deg gjenbruke noe av koden fra en nettversjon hvis du har den.

Imidlertid er jeg heller ikke ekspert på stasjonære applikasjoner, så vennligst gi meg beskjed i en kommentar hvis du er uenig eller enig med meg i dette.

Python 3 eller Python 2?

Jeg vil anbefale Python 3 siden det er mer moderne og det er et mer populært alternativ på dette tidspunktet.

Fotnote: Et notat om back-end-kode vs front-end-kode (bare hvis du ikke er kjent med vilkårene):

La oss si at du vil lage noe som Instagram.

Deretter må du opprette frontend-kode for hver type enhet du vil støtte.

Du kan for eksempel bruke:

  • Swift for iOS
  • Java for Android
  • JavaScript for nettlesere

Hvert sett med kode vil kjøres på hver type enhet / nettleser. Dette vil være kodesettet som bestemmer hvordan utformingen av appen vil være, hvordan knappene skal se ut når du klikker på dem osv.

Imidlertid trenger du fortsatt muligheten til å lagre brukernes informasjon og bilder. Du vil lagre dem på serveren din og ikke bare på brukernes enheter, slik at hver brukers følgere kan se hans / hennes bilder.

Dette er hvor backend-koden / server-side-koden kommer inn. Du må skrive noen backend-kode for å gjøre ting som:

  • Hold rede på hvem som følger hvem
  • Komprimer bilder slik at de ikke tar så mye lagringsplass
  • Anbefaler bilder og nye kontoer til hver bruker i oppdagelsen funksjonen

Så dette er forskjellen mellom backend-kode og front-end-kode.

Forresten, Python er ikke det eneste gode valget for å skrive backend / server-side-kode. Det er mange andre populære valg, inkludert Node.js, som er basert på JavaScript.

Likte du denne artikkelen? Da vil du kanskje også like YouTube-kanalen min.

Jeg har en YouTube-kanal for programmeringsutdanning kalt CS Dojo med 440 000+ abonnenter, hvor jeg produserer mer innhold som denne artikkelen.

For eksempel vil du kanskje like disse videoene:

Uansett, tusen takk for at du har lest artikkelen min!