Er Python-programmeringsspråket i ferd med å dø? Hvor brukes Python? Hvilken programvare er skrevet i Python

Python er et generellt språk på høyt nivå som kan utvides og bygges inn. Den er for eksempel inkludert i applikasjonspakken som et makroskriveverktøy. Dette gjør Python til et smart valg for mange programmeringsoppgaver, store og små, og ikke så bra for et lite antall beregningsoppgaver.

Hvor er det best å bruke?

Python-språket er ideelt for prosjekter som krever rask utvikling. Den støtter flere programmeringsparadigmer, noe som er bra for programmer som krever fleksibilitet. Og tilgjengeligheten til mange pakker og moduler gir allsidighet og sparer tid.

Guido van Rossum er skaperen av Python, kjærlig hedret av samfunnet som en sjenerøs diktator for livet. På slutten av 1980-tallet likte Guido funksjonene til noen programmeringsspråk, men ingen av dem hadde alle funksjonene han ville ha likt å ha. Spesielt måtte språket ha følgende egenskaper.

Skriptspråk

Et script er et program som kontrollerer andre programmer. Skriptspråk er bra for rask utvikling og prototyping fordi de gjør en god jobb med å overføre data fra en komponent til en annen og sparer programmereren fra bryet med ting som minneadministrasjon.

Brukerfellesskapet foretrekker å referere til Python som et dynamisk programmeringsspråk.

Innrykk for gruppering av operatører

Python bestemmer hvilke uttrykk som tilhører samme gruppe ved å bruke innrykk. En slik gruppe kalles en kodeblokk. Andre språk bruker annen syntaks eller skilletegn for dette. For eksempel, i C, er symbolsymbolet (angir begynnelsen og) slutten av en sekvens av kommandoer. Innrykk anses som god praksis også på andre språk, men Python var en av de første som håndhevet innrykk. Hva gjør den? Innrykk gjør koden lettere å lese, og kodeblokker krever færre start-/sluttmerker og skilletegn som du ved et uhell kan utelate. Alt dette fører til færre feil.

Datatyper på høyt nivå

Datamaskiner lagrer data i enere og nuller, men mennesker trenger mer komplekse former som tekst. Et språk som støtter komplekse data sies å støtte datatyper på høyt nivå. Disse typer data er enkle å betjene. For eksempel i Python kan strenger deles, settes sammen, konverteres til store eller små bokstaver, søkes osv. Datatyper på høyt nivå som lister og ordbøker, som kan lagre andre data, har mye mer funksjonalitet enn andre språk.

Utvidbarhet

Det utvidbare programmeringsspråket kan utvides. Slike språk er veldig kraftige fordi tillegg gjør dem egnet for en rekke bruksområder og operativsystemer. Utvidelser kan legge til enten konsepter, moduler eller plugins. Python-språket er utvidet på flere måter. Hovedgruppen av programmerere jobber med å endre og forbedre den, og hundrevis av andre skriver moduler for spesifikke formål.

Tolkning

Tolkede språk kjøres direkte fra kildekode skrevet av mennesker, og programmer skrevet på kompilerte språk som C++ må gjøres tregere fordi oversettelsen skjer i farten, men programmene skrives og feilsøkes raskere fordi det er du trenger ikke å vente på at kompilatoren avsluttes. De er lettere bærbare på tvers av plattformer.

Man kan krangle om Python er et tolket eller kompilert språk. Selv om det fungerer som en tolket på mange måter, kompileres koden (som i Java) før den kjøres, og mange av komponentene kjører med full maskinhastighet fordi de er skrevet i C.

Guido begynte å skrive Python i juleferien i 1989, og i løpet av det neste året foredlet han språket basert på tilbakemeldinger fra kollegene. Allmennheten så resultatet i februar 1991 da det ble lagt ut på en Usenet-nyhetsgruppe.

For å begynne å skrive programmer i Python, må du installere det. Python 2.7 og Python 3.5 har betydelige forskjeller som gjør programmer skrevet i dem inkompatible.

Dette språket er forhåndsinstallert på Macintosh-datamaskiner, og versjonen avhenger av operativsystemets alder. Hvis du bruker Windows, må du installere Python selv. Installasjonspakkefilene kan velges fra python.org.

To måter å samhandle på

En av grunnene til at Python-programmering er så enkel, er at den kommer med verktøy som hjelper deg med å designe, skrive og feilsøke programmer.

I interaktiv modus legges kommandoer inn én linje om gangen, omtrent som operativsystemet (skallet) aksepterer kommandoer fra kommandolinjen. Du kan også lage korte flerlinjers programmer eller importere kode fra tekstfiler eller Python innebygde moduler. For nybegynnere vil det være nyttig å vite at online-modusen inkluderer et omfattende hjelpesystem. Dette er en praktisk måte å lære seg funksjonene til et programmeringsspråk.

IDLE-utviklingsmiljøet inkluderer en interaktiv modus og verktøy for å skrive og kjøre programmer, samt et navnesporingssystem. Miljøet er skrevet i Python og demonstrerer de omfattende egenskapene til språket.

Interaktiv modus

Her kan du gjøre nesten alt som kan gjøres i et program, til og med skrive flerlinjekode. Denne modusen kan tjene:

  • sandkasse for sikre eksperimenter;
  • et miljø for å lære Python-programmering;
  • et verktøy for å finne og rette feil.

Interaktiv modus kan brukes som en kalkulator, manipulere tekst og tilordne verdier til variabler. Du kan også importere moduler, funksjoner eller deler av programmer for å teste dem. Det hjelper deg å eksperimentere med Python-objekter uten å skrive lange programmer og feilsøke programmer ved å importere deler av dem én om gangen.

Interaktivt arbeid

Etter å ha startet Python, vil terminalvinduet vise informasjon om gjeldende versjon av programmet, utgivelsesdatoen, flere spørsmål om ytterligere handlinger og en inndatamelding >>>.

For å arbeide i interaktiv modus, skriv inn en kommando eller et uttrykk og trykk på enter-tasten.

Python tolker inndataene og vil svare hvis det skrevne krever et svar, eller tolken ikke forstår det.

Følgende kommando vil skrive ut en linje. Siden ingen utskriftsplassering er spesifisert, skjer utskriften til skjermen.

  • >>> skriv ut "Hei verden!"
  • Hei Verden!

Denne enkeltlinjen er hele programmet! I interaktiv modus behandler Python hver linje i den angitte koden etter å ha trykket på enter, og resultatet vises nedenfor.

Vise informasjon om et objekt

I interaktiv modus er det to måter å vise informasjon om et objekt på:

  • skriv inn objektet (eller navnet) og trykk enter-tasten;
  • skriv inn kommandoen print og objektet (eller dets navn) og trykk Enter.

Resultatet avhenger av objektet.

Når du bruker noen datatyper (for eksempel heltall og lister), gir disse to metodene samme resultat:

  • >>> x =
  • >>> x
  • >>> skriv ut x

For strenger er utdataene ved å skrive "utskriftsnavn" litt forskjellig fra utdataene ved å skrive et navn. I det første tilfellet er verdien omsluttet av anførselstegn, men i det andre er det ikke:

  • >>> x = "MyString"
  • >>> x
  • "MyString"
  • >>> skriv ut x
  • Mystring

Når navnet refererer til en kodeblokk (for eksempel en funksjon, modul eller klasseforekomst), vil inntasting av navnet gi informasjon om datatype, navn og lagringssted.

Følgende eksempel oppretter en klasse med navnet Message og viser informasjon om

  • >>> klassemelding:
  • ... sende
  • >>> Melding
  • >>> skriv ut melding
  • __hoved __. Beskjed

Strenger

I Python er strenger sekvenser av tegn. En strengliteral lages ved å omslutte tegn i enkle ("), doble ("), eller trippel ("" "eller" "") anførselstegn. Dette eksemplet tildeler en verdi til variabelen x:

  • >>> x = "MyString"

Python-strengen har flere funksjoner innebygd. En av dem er muligheten til å få tilbake kopien din med alle disse funksjonene er kjent som metoder. Du må bruke punktsyntaks for å kalle en metode på et objekt. Det vil si etter å ha skrevet inn navnet på variabelen, som i i dette tilfellet er en referanse til et strengobjekt, må du sette inn en punktoperator (.), og deretter navnet på metoden, etterfulgt av en åpnings- og lukkeparentes:

  • >>> x.lower ()
  • "mystring"

Du kan få en del av en streng ved å bruke s [i] indekseringsoperatoren. Indeksering starter på null, så s returnerer det første tegnet i strengen, s returnerer det andre, og så videre:

  • >>> x
  • >>> x

Strengemetoder fungerer med både vanlige strenger og Unicode-strenger. De gjør følgende:

  • endring av store bokstaver (store bokstaver, øvre, nedre, bytte bokstav, tittel);
  • telle (telle);
  • endre kodingen (kode, dekode);
  • søk og erstatt (finn, erstatt, rfinn, indekser, rindekser, oversett);
  • kontrollere oppfyllelsen av betingelsene (starter med, slutter med, isalnum, isalpha, isdigit, islower, isspace, istitle, isupper);
  • join and split (join, partition, rpartition, split, splitlines);
  • format (senter, lyst, lstrip, rstring, rjust, strip, zfill, expandtabs).

Python: lister

Hvis Python-strenger er begrenset til tegn, er ikke lister begrenset. De er ordnede sekvenser av vilkårlige objekter, inkludert andre lister. I tillegg kan du legge til, fjerne og erstatte elementene deres. En rekke objekter, atskilt med komma inni og det er Hva det er, er vist nedenfor - her er eksempler på data og operasjoner med dem:

  • >>> baser = ["A", "C", "G", "T"]
  • >>> baser
  • ["A", "C", "G", "T"]
  • >>> bases.append ("U")
  • >>> baser
  • ["A", "C", "G", "T", "U"]
  • >>> bases.reverse ()
  • >>> baser
  • ["U", "T", "G", "C", "A"]
  • >>> baser
  • >>> baser
  • >>> bases.remove ("U")
  • >>> baser
  • ["T", "G", "C", "A"]
  • >>> bases.sort ()
  • >>> baser
  • ["A", "C", "G", "T"]

I dette eksemplet ble det opprettet en liste over individuelle symboler. Deretter ble et element lagt til på slutten, rekkefølgen på elementene ble reversert, elementene ble hentet etter deres indeksposisjon, elementet med verdien "U" ble fjernet, og elementene ble sortert. Fjerning av et element fra en liste illustrerer en situasjon der remove ()-metoden må gi tilleggsinformasjon, nemlig verdien som skal fjernes.

Foruten metoder som fjern (), har Python en annen lignende funksjon kalt en funksjon. Den eneste forskjellen mellom funksjon og metode er at førstnevnte ikke er knyttet til et spesifikt objekt.

Python: funksjoner

Funksjoner utfører handlinger på en eller flere verdier og returnerer et resultat. Et stort antall av dem er innebygd i Python. Eksempler på innebygde funksjoner:

  • len () - returnerer antall elementer i en sekvens;
  • dir () - returnerer en liste over strenger som representerer attributtene til objektet;
  • list () - Returnerer en ny liste, initialisert fra en annen sekvens.
  • >>> hjelp (rundt)
  • Hjelp til innebygd funksjonsrunde:
  • runde (...)
  • runde (nummer [, ndigits]) -> flyttallnummer

Det er også mulig å definere egne funksjoner.

Brukerdefinerte funksjoner

Prosessen for å lage din egen Python-funksjon er som følger. Den første linjen starter med nøkkelordet def, etterfulgt av funksjonens navn og argumenter (forventede innganger), omsluttet i parentes, og slutter med et kolon. Påfølgende kommandoer utgjør hoveddelen av funksjonen og må rykkes inn. Hvis kommentaren er i begynnelsen av funksjonsteksten, blir den en del av dokumentasjonen. Den siste linjen i funksjonen returnerer resultatet:

  • >>> def transkribere (dna):
  • ... "" "Returner DNA-strengen som rna-streng." ""
  • ... returner dna.replace ("T", "U")
  • >>> transkribere ("CCGGAAGAGCTTACTTAG")
  • "CCGGAAGAGCUUACUUAG"

I dette eksemplet ble det opprettet en funksjon kalt transkribere som forventer en streng som representerer en DNA-sekvens. Erstatt ()-metoden returnerer en kopi av den originale strengen, og erstatter alle forekomster av ett tegn med et annet. Tre linjer med kode gjorde det mulig å transkribere DNA til RNA. ser slik ut:

  • >>> def revers(er):
  • ... "" "Retur sekvensstrengen i omvendt rekkefølge." ""
  • ... bokstaver = liste(r)
  • ... letters.reverse ()
  • ... returner "" .join (bokstaver)
  • >>> revers ("CCGGAAGAGCTTACTTAG")
  • "GATTCATTCGAGAAGGCC"

Den omvendte funksjonen tar en streng, lager en liste basert på den og reverserer rekkefølgen. Nå må vi gjøre den omvendte transformasjonen. Objektet har en join ()-metode som setter sammen listen ved å skille hvert av elementene med en strengverdi. Siden ingen skilletegn er nødvendig, brukes metoden på en tom streng, representert med to anførselstegn ("" eller "").

Ordbøker

Og hva er en Python-ordbok? Den har de samme fordelene som en vanlig papirordbok. Lar deg raskt finne ønsket verdi (definisjon) knyttet til en nøkkel (ord). Ordbøker er omsluttet av krøllete klammeparenteser og inneholder en kommaseparert sekvens av nøkkelverdi-par. Ordbøkene er ikke bestilt. I stedet får man tilgang til ordbokens betydninger gjennom nøkkelen deres, ikke deres posisjon.

  • >>> basekomplement = ("A": "T", "C": "G", "T": "A", "G": "C")
  • >>> basecomplement.keys ()
  • ["A", "C", "T", "G"]
  • >>> basecomplement.values ​​()
  • ["T", "G", "A", "C"]
  • >>> basekomplement ["A"]

Klasser

For å lage dine egne objekter, må du definere en slags mal som kalles en klasse. I Python gjøres dette ved å bruke klassesetningen, etterfulgt av et navn og et kolon. Brødteksten til en klassedefinisjon inneholder egenskaper og metoder som vil være tilgjengelige for alle objektforekomster basert på denne klassen.

Fordeler

De fleste programmeringsspråk tilbyr praktiske funksjoner, men ingen tilbyr kombinasjonen av bekvemmelighet og kraft som Python tilbyr. Hva er disse fordelene? Her er noen av dem:

  • Språket kan bygges inn i andre applikasjoner og brukes til å lage makroer. For eksempel, i Paint Shop Pro 8 og senere, er det et skriptspråk.
  • Python er gratis å bruke og distribuere, kommersielt eller ikke.
  • Språket har kraftige muligheter for å behandle og søke etter tekst, som brukes i applikasjoner som arbeider med store mengder tekstinformasjon.
  • På den kan du lage store applikasjoner uten å måtte sjekke programmene som er lansert.
  • Python støtter testing og feilsøking av individuelle moduler og hele programmer.
  • Python,
  • Utvikling av nettsider
  • Hvis du leter etter svar på spørsmålet: "Hvilket programmeringsspråk du bør velge først", så vil du et sted i 90% av alle tilfeller bli tilbudt Python - som det enkleste språket å lære. Og åpenbart vil et visst antall personer som ikke har lært programmering før velge Python på grunn av disse retningslinjene. Og her har vi et problem, som vil bli diskutert nedenfor. Selvfølgelig med en beskrivelse av hvordan jeg kom til et slikt liv.

    Om meg selv

    Tilbake i studietiden innså jeg at spesialiteten min ikke er så rosenrød som den virket for meg i en alder av 18. Så jeg begynte å tenke på hvordan jeg skulle tjene nok penger. Og etter å ha hørt mange historier om hvordan fetteren min mottok gale penger på den tiden i 1C, bestemte jeg meg også for å koble livet mitt til IT.

    I utgangspunktet var dette malsider på konstruktører og wordpress, så tok jeg opp SEO, og på et tidspunkt kom jeg over Habr, hvoretter jeg bestemte meg for å bli en fullverdig programmerer. Jeg hadde ikke høyere matematikk, så jeg bestemte meg for å velge et område der det ikke er nødvendig - webutvikling.

    Jeg fikk et åpenbart spørsmål: hvilket språk jeg skal velge - php / python / ruby. Etter å ha sett nok artikler om Habré, leste jeg hatet mot php, etter å ha sett et par motiverende videoer fra Yandex. Jeg valgte Python. Fordelene med språket håper jeg du vet, så jeg vil ikke snakke om det.

    Primær språkopplæring

    Jeg kombinerte å lære et språk med hovedjobben min, så jeg leste bøker, så på opplæringsprogrammer, saget av små prosjekter om kvelden. Generelt, i løpet av et år

    1) Studerte bøker:

    • Mark Lutz - Learning Python
    • Mark Lutz - Python-programmering
    • Chad Fowler - Fanatisk programmerer
    • Bill Lubanovich - Enkel Python
    2) Studerte mange videoer fra ukrainske/borgerlige forfattere på Django
    3) Bestått kurs fra codeacademy
    4) Mestret PyCharm

    Ditt første prosjekt

    Så fikk jeg ideen om en liten tjeneste om et veldig spesifikt emne, som jeg bestemte meg for å lage for å konsolidere kunnskapen min om Python + Django.

    Når jeg oppretter et nettsted,

    1) Studerte bøker:

    • John Duckett - HTML og CSS. Utvikling og design av nettsider
    • David Flanagan - JavaScript. Detaljert veiledning
    • Ben Forta - Lær SQL på egen hånd.
    2) Jeg studerte Django-dokumentasjonen for oppgavene mine
    3) Studerte distribusjon av prosjekter på Django Gunicorn + nginx + centOS

    Ditt første vanlige prosjekt

    Etter at det første tilstrekkelige nettstedet mislyktes, bestemte jeg meg for å lage noe som allerede var verdt, valgte en idé, valgte en implementeringsplan og laget den på 3 måneder om kvelden.

    Prosjektet har vist sin levedyktighet (til i dag gir det meg noen penger, noe jeg er ekstremt glad for). Og jeg bestemte meg for å pumpe den bedre allerede.

    Etter å ha lest boken "Percival H. - Test-Driven Development with Python", bestemte jeg meg for å skrive tester først basert på Django-komponenter, så plukket jeg opp Selenium-dokumentasjonen, og gjorde allerede eksterne tester.

    Jeg vil være kul

    Etter å ha åpnet ledige stillinger for Python-Django-utviklere, så jeg på hva annet som vanligvis kreves i slike stillinger:
    • Django Rest Framework
    • Selleri
    • Tornado / Twisted / asyncio (en å velge)
    • Klassebasert visning Django
    • Vinkel/reager (en å velge)
    Brukte 3 måneder på å bli kjent med / prøve disse tingene. Har også tatt opp Python-standardbiblioteket + eksternt parsingbibliotek beautifulSoup.

    Du gnir ikke uten C / C ++

    Det er en oppfatning at uten kunnskap om C / C ++ kan en programmerer ikke kalle seg en programmerer. Derfor, da jeg hadde ledig tid, ble jeg kjent med bøkene:
    • Brian Kernighan - C-programmeringsspråket
    • Stanley B Lippman - C ++ programmeringsspråk. Grunnkurs
    Jeg leste bøker, gravde dypere i koden, så på kompilering, så på kodeeksempler. Generelt, nå gjorde jeg ikke store øyne ved omtale av lenker, pekere, sorteringer, OOP og en haug med forskjellige arrays med forskjellige behandlingshastigheter for et element, avhengig av dets posisjon.

    Jeg er klar til å kjempe!

    Og her kommer vi til det viktigste punktet. Etter å ha brukt totalt 2 år på å studere alle elementene i webprogrammering som jeg nevnte ovenfor. Jeg anså meg selv som klar nok til å kvalifisere for stillingen som Python-webutvikler. Selvfølgelig visste jeg ikke noe særlig godt, noe overfladisk og noe jeg ikke visste i det hele tatt (for eksempel Flask), men den generelle forståelsen og ferdighetene var ikke dårlige.

    Og det var her problemene med Python begynte, som folk ofte ikke fokuserer på. Nemlig på etterspørselen etter virksomhet i Python junior / pre-middle level utviklere.

    Med dette spørsmålet kom jeg inn på markedet

    Selv om det ved første øyekast ser ut til at det er mange ledige stillinger i Python, men når detaljene begynner, endres alt dramatisk.

    1. Umiddelbart er det stort frafall av ledige stillinger, hvor Python utelukkende er et hjelpespråk. Oftest er dette stillinger til Java-utviklere, systemadministratorer, QA-Automation. Også nå er det stort frafall i Data Learning, hvor matteutdanning + R-språk kreves. med Python alene kan du ikke finne denne ledige stillingen.

    2. Det viste seg at i min by er det ingen ledige stillinger for Python, det er ingen ledige stillinger i det hele tatt. Ved å utvide søket til hele området fikk jeg også et utilfredsstillende resultat. Et par jobber i PHP der Python gikk "ville være et pluss." Etter å ha åpnet filteret i løpet av de siste 3 årene, fant jeg også ut at det ikke var noen ledige stillinger i Python i det hele tatt. De. virksomheten i provinsene velger oftest enklere og mer populære teknologier enn Python.

    3. Etter å ha åpnet jobber i Python i en generell søkemotor, fant jeg følgende trender:

    • 90% + ledige stillinger er lokalisert i Moskva eller St. Petersburg
    • 90% + ledige stillinger krever et mellomnivå + / seniornivå
    • ~ 100 % av ledige stillinger for juniorstillinger i Moskva eller St. Petersburg (oftest fra giganter)
    Situasjonen har med andre ord vist seg at hvis du ikke bor i Moskva, St. Petersburg og ikke skal gå for å "erobre" dem, så har du praktisk talt ingen steder å få din første jobb.

    Selvfølgelig er det et par arnesteder der Python fortsatt brukes, for eksempel i Kazan. Men oftere enn ikke, er dette en bedrift, hvor ledige stillinger også er veldig mellom +/senior.

    4. Alternativet for å søke etter en avstand til dagens nivå viste også at arbeidsgivere ikke er klare til å ta en slik risiko. Lite erfaring + fjernarbeid = dette er en slags fantasi.
    Likevel klarte jeg fortsatt å finne et par alternativer, men allerede under innledende intervju ble det klart at dette er tull av typen: «Du jobber hos oss i tre måneder, og hvis oppdragsgiver betaler for arbeidet ditt, skal vi betale deg også." Ikke det beste alternativet.

    5. Snakket med et par HR-er fra store selskaper, de ga uttrykk for denne tendensen. "Vi tar vanligvis folk med et år eller mer erfaring i Python, pluss erfaring i et annet språk (3+ år). Oftest php / Java ". Med andre ord, de vurderte ikke alternativene i det hele tatt for å ta en person med kun Python.

    6. Etter å ha snakket med gutta fra de spesialiserte foraene, ble det klart at dette er en ganske typisk situasjon. Fra historiene deres ble det klart at etter et forgjeves søk gikk folk enten på jobb med php / 1c, eller på en eller annen måte klatret gjennom upwork / sitt eget prosjekt / testautomatisering.
    Men igjen fra tid til annen.

    Generelt viser det seg at Python er et flott språk som lar deg gjøre kraftige prosjekter. Og det skjedde at konsentrasjonen deres er i hovedstedene. Og siden dette er komplekse prosjekter, kreves det ansatte der allerede på mellom + nivå. Er noen som nettopp har lært Python klar for en slik jobb? Hard!

    Men det er en annen måte!

    For øyeblikket er det bare i byen min 24 ledige stillinger i php på forskjellige nivåer (alt fra små selskaper som trenger å støtte det nåværende nettstedet, til e-handelsgiganter som tilbyr en konsekvent utvidelse av funksjonalitet). Og omtrent like mange ledige stillinger for 1C. Og omtrent halvparten av disse ledige stillingene er klare til å ansette en person som kan i det minste noe innen programmering. Mest sannsynlig er dette ikke de beste stedene, men dette er den første jobben, hvoretter du offisielt vil bli en erfaren programmerer for HR.

    Så til slutt

    Det viser seg at du kan lære et kult Python-programmeringsspråk og holde deg på gaten. Eller du kan lære deg den "hatte" php / 1c og få deg en jobb. Kvaliteten på dette arbeidet etterlater selvfølgelig mange spørsmål - men dette er allerede en opplevelse.

    Når det gjelder meg, under mine forhold (for ikke å gå til Moskva / St. Petersburg) brukte jeg faktisk tid på å lære språket, som nå er etterspurt utelukkende i mine egne prosjekter. Jeg klarte ikke å finne arbeid lokalt eller eksternt. Nå går jeg i retning av php, siden det er trivielt å jobbe med det.

    Derfor, hvis du ikke bor i Moskva, St. Petersburg, er du ikke student ved et teknisk universitet, så vil jeg ikke anbefale deg å lære Python som førstespråk. Vær oppmerksom på PHP - det er alltid steder for det, det er arbeid, det er erfaring. Og den videre utviklingsveien er allerede din.

    P.S. Som vennen min foreslo for meg, er situasjonen nesten den samme i Ruby. Men her kan jeg allerede ikke snakke med sikkerhet.

    Er det verdt å lære programmeringsspråket Python? Tross alt kan du ofte høre at dette språket er i ferd med å dø. Dette spørsmålet ble diskutert av brukere av Quora-nettstedet og delte deres meninger.

    Bill Karwn, SQL-utvikler, konsulent, trener og forfatter

    Assembly-språk gir deg den perfekte muligheten til å skrive kompakt, effektiv og prosjektoptimalisert kode. Du kan gjøre fantastiske ting i kode skrevet på dette språket, som bare er noen få kilobyte stort. Men effektivitetsnivået som kan oppnås ved å bruke assemblerspråk rettferdiggjør ikke det ekstra arbeidet, den ekstra tiden og ferdighetene det krever.

    Det er sant at språk både blir populært og mister det. Produktivitet er en stor utfordring i programmering, så fra tid til annen lages det nye språk som øker produktiviteten for i det minste noen typer arbeid.

    De fleste programmerere bruker i dag språk på høyere nivå - de må være mer produktive. Språk på toppnivå kan kompileres til maskinkode (C eller C ++), eller de kan kompileres til arkitekturuavhengig bytekode og kjøres i en virtuell maskin (Java) eller behandles (JavaScript, PHP, Ruby, Python, Perl, etc.).

    Misforståelsen om at det er nødvendig å lære assemblerspråk, fordi "det er bedre enn Python." Dette er et dumt synspunkt basert på utdaterte data.

    Bill Poucher, administrerende direktør i ICPC, programvare for energi, syntetisk genetikk og mer.

    Lær Python. Gi deg selv erfaring med programmering. Dette språket har sin egen eleganse.

    Lær C som språk for Unix-maskiner. Det er relativt enkelt å forstå UNIX.

    Lær MIX for å forstå Knuth.

    Lær Java slik at du ikke har problemer med å jobbe med andre, samt mestre objektorientert programmering.

    Lær deg C ++ slik at du kan programmere i hvilken som helst stil du vil. Styrken er at det er hovedprogrammeringsspråket. Hans svakhet er at du må forstå stilen hans for å kunne programmere i den.

    Lær LISP for å styrke din forståelse av rekursjon.

    Sa jeg at du ikke burde lære i det minste noe? Nei. For det eneste som må gjøres er å venne seg til å hele tiden lære noe, spesielt å lære hvordan man løser problemene som oppstår.

    Shiva Shinde, Python er lett å kode, men vanskelig å lese

    Python-programmeringsspråket er ikke døende, det er et av de raskest voksende språkene.

    1. Det er lett å lære
    • For øyeblikket bruker 8 av de 10 beste amerikanske dataprogrammene dette språket (Philip Guo, CACM)
    • Python-programmer har vanligvis et minimum av mønstre som ofte finnes i andre programmeringsspråk. Derfor kan du bruke ukonvensjonelle problemløsninger oftere.
    • Hvis du har erfaring med programmering, selv om du ikke er på dette språket, vil du raskt mestre Python.

    2. Full funksjonalitet

    • Det er ikke bare et språk for statistikk. Python har alle muligheter for å samle inn og rense data, for å jobbe med databaser og databehandling med høy ytelse, og mye mer.
    • Dette er et generelt akseptert programmeringsspråk med et stort antall innebygde biblioteker. Det er bra for data- og databaseadministrasjon samt nettverksprogrammering. Det er et gjennomtenkt språk med en enorm mengde ressurser tilgjengelig.

    3. Seriøse vitenskapelige databiblioteker

    • Python har betydelige vitenskapelige biblioteker med en enorm mengde data å bruke.
    • Ryggraden i disse vitenskapelige bibliotekene er SciPy Ecosystem, som til og med arrangerer sine egne konferanser.
    • Pandaer og Matplotlib er begge en del av SciPy. De gir overlegne data om et bredt spekter av emner som maskinlæring, tekstutvinning og nettverksanalyse.

    Hernan Soulages, pragmatisk programmerer

    Dette språket er ganske populært, dets betydning vokser i akademiske kretser. Det er også sant at nytten av et programmeringsspråk avhenger av hva du vil gjøre i det.

    Jeg liker ikke PHP i det hele tatt, men jeg er ikke dum nok til å benekte dets allsidighet og kraft, og at språket er lett nok å mestre.
    Når det gjelder å lære assembler, avhenger dette språket direkte av hvilken prosessor du jobber med.

    Hvis du vet hvordan du jobber med en, vil du definitivt kunne bruke den i en prosessorfamilie i noen tid. Men over tid gjennomgår de også noen endringer. Slik sett er det den minst holdbare språkfamilien.

    Magnus Lyczka, programvareutvikler og konsulent i Gøteborg

    Mange brukere liker Python. For noen applikasjoner vil det gå for sakte, og for eksempel med assemblerspråk vil de kjøre raskere, men også raskt vil disse applikasjonene kjøre i C, mens koden skrevet i C vil fungere for alle plattformer.

    Mange startups fikk suksess med Python-språket, hvoretter de måtte skrive om noen programmer i Java, C++ eller C. Og hvis disse startupene begynte å jobbe i assemblerspråk, ville de mest sannsynlig ha gått tom for finansiering lenge før de raskt men vanskelig å lese kode ville være komplett.

    Men når du arbeider med assemblerspråk, må du ikke bare forholde deg til forskjellige prosessorarkitekturer, men også med tekniske detaljer som er forskjellige i forskjellige operativsystemer.

    3 svar

    Python er et dynamisk, sterkt skrevet, objektorientert, lagdelt programmeringsspråk designet for å være raskt (lære, bruke og forstå) og gi klar og konsistent syntaks.

    • Python dynamisk printed: Dette betyr at du ikke deklarerer en type (f.eks. "heltall") for et variabelnavn, og så tildeler du noe av den typen (og bare den typen). I stedet har du variabelnavn, og du binder dem til objekter hvis type forblir med selve enheten. a = 5 gjør navnet på a til en referanse til et heltall 5. Senere gjør a = "hei" navnet på a til en referanse til strengen som inneholder "hei". Statiske språk kan deklarere int a og deretter a = 5, men å tildele a = "hei" ville være en kompileringsfeil. På den ene siden gjør det alt mer uforutsigbart (du vet ikke hva a refererer til). På den annen side er det veldig enkelt å oppnå noen resultater som statiske maskinskrevne språk gjør det veldig vanskelig.
    • Python sterkt skrevet... Dette betyr at hvis a = "5" (en streng hvis verdi er "5"), vil den forbli en streng og vil aldri bli tvunget til et tall hvis konteksten krever det. Hver typekonvertering i python må gjøres eksplisitt. Dette er forskjellig fra for eksempel Perl eller Javascript, hvor du har dårlig tekstinntasting og kan skrive ting som «hei» + 5 for å få «hello5».
    • Python objekt orientert, med klassebasert arv. Alt dette er et objekt (inkludert klasser, funksjoner, moduler osv.) i den forstand at de kan sendes som argumenter, har metoder og attributter osv.
    • Python flerbruk: den spesialiserer seg ikke på et spesifikt formål for brukere (som R for statistikk eller PHP for webprogrammering). Det utvides gjennom moduler og biblioteker som kobles til programmeringsspråket C veldig enkelt.
    • Python gir riktig innrykk kode ved å rykke inn syntaksen. Det er ingen kontrollkrøllete seler i Python. Kodeblokker identifiseres av innrykknivået. Mens mange programmerere ikke er vant til dette, er det veldig verdifullt siden det gir en veldig enhetlig stil og gir kode som er visuelt behagelig å lese.
    • Koden kompileres til byte kode og deretter kjøres i en virtuell maskin. Dette betyr at forhåndskompilert kode er portabel på tvers av plattformer.

    Python kan brukes til alle programmeringsoppgaver, fra GUI-programmering til webprogrammering med alt annet i mellom. Dette er ganske effektivt siden det meste av aktiviteten gjøres i C-laget. Python er bare et lag på toppen av C. Det finnes biblioteker for alt du kan tenke deg: spillprogrammering og OpenGL, GUI-grensesnitt, nettrammeverk, semantiske nettverk, vitenskapelig databehandling ...

    Python tilbyr et steg inn i programmeringsverdenen. Til tross for at programmeringsspråket Python har eksistert i 25 år, vokser det fortsatt i popularitet. Noen av de største fordelene med Python er:

    • Lett å lese og lett å lære
    • Svært produktive eller små så vel som store prosjekter
    • Store biblioteker for mange ting

    Hva brukes Python-programmeringsspråket til?

    Som et generelt programmeringsspråk kan Python brukes til flere ting. Python kan enkelt brukes til små, store, online og offline prosjekter. De beste brukssakene for Python er nettutvikling, enkel skripting og dataanalyse. Her er noen eksempler på hva Python lar deg gjøre:

    Webutvikling:

    Du kan bruke Python til å bygge webapplikasjoner med mange kompleksitetsnivåer. Det er mange flotte Python-nettverk der ute, inkludert Pyramid, Django og Flask, for å nevne noen.

    Dataanalyse:

    Python er det ledende språket for mange forskere. Python har blitt populært i dette området for sine utmerkede biblioteker, inkludert; NumPy og Pandas og dets flotte datavisualiseringsbiblioteker som Matplotlib og Seaborn.

    Maskinlæring:

    Hva om du kunne forutsi kundetilfredshet eller analysere hvilke faktorer som vil påvirke prisen på husholdninger eller forutsi en aksje i løpet av de neste dagene basert på data fra tidligere år? Det er mange flotte biblioteker der ute som implementerer maskinlæringsalgoritmer som Scikit-Learn, NLTK og TensorFlow.

    Datamaskin syn:

    Du kan gjøre mange kule ting som ansiktsgjenkjenning, fargegjenkjenning ved å bruke Opencv og Python.

    Online om ting med Raspberry Pi:

    Raspberry Pi er en veldig liten og rimelig datamaskin som ble designet for læring og har fått enorm popularitet blant hobbyister med hjemmelaget maskinvare og automatisering. Du kan til og med bygge en robot og automatisere hele hjemmet ditt. Raspberry Pi kan brukes som en hjerne for roboten din til å utføre ulike handlinger og/eller reagere på miljøet. Koding på en Raspberry Pi kan gjøres ved hjelp av Python. Mulighetene er endeløse!

    Spillutvikling:

    Lag et videospill ved å bruke Pygame-modulen. I utgangspunktet bruker du Python til å skrive spilllogikken din. PyGame-apper kan kjøres på Android-enheter.

    Nettskraper:

    Hvis du trenger å hente data fra et nettsted, men nettstedet ikke har et API for å publisere dataene, bruk Python til å rydde opp i dataene.

    Skripting:

    Hvis du gjør noe for hånd og ønsker å automatisere gjentatte ting som e-poster, er det ikke vanskelig å automatisere når du først kjenner det grunnleggende i språket.

    Nettleserautomatisering:

    Gjør noen fine ting som å åpne nettleseren din og legge ut Facebook-statusen din, du kan gjøre dette med Selenium med Python.

    Utvikling av et grafisk grensesnitt:

    Bygg en grafisk app (skrivebordsapp) ved å bruke Python Tkinter-moduler, PyQt for støtte.

    Hurtig prototyping:

    Python har biblioteker for omtrent alle. Bruk den til å raskt bygge en (lavere, ofte mindre kraftig) prototype. Python er også flott for å teste ideer eller produkter for etablerte bedrifter og nybegynnere.

    Python kan brukes i mange forskjellige prosjekter. Hvis du er en programmerer som leter etter et nytt språk, vil du at det skal bli populært. Som nybegynner til programmering er Python det perfekte valget for å lære raskt og enkelt.

    Alt er dårlig, du kan bruke Kivy som kjæledyrprosjekter, for reell utvikling er det veldig tvilsomt, det er ingen ledige stillinger hos Kivy.

    De. som, jeg personlig snakket med en rekke personer som hadde sitt eget nettprosjekt i Python og skrev applikasjoner i Kivy for å fange et stort publikum, og de brukte det til og med, men det ser ut som "Programmereren skriver hva han vil."

    Maskinlæring og datavitenskap (tilstrekkelig og lovende)

    Dette er et av de mest hypede områdene i den moderne IT-verdenen, hvor Python brukes som et godkjenningsverktøy. Python har en rekke praktiske maskinlærings- og vitenskapelige databiblioteker: Pandas, NumPy, SciPy, Scikit-Learn, som lar deg raskt bygge arbeidsmodeller. Og de fungerer faktisk ganske bra.

    Bruksmessig brukes Python som et testverktøy, eller til små oppgaver. Hvis prosjektet er stort, er modellen vanligvis skrevet i Java / Scala / C ++, og treningsspesialisten fungerer allerede som konsulent / analytiker.

    Kompleksiteten i denne retningen ligger i at du må ha høy kunnskap innen matematikk og statistikk, du vil nesten alltid bli spurt om en høyere teknisk, matematisk utdanning.

    For ledige stillinger er alt ganske bra, men slike ledige stillinger krever ikke kunnskap om Python, men hodet ditt.

    For de som raskt vil føle denne retningen, anbefaler jeg deg å lese boken: "Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python _-_ A_Myuller_S_Gvido_2017" - er på torrents, les raskt, gir en god idé.

    Nettskraping (mulig, men tvilsom)

    Python har tre ting som gjør det veldig effektivt innen nettskraping, Requests-biblioteket, beautifulsoup og API for Selenium. Hvis du kobler til biblioteker for datasyn og maskinlæring her, får du svært effektive verktøy.

    Problemet er at det er få ledige stillinger i dette området, hovedklientene er frilansere som tilbyr å skrive dem parsing scripts for deres drittsider, spam-maskiner og noen ganger generatorer av anmeldelser.

    Området er interessant, men det er lite penger i det.

    Datasyn (tvilsomt)

    Python har en rekke verktøy som lar deg skrive datasynsverktøy, de brukes til og med steder i kommersielle produkter, eller som komponenter, for eksempel for nettskraping. Imidlertid er Python tydeligvis ikke et passende verktøy, så bruken er ekstremt begrenset, det er praktisk talt ingen ledige stillinger.

    GameDev (tvilsomt)

    I nesten hver eneste diskusjon om Python-spillutvikling, er eve online og WarGaming nevnt som eksempler. I det første tilfellet brukes imidlertid statsløs python, og i det andre tilfellet er alt begrenset til skriptspråket.

    Når det gjelder ekte bruk, så har du tre motorer Kivy, PyGame, Panda3D, hvis de to første er mer egnet for kjæledyrprosjekter, så ble den tredje faktisk brukt på kampprosjekter av god kvalitet, selv om disse prosjektene var i 2004. Hvilken slags hint om at bruk av velprøvde motorer på andre språk som Unity eller Game Maker ser mer overbevisende ut.

    Imidlertid sniker Ren'Py-motoren seg umerkelig hit, som plutselig ble den beste motoren for å skrive visuelle romaner (lidelseshistorier for jenter), som lønner seg godt selv innenfor den russiske føderasjonen. Serien «7 demonologists of Peter the Great» er et bevis på det.

    Selvfølgelig er det ingen ledige stillinger i GameDev for python, men du kan samle inn penger til en "startup" med riktig dyktighet. Men det er tryggere å ta et annet språk og velprøvde motorer.

    Nettutvikling (tilstrekkelig og lovende)

    Python er ett av de tre språkene (Python, PHP, Ruby) som har utviklet økosystemer for rask utvikling av nettprosjekter av tilstrekkelig kvalitet. De viktigste plattformene her er:
    • Django (monolittisk synkront rammeverk)
    • Kolbe (mikrosynkront rammeverk)
    • Tornado (monolittisk asynkront rammeverk)
    • Twisted (monolittisk asynkront rammeverk)
    • Aiohttp (mikroasynkront rammeverk)
    For øyeblikket er det meste av markedet okkupert av Django-rammeverket, men med fremkomsten av mikrotjenester-ideer begynte Flask gradvis å få fart. Når det gjelder asynkroni, er alt komplisert her, siden Tornado og Twisted anses som foreldet (selv om mange selskaper jobber for dem, samme Tinkov), og aiohttp er veldig rå, og bruken er tvilsom.

    Styrken til Python ligger i det faktum at den lar deg raskt utvikle komplekse webapplikasjoner, har et stort antall høykvalitetsmoduler og er perfekt for statistikk- og analysetjenester (hvor generelt de fleste ledige stillingene går for det ). Denne retningen opptar den resterende tredjedelen av alle ledige stillinger.

    Separat vil jeg merke meg skrivingen av GIS-tjenester i Python, som, selv om de har ganske tilstrekkelige verktøy for å jobbe med geodata, likevel ser mer lovende ut å bruke Java til disse formålene.

    Konklusjoner om bruk av python

    1) Når det gjelder sfæren for devops og testing, er Python et nøkkelverktøy i profesjonen, som er et must for enhver adekvat spesialist. Python i dette tilfellet er ikke undervist, folk kommer til det av nødvendighet.

    2) De mest lovende områdene er nettutvikling og maskinlæring (analyse), som tydelig skiller python fra sine konkurrenter i form av PHP og Ruby. Og hvis du ønsker å lære python, er det tilrådelig for deg å fokusere på disse områdene og ikke kaste bort tiden din på noe annet. Det er ledige stillinger for dette, du kan bygge oppstart på dette.

    3) Alle andre områder, selv om de tilbyr visse verktøy for å løse problemer, men utsiktene for å bruke disse verktøyene ser veldig tvilsomme ut. Og viktigst av alt, å finne en betalt jobb i disse områdene er nesten umulig.