Hvad præcist kan du gøre med Python? Her er Pythons 3 vigtigste applikationer.

Hvis du overvejer at lære Python - eller hvis du for nylig begyndte at lære det - kan du spørge dig selv:

"Hvad kan jeg nøjagtigt bruge Python til?"

Nå, det er et vanskeligt spørgsmål at besvare, fordi der er så mange applikationer til Python.

Men over tid har jeg observeret, at der er 3 vigtigste populære applikationer til Python:

  • Web-udvikling
  • Datalogi - inklusive maskinindlæring, dataanalyse og datavisualisering
  • Scripting

Lad os tale om hver af dem igen.

Web-udvikling

Webrammer, der er baseret på Python som Django og Flask, er for nylig blevet meget populære for webudvikling.

Disse webrammer hjælper dig med at oprette server-side-kode (backend-kode) i Python. Det er den kode, der kører på din server i modsætning til på brugernes enheder og browsere (front-end-kode). Hvis du ikke er bekendt med forskellen mellem backend-kode og front-end-kode, se venligst min fodnote nedenfor.

Men vent, hvorfor har jeg brug for en webramme?

Det skyldes, at en webramme gør det lettere at opbygge en fælles backend-logik. Dette inkluderer kortlægning af forskellige URL'er til klumper af Python-kode, håndtering af databaser og generering af HTML-filer, som brugerne ser i deres browsere.

Hvilken Python-webramme skal jeg bruge?

Django og Flask er to af de mest populære Python-webrammer. Jeg vil anbefale at bruge en af ​​dem, hvis du lige er kommet i gang.

Hvad er forskellen mellem Django og Flask?

Der er en fremragende artikel om dette emne af Gareth Dwyer, så lad mig citere det her:

te>

Hovedkontraster:

  • Kolben giver enkelhed, fleksibilitet og finkornet kontrol. Det er uopfattet (det lader dig bestemme, hvordan du vil implementere ting).
  • Django giver en altomfattende oplevelse: du får et admin-panel, databasegrænseflader, en ORM [objekt-relationskortlægning] og biblioteksstruktur til dine apps og projekter ud af kassen.

Du bør sandsynligvis vælge:

  • Kolbe, hvis du er fokuseret på oplevelsen og læringsmulighederne, eller hvis du vil have mere kontrol over, hvilke komponenter der skal bruges (såsom hvilke databaser du vil bruge, og hvordan du vil interagere med dem).
  • Django, hvis du er fokuseret på det endelige produkt. Især hvis du arbejder på en ligetil applikation såsom et nyhedswebsted, en e-butik eller blog, og du vil have, at der altid skal være en enkelt, åbenbar måde at gøre ting på.

te>

Med andre ord, hvis du er nybegynder, er Flask sandsynligvis et bedre valg, fordi det har færre komponenter at håndtere. Kolbe er også et bedre valg, hvis du vil have mere tilpasning.

På den anden side, hvis du ønsker at bygge noget lige fremad, vil Django sandsynligvis lade dig komme der hurtigere.

Nu, hvis du ønsker at lære Django, anbefaler jeg bogen, der hedder Django for begyndere. Du kan finde det her.

Du kan også finde de gratis eksempler på denne bog her.

Okay, lad os gå til det næste emne!

Datalogi - inklusive maskinindlæring, dataanalyse og datavisualisering

Lad os først og fremmest gennemgå hvad maskinlæring er .

Jeg tror, ​​at den bedste måde at forklare, hvad maskinlæring er, er at give dig et simpelt eksempel.

Lad os sige, at du vil udvikle et program, der automatisk registrerer, hvad der er i et billede.

Så givet dette billede nedenfor (Billede 1), vil du have, at dit program skal erkende, at det er en hund.

I betragtning af denne anden nedenfor (Billede 2) vil du have, at dit program skal erkende, at det er en tabel.

Du kan sige, ja, jeg kan bare skrive en kode for at gøre det. For eksempel, måske hvis der er mange lysebrune pixels i billedet, så kan vi sige, at det er en hund.

Eller måske kan du finde ud af, hvordan du registrerer kanter i et billede. Så kan du sige, hvis der er mange lige kanter, så er det et bord.

Denne form for tilgang bliver dog vanskelig ganske hurtigt. Hvad hvis der er en hvid hund på billedet uden brunt hår? Hvad hvis billedet kun viser de runde dele af bordet?

Det er her maskinindlæring kommer ind.

Maskinindlæring implementerer typisk en algoritme, der automatisk registrerer et mønster i det givne input.

Du kan f.eks. Give 1.000 billeder af en hund og 1.000 billeder af en tabel til en maskinlæringsalgoritme. Derefter lærer det forskellen mellem en hund og et bord. Når du giver det et nyt billede af enten en hund eller et bord, vil det være i stand til at genkende hvilken det er.

Jeg synes, dette ligner noget, hvordan en baby lærer nye ting. Hvordan lærer en baby, at en ting ligner en hund og en anden et bord? Sandsynligvis fra en masse eksempler.

Du fortæller sandsynligvis ikke eksplicit en baby: "Hvis noget er lodent og har lysebrunt hår, så er det sandsynligvis en hund."

Du vil sandsynligvis bare sige, ”Det er en hund. Dette er også en hund. Og denne er et bord. Den ene er også et bord. ”

Maskinlæringsalgoritmer fungerer stort set på samme måde.

Du kan anvende den samme idé til:

  • anbefalingssystemer (tænk YouTube, Amazon og Netflix)
  • ansigtsgenkendelse
  • stemmegenkendelse

blandt andre applikationer.

Populære algoritmer til maskinindlæring, som du måske har hørt om, inkluderer:

  • Neurale netværk
  • Dyb læring
  • Support vektor maskiner
  • Tilfældig skov

Du kan bruge en af ​​ovenstående algoritmer til at løse billedmærkeproblemet, som jeg forklarede tidligere.

Python til maskinlæring

Der er populære maskinlæringsbiblioteker og rammer til Python.

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

  • scikit-learning kommer med nogle af de mere populære maskinindlæringsalgoritmer, der er indbygget. Jeg nævnte nogle af dem ovenfor.
  • TensorFlow er mere et bibliotek på lavt niveau, der giver dig mulighed for at oprette brugerdefinerede maskinlæringsalgoritmer.

Hvis du lige er kommet i gang med et maskinlæringsprojekt, vil jeg anbefale, at du først starter med scikit-learning. Hvis du begynder at løbe ind i effektivitetsproblemer, vil jeg begynde at undersøge TensorFlow.

Hvordan skal jeg lære maskinindlæring?

For at lære grundlæggende maskinlæring, vil jeg anbefale enten Stanfords eller Caltechs maskinlæringskursus.

Bemærk, at du har brug for grundlæggende viden om beregning og lineær algebra for at forstå nogle af materialerne i disse kurser.

Derefter ville jeg øve mig på, hvad du har lært af et af disse kurser med Kaggle. Det er et websted, hvor folk konkurrerer om at opbygge den bedste maskinlæringsalgoritme til et givet problem. De har også gode tutorials til begyndere.

Hvad med dataanalyse og datavisualisering?

For at hjælpe dig med at forstå, hvordan disse kan se ud, lad mig give dig et simpelt eksempel her.

Lad os sige, at du arbejder for et firma, der sælger nogle produkter online.

Derefter kan du som dataanalytiker tegne en søjlediagram som denne.

Fra denne graf kan vi fortælle, at mænd købte over 400 enheder af dette produkt, og kvinder købte omkring 350 enheder af dette produkt denne særlige søndag.

Som dataanalytiker kan du komme med et par mulige forklaringer på denne forskel.

En åbenbar mulig forklaring er, at dette produkt er mere populært hos mænd end hos kvinder. En anden mulig forklaring kan være, at stikprøvestørrelsen er for lille, og denne forskel skyldtes tilfældigt. Og endnu en mulig mulig forklaring kan være, at mænd tendens til at købe dette produkt mere kun søndag af en eller anden grund.

For at forstå hvilken af ​​disse forklaringer der er korrekt, kan du tegne en anden graf som denne.

I stedet for kun at vise dataene for søndag ser vi på dataene i en hel uge. Som du kan se, fra denne graf kan vi se, at denne forskel er ret konsistent over forskellige dage.

Fra denne lille analyse kan du konkludere, at den mest overbevisende forklaring på denne forskel er, at dette produkt simpelthen er mere populært hos mænd end hos kvinder.

På den anden side, hvad hvis du ser en graf som denne i stedet?

Hvad forklarer så forskellen på søndag?

Du kan sige, måske har mænd tendens til kun at købe mere af dette produkt på søndag af en eller anden grund. Eller måske var det bare en tilfældighed, at mænd købte mere af det søndag.

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

Dataanalysearbejdet, jeg udførte, da jeg arbejdede hos Google og Microsoft, lignede meget dette eksempel - kun mere komplekst. Jeg brugte faktisk Python hos Google til denne form for analyse, mens jeg brugte JavaScript hos Microsoft.

Jeg brugte SQL hos begge disse virksomheder til at hente data fra vores databaser. Derefter bruger jeg enten Python og Matplotlib (hos Google) eller JavaScript og D3.js (hos Microsoft) til at visualisere og analysere disse data.

Dataanalyse / visualisering med Python

Et af de mest populære biblioteker til datavisualisering er Matplotlib.

Det er et godt bibliotek at komme i gang med, fordi:

  • Det er let at komme i gang med
  • Nogle andre biblioteker som havfødte er baseret på det. Så læring af Matplotlib hjælper dig med at lære disse andre biblioteker senere.

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

Du skal først lære det grundlæggende i dataanalyse og visualisering. Da jeg ledte efter gode ressourcer til dette online, kunne jeg ikke finde nogen. Så jeg endte med at lave en YouTube-video om dette emne:

Jeg endte også med at lave et fuldt kursus om dette emne om Pluralsight, som du kan tage gratis ved at tilmelde dig deres 10-dages gratis prøveperiode.

Jeg vil anbefale dem begge.

Efter at have lært det grundlæggende i dataanalyse og visualisering, vil det også være nyttigt at lære grundlæggende i statistik fra websteder som Coursera og Khan Academy.

Scripting

Hvad er scripting?

Scripting refererer normalt til at skrive små programmer, der er designet til at automatisere enkle opgaver.

Så lad mig give dig et eksempel på min personlige erfaring her.

Jeg arbejdede tidligere ved en lille opstart i Japan, hvor vi havde et e-mail-support system. Det var et system for os at svare på spørgsmål, som kunder sendte os via e-mail.

Da jeg arbejdede der, havde jeg til opgave at tælle antallet af e-mails, der indeholder bestemte nøgleord, så vi kunne analysere de e-mails, vi modtog.

Vi kunne have gjort det manuelt, men i stedet skrev jeg et simpelt program / simpelt script for at automatisere denne opgave.

Faktisk brugte vi Ruby til dette dengang, men Python er også et godt sprog til denne form for opgave. Python er velegnet til denne type opgaver, hovedsageligt fordi den har relativt enkel syntaks og er let at skrive. Det er også hurtigt at skrive noget lille med det og teste det.

Hvad med integrerede applikationer?

Jeg er ikke ekspert på indlejrede applikationer, men jeg ved, at Python arbejder med Rasberry Pi. Det virker som en populær applikation blandt hardwarehobbyister.

Hvad med spil?

Du kan bruge biblioteket kaldet PyGame til at udvikle spil, men det er ikke den mest populære spilmotor derude. Du kunne bruge det til at opbygge et hobbyprojekt, men jeg ville personligt ikke vælge det, hvis du er seriøs omkring spiludvikling.

Snarere vil jeg anbefale at komme i gang med Unity med C #, som er en af ​​de mest populære spilmotorer. Det giver dig mulighed for at opbygge et spil til mange platforme, inklusive Mac, Windows, iOS og Android.

Hvad med desktop-applikationer?

Du kan lave en med Python ved hjælp af Tkinter, men det virker heller ikke som det mest populære valg.

I stedet ser det ud til, at sprog som Java, C # og C ++ er mere populære til dette.

For nylig er nogle virksomheder også begyndt at bruge JavaScript til at oprette Desktop-applikationer.

For eksempel blev Slacks desktop-app bygget med noget, der hedder Electron. Det giver dig mulighed for at oprette desktop-applikationer med JavaScript.

Personligt, hvis jeg byggede en desktop-applikation, ville jeg gå med en JavaScript-mulighed. Det giver dig mulighed for at genbruge noget af koden fra en webversion, hvis du har den.

Jeg er dog heller ikke ekspert på desktop-applikationer, så lad mig det vide i en kommentar, hvis du er uenig eller er enig med mig i dette.

Python 3 eller Python 2?

Jeg vil anbefale Python 3, da det er mere moderne, og det er en mere populær mulighed på dette tidspunkt.

Fodnote: En note om backend-kode vs front-end-kode (bare hvis du ikke er bekendt med vilkårene):

Lad os sige, at du vil lave noget som Instagram.

Derefter skal du oprette frontend-kode for hver type enhed, du vil understøtte.

Du kan f.eks. Bruge:

  • Swift til iOS
  • Java til Android
  • JavaScript til webbrowsere

Hvert sæt kode kører på hver type enhed / browser. Dette vil være det sæt kode, der bestemmer, hvordan appens layout vil være, hvordan knapperne skal se ud, når du klikker på dem osv.

Du har dog stadig brug for muligheden for at gemme brugernes info og fotos. Du vil gerne gemme dem på din server og ikke kun på dine brugeres enheder, så hver brugers tilhængere kan se hans / hendes fotos.

Det er her backend-koden / server-side-koden kommer ind. Du skal skrive noget backend-kode for at gøre ting som:

  • Hold styr på, hvem der følger hvem
  • Komprimer fotos, så de ikke tager så meget lagerplads
  • Anbefal fotos og nye konti til hver bruger i opdagelsen funktionen

Så dette er forskellen mellem backend-kode og front-end-kode.

Forresten er Python ikke det eneste gode valg til at skrive backend / server-side kode. Der er mange andre populære valg, herunder Node.js, som er baseret på JavaScript.

Kan du lide denne artikel? Derefter kan du også lide min YouTube-kanal.

Jeg har en YouTube-kanal med programmeringsuddannelse kaldet CS Dojo med 440.000+ abonnenter, hvor jeg producerer mere indhold som denne artikel.

For eksempel kan du lide disse videoer:

Alligevel mange tak for at læse min artikel!