python | ||
---|---|---|
Utvikler(e) | ||
Python Software Foundation offisielle nettsted | ||
Generell informasjon | ||
Vanlige utvidelser | .py, .pyc, .pyd, .pyo, .pyw, .pyz_.pyi | |
Paradigme | Multi -paradigme : objektorientert , imperativ , funksjonell , refleksiv | |
Dukket opp i | 1991 | |
Designet av | Guido van Rossum | |
Siste stabile versjon | 3.10.8 [ 1 ] ( 11. oktober 2022 (4 dager)) | |
type system | Sterkt skrevet , dynamisk | |
implementeringer | CPython , IronPython , Jython , Python for S60, PyPy , ActivePython , Unload Swallow | |
dialekter | Stackless Python , RPython | |
påvirket av | ABC , ALGOL 68, C , Haskell , Icon , Lisp , Modula-3 , Perl , Smalltalk , Java | |
har påvirket | Boo , Cobra, D , Falcon , Genie , Groovy , Ruby , JavaScript , Cython , Go Latino | |
Operativsystem | Multiplattform | |
Tillatelse | Python Software Foundation-lisens | |
Python er et tolket programmeringsspråk på høyt nivå hvis filosofi legger vekt på lesbarheten til koden , den brukes til å utvikle applikasjoner av alle slag, eksempler: Instagram , Netflix , Spotify , Panda 3D , blant andre. [ 2 ] Det er et programmeringsspråk med flere paradigmer , siden det delvis støtter objektorientering , imperativ programmering og i mindre grad [ hvilket? ] , funksjonell programmering . Det er et tolket , dynamisk og tverrplattformspråk .
Administrert av Python Software Foundation , er den lisensiert under en åpen kildekode-lisens , kalt Python Software Foundation License . [ 3 ] Python rangerer konsekvent som et av de mest populære programmeringsspråkene.
Python ble opprettet på slutten av 1980-tallet [ 4 ] av Guido van Rossum ved Center for Mathematics and Informatica (CWI, Centrum Wiskunde & Informatica ), i Nederland , som en etterfølger til ABC-programmeringsspråket , i stand til å håndtere unntak og samhandle med Amoeba-operativsystemet . [ 5 ]
Navnet på språket kommer fra dets skapers forkjærlighet for de britiske humoristene Monty Python . [ 6 ]
Guido van Rossum er hovedforfatteren av Python, og hans fortsatte sentrale rolle i å bestemme Pythons retning er anerkjent, og refererer til ham som Benevolent Dictator for Life ( BDFL); Imidlertid avviste han den 12. juli 2018 fra denne ærefulle situasjonen uten å forlate en etterfølger eller etterfølger og med en høylydende uttalelse: [ 7 ]
Så hva skal dere alle gjøre? Skape et demokrati? Anarki? Et diktatur? Et forbund? Guido van Rossum [ 8 ]20. februar 1991 publiserte van Rossum koden for første gang i alt.sources , med versjonsnummer 0.9.0. [ 9 ] På dette utviklingsstadiet fantes allerede klasser med arv , unntakshåndtering, funksjonerstr og modulære typer, slik som: , list, dict, blant andre. I tillegg inneholdt denne første utgivelsen et modulsystem adoptert fra Modula-3 ; van Rossum beskriver modulen som "en av de største programmeringsenhetene i Python". [ 4 ] Unntaksmodellen i Python ligner på Modula-3, med tillegg av en else. [ 5 ] I 1994 ble comp.lang.python , hoveddiskusjonsforumet for Python, dannet, og markerte en milepæl i veksten til Python-brukergruppen.
Python nådde versjon 1.0 i januar 1994. En funksjon i denne utgivelsen var de funksjonelle programmeringsverktøyene : lambda, reduce, filterog map. [ 10 ] Van Rossum forklarte at "for 12 år siden kjøpte Python lambda, reduce(), filter() og map(), med tillatelse fra Amrit Perm, en Lisp- hacker som implementerte dem fordi han savnet dem. [ 11 ]
Den siste versjonen utgitt fra CWI var Python 1.2. I 1995 fortsatte van Rossum arbeidet med Python ved Corporation for National Research Initiatives (CNRI) i Reston, Virginia , hvor han ga ut flere versjoner av programvaren .
I løpet av sin tid ved CNRI lanserte van Rossum initiativet Computer Programming for Everybody (CP4E), for å gjøre programmering mer tilgjengelig for flere mennesker, med et grunnleggende nivå av 'literacy' i programmeringsspråk, som ligner på grunnleggende literacy. på engelsk og matematiske ferdigheter som trengs av mange arbeidere. Python spilte en avgjørende rolle i denne prosessen: på grunn av sin orientering mot ren syntaks, var den allerede egnet, og målene til CP4E hadde likheter med forgjengeren, ABC. Prosjektet ble sponset av DARPA . [ 12 ] Fra og med 2007 er CP4E-prosjektet i dvale, og mens Python prøver å være lett å lære og ikke for mystisk i syntaks og semantikk, er det ikke en aktiv bekymring å nå ikke-programmerere. [ 13 ]
I år 2000 flyttet kjerneteamet av Python-utviklere til BeOpen.com for å danne BeOpen PythonLabs-teamet . CNRI ba om at versjon 1.6 ble offentliggjort, og fortsatte utviklingen til utviklingsteamet forlot CNRI; utgivelsesplanen og versjon 2.0 hadde en betydelig mengde overlapping. [ 14 ] Python 2.0 var den første og eneste utgivelsen fra BeOpen.com. Etter at Python 2.0 ble utgitt av BeOpen.com, fusjonerte Guido van Rossum og de andre PythonLabs-utviklerne til Digital Creations .
Python 2.0 tok en viktig funksjon fra Haskell funksjonelle programmeringsspråk : listeforståelser. Pythons syntaks for denne konstruksjonen er veldig lik Haskells, bortsett fra Haskells preferanse for tegnsettingstegn, og Pythons preferanse for alfabetiske nøkkelord. Python 2.0 introduserte også et søppeloppsamlingssystem som er i stand til å samle sykliske referanser. [ 14 ]
Etter denne doble utgivelsen, og etter at van Rossum forlot CNRI for å jobbe med kommersielle programvareutviklere, ble det klart at muligheten til å bruke Python med programvare tilgjengelig under GNU GPL var svært ønskelig. Lisensen som ble brukt på den tiden, Python-lisensen , inkluderte en klausul som sa at lisensen ble styrt av staten Virginia , noe som gjorde den, etter Free Software Foundations (FSF)-advokaters syn, uforenlig med GPL. For versjon 1.61 og 2.1 gjorde CNRI og FSF Python-lisensen kompatibel med GPL, og ga den nytt navn til Python Software Foundation License . I år 2001 ble van Rossum tildelt FSF Award for the Advancement of Free Software .
Python 2.1 var et avledet verk av versjonene 1.6.1 og 2.0. Det er fra dette øyeblikket Python Software Foundation (PSF) blir eier av prosjektet, organisert som en ideell organisasjon grunnlagt i 2001, og tar Apache Software Foundation som modell . [ 3 ] Inkludert i denne utgivelsen var en scoping-implementering som er mer beslektet med de statiske scoping - reglene (som Scheme er opphavsmannen til). [ 15 ]
En stor innovasjon i Python 2.2 var foreningen av Python-typer (typer skrevet i C), og klasser (typer skrevet i Python) til et hierarki. Den foreningen oppnådde en ren og konsistent Python-objektmodell. [ 16 ] Generatorer som var inspirert av ikonspråket ble også lagt til . [ 17 ]
Tillegg til Python-standardbiblioteket og syntaksavgjørelser ble sterkt påvirket av Java i noen tilfeller: pakken logging, [ 18 ] introdusert i versjon 2.3, er basert på log4j ; SAX - parseren , introdusert i 2.0; pakken threading, [ 19 ] hvis klasse Thread viser et undersett av grensesnittet til den homonyme klassen i Java.
Python 2, dvs. Python 2.7.x, ble offisielt avviklet 1. januar 2020 (først planlagt for 2015), hvoretter ingen sikkerhetsoppdateringer og andre forbedringer vil bli utgitt for den. [ 20 ] [ 21 ] Med slutten av Python 2-livssyklusen er det bare Python 3.6.x-grenen [ 22 ] og senere som støttes.
I dag brukes Python innen kunstig intelligens og maskinlæring . [ 23 ]
Python er et programmeringsspråk med flere paradigmer . Dette betyr at i stedet for å tvinge programmerere til å ta i bruk en bestemt programmeringsstil, tillater den flere stiler: objektorientert programmering , imperativ programmering og funksjonell programmering . Andre paradigmer støttes gjennom bruk av utvidelser.
Python bruker dynamisk skriving og referansetelling for minneadministrasjon .
En viktig funksjon i Python er dynamisk navneoppløsning; det vil si hva som binder en metode og et variabelnavn under programkjøring (også kalt dynamisk metodebinding).
Et annet mål for språkdesign er enkel utvidelse. Nye moduler kan enkelt skrives i C eller C++ . Python kan inkluderes i applikasjoner som trenger et programmerbart grensesnitt.
Selv om Python-programmering i noen situasjoner kan betraktes som fiendtlig mot tradisjonell Lisp -funksjonell programmering , er det mange analogier mellom Python og minimalistiske Lisp-familiespråk som Scheme .
Python-brukere refererer ofte til Python-filosofien som er ganske analog med Unix -filosofien . Kode som følger prinsippene til Python sies å være "pytonisk". Disse prinsippene ble beskrevet av Python-utvikleren Tim Peters i The Zen of Python
Siden versjon 2.1.2 inkluderer Python disse prikkene (i den originale engelske versjonen) som et påskeegg som vises når du kjører import this. [ 25 ]
Standard Python-tolken inkluderer en interaktiv modus der instruksjoner skrives i en slags kommandotolk : uttrykk kan legges inn ett etter ett, og resultatet av deres evaluering kan sees umiddelbart, noe som gir mulighet for å teste deler. kode i interaktiv modus før den integreres som en del av et program. Dette er nyttig både for folk som nettopp har blitt kjent med språket og for mer avanserte programmerere.
Det finnes andre programmer, som IDLE , bpython eller IPython , [ 26 ] som legger til ekstra funksjonalitet til den interaktive modusen, for eksempel automatisk kodefullføring og språksyntaksfarging .
Eksempel på interaktiv modus:
>>> 1 + 1 2 >>> a = område ( 10 ) >>> print ( liste ( a )) [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]Python er ment å være et svært lesbart språk. Formatet er visuelt ryddig, og det bruker ofte engelske søkeord der andre språk bruker tegnsetting. I motsetning til mange andre språk, bruker den ikke firkantede parenteser for å avgrense blokker, og semikolon er tillatt etter erklæringer, men brukes sjelden eller aldri. Den har færre syntaktiske unntak og spesielle tilfeller enn C eller Pascal.
Designet for å være lett å lese, en av funksjonene er bruken av ord der andre språk vil bruke symboler. For eksempel er de logiske operatorene !, ||og &&i Python skrevet henholdsvis not, orog and. Merkelig nok er Pascal -språket , sammen med COBOL , et av språkene med veldig tydelig syntaks og begge er fra 70-tallet. Ideen om klar og lesbar kode er ikke noe nytt.
Innholdet i kodeblokker (løkker, funksjoner, klasser osv.) er avgrenset med mellomrom eller tabulatorer, kjent som innrykk , før hver kommandolinje som tilhører blokken. [ 27 ] Python skiller seg dermed fra andre programmeringsspråk som opprettholder skikken med å deklarere blokker ved å bruke et sett med tegn, vanligvis omsluttet av krøllete klammeparenteser {}. [ 28 ] [ 29 ] Både mellomrom og tabulatorer kan brukes til å rykke inn kode, men det anbefales ikke å blande dem. [ 30 ]
Faktoriell funksjon i C (valgfritt innrykk) | Faktoriell funksjon i Python (obligatorisk innrykk) |
---|---|
int factorial ( int x ) { if ( x < 0 || x % 1 != 0 ) { printf ( "x må være et heltall større enn eller lik 0" ); returnere -1 ; //Feil } if ( x == 0 ) { retur 1 ; } returner x * faktoriell ( x - 1 ); } | def factorial ( x ): hevd x >= 0 og x % 1 == 0 , "x må være et heltall større enn eller lik 0." hvis x == 0 : returner 1 annet : returner x * faktoriell ( x - 1 ) |
På grunn av den syntaktiske betydningen av innrykk, må hvert utsagn inneholde en enkelt linje. Men hvis du for lesbarheten ønsker å dele instruksjonen i flere linjer, vil det å legge til en omvendt skråstrek \på slutten av en linje indikerer at instruksjonen fortsetter på neste.
Disse instruksjonene er likeverdige:
list = [ 'verdi 1' , 'verdi 2' , 'verdi 3' ] string = 'Dette er en ganske lang streng' | list = [ 'verdi 1' , 'verdi 2' \ , 'verdi 3' ] string = 'Dette er en ganske lang ' \ 'streng' |
Kommentarer kan settes på to måter. Den første og mest hensiktsmessige for lange kommentarer er å bruke ''' kommentar '''-notasjonen, tre åpnings- og tre avsluttende apostrof. Den andre notasjonen bruker symbolet #, og de strekker seg til slutten av linjen.
Tolken tar ikke hensyn til kommentarer , noe som er nyttig hvis vi ønsker å legge inn tilleggsinformasjon i koden. For eksempel en forklaring om oppførselen til en del av programmet.
''' Lengste kommentar på en linje i Python ''' -utskrift ( "Hello world" ) # Det er også mulig å legge til en kommentar på slutten av en kodelinjeVariabler er dynamisk definert , noe som betyr at du ikke trenger å spesifisere hva slags type er på forhånd og kan ta andre verdier på et senere tidspunkt, selv av en annen type enn tidligere. Symbolet brukes =til å tildele verdier.
x = 1 x = "tekst" # Dette er mulig fordi typene er dynamisk tilordnetVariablenavn kan inneholde tall og bokstaver, men må begynne med en bokstav, og det er 28 reserverte ord: [ 31 ]
|
|
|
|
Datatypene kan oppsummeres i denne tabellen:
Fyr | Klasse | Karakterer | Eksempel |
---|---|---|---|
str | String | Uforanderlig | 'Cadena' |
unicode | String | Unicode- versjon avstr | u'Cadena' |
list | Sekvens | Mulig, kan inneholde objekter av ulike typer | [4.0, 'Cadena', True] |
tuple | Sekvens | Uforanderlig, kan inneholde objekter av ulike typer | (4.0, 'Cadena', True) |
set | Sett | Mulig, ingen rekkefølge, inneholder ingen duplikater | {4.0, 'Cadena', True} |
frozenset | Sett | Uforanderlig, ingen rekkefølge, inneholder ingen duplikater | frozenset([4.0, 'Cadena', True]) |
dict | kartlegging | Nøkkel:verdipargruppe | {'key1': 1.0, 'key2': False} |
int | heltall | Fast presisjon, konvertert til lang ved overløp. | 42 |
long | heltall | vilkårlig presisjon | 42Lenten456966786151987643L |
float | Desimaltall | Dobbelt presisjon flytepunkt | 3.1415927 |
complex | komplekst tall | Virkelig del og imaginær del j . | (4.5 + 3j) |
bool | boolsk | boolsk verdi sann eller usann | True o False |
En betinget ( if ) -setning utfører sin indre kodeblokk bare hvis en bestemt betingelse er oppfylt. Det er definert ved hjelp av nøkkelordet ifetterfulgt av betingelsen og kodeblokken. Hvis det finnes flere betingelser, legges de inn ved hjelp av nøkkelordet elifetterfulgt av betingelsen og dens kodeblokk. Betingelsene blir evaluert sekvensielt til den første som er sann er funnet, og den tilhørende kodeblokken er den eneste som blir utført. Eventuelt kan det være en siste blokk (nøkkelordet elseetterfulgt av en kodeblokk) som kjøres bare når alle de tidligere betingelsene var falske.
>>> sant = Sant >>> hvis sant : # Du trenger ikke å sette "true == True" ... print ( "True" ) ... annet : ... print ( "False" ) ... True >>> språk = "Python" >>> hvis språk == "C" : # språk er ikke "C", så denne blokken vil hoppe over og evaluere følgende tilstand ... print ( "Programmeringsspråk: C " ) . .. elif language == "Python" : # Du kan legge til så mange "elif"-blokker du vil ... print ( "Programmeringsspråk: Python" ) ... annet : # I tilfelle ingen av Hvis forholdene ovenfor var true, denne blokken vil bli utført ... print ( " Programmeringsspråk : undefined" ) ... Programmeringsspråk : Python >>> hvis true og språk == "Python" : # Bruk "og" for å sjekke at begge betingelsene er true ... print ( "True and Programming language: Python " ) ... True and Programming language : PythonFor -løkken er lik foreaching på andre språk. Gå gjennom et iterbart objekt, for eksempel en liste , tuppel eller generator, og kjør den indre kodeblokken for hvert element i den iterable. Det er definert med nøkkelordet foretterfulgt av et variabelnavn, etterfulgt av in, etterfulgt av den iterable, og til slutt den indre kodeblokken. På hver iterasjon blir det neste elementet i iterable tilordnet det angitte variabelnavnet:
>>> liste = [ "a" , "b" , "c" ] >>> for i i liste : # Vi itererer over en liste, som kan itereres ... skriv ut ( i ) ... a b c > > > string = "abcdef" >>> for i i streng : # Vi itererer over en streng, som også kan itereres ... print ( i , end = ', ' ) # Legge til end=', ' på slutten gjør den skriver ikke inn en ny linje, men et komma og et mellomrom ... a , b , c , d , e , f ,While-løkken evaluerer en betingelse og, hvis den er sann, utfører den indre kodeblokken. Den fortsetter å evaluere og utføre så lenge tilstanden er sann. Det er definert med nøkkelordet whileetterfulgt av betingelsen, og deretter den interne kodeblokken:
>>> tall = 0 >>> mens tall < 10 : ... print ( tall , slutt = " " ) ... tall += 1 # En god programmerer vil modifisere kontrollvariablene på slutten av while - løkken . .. 0 1 2 3 4 5 6 7 8 9Python har svitsjhusstrukturen siden versjon 3.10. Dette har navnet Structural Pattern Matching .
samsvarsvariabel : tilfelle tilstand : # kode tilfelle tilstand : # kode tilfelle tilstand : # kode tilfelle _ : # kodeDet skal bemerkes at denne funksjonaliteten er betydelig mer kompleks enn det velkjente svitsj-tilfellet for de fleste språk, siden det ikke bare tillater en sammenligning av verdien, men det kan også sjekke typen av objektet og dets attributter. I tillegg kan den også utføre en direkte utpakking av datastrømmer, og sjekke dem spesifikt.
Følgende eksempel kontrollerer attributtene til vår forekomst av Punto. Hvis disse ikke er lik x10e y40, vil den gå til neste tilstand.
Det er viktig å merke seg at Punto(x=10, y=40)du ikke bygger et nytt objekt, selv om det kan se ut til å være det.
fra dataklasser importer dataklasse @dataclass class Punkt : x : int y : int koordinat = Punkt ( 10 , 34 ) match koordinat : kasus Punkt ( x = 10 , y = 40 ): # attributter "x" og "y" har den angitte verdien print ( "Koordinat 10, 40" ) kasus Punkt (): # hvis det er en forekomst av punkt print ( "det er en prikk" ) sak _ : # ingen betingelse oppfylt (standard) print ( "det er ikke en prikk" )I tidligere versjoner er det forskjellige måter å utføre denne logiske operasjonen på på lignende måte:
Bruke if, elif, elseVi kan bruke strukturen som følger:
>>> if condition1 : ... do1 >>> elif condition2 : ... do2 >>> elif condition3 : ... do3 >>> else : ... doI den strukturen vil den bli utført kontrollerende betingelse1, hvis den ikke er oppfylt vil den gå til den neste og så videre til den andre går inn. Et praktisk eksempel vil være:
>>> def compute ( op , a , b ): ... hvis 'sum' == op : ... returner a + b ... elif 'rest' == op : ... returner a - b . .. elif 'mult' == op : ... return a * b ... elif 'div' == op : ... return a / b ... else : ... return Ingen >>> >> > skriv ut ( beregn ( 'sum' , 3 , 4 )) 7Vi kan si at den negative siden av utsagnet med if, elif og else er at hvis listen over mulige operasjoner er veldig lang, må du gå gjennom dem en etter en til du kommer til den riktige.
Bruke ordbokVi kan bruke en ordbok for samme eksempel:
>>> def compute ( op , a , b ): ... return { ... 'sum' : lambda : a + b , ... 'rest' : lambda : a - b , ... 'mult' : lambda : a * b , ... 'div' : lambda : a / b ... } . få ( op , lambda : Ingen )() >>> >>> print ( beregn ( 'sum' , 3 , 4 )) 7På denne måten, hvis alternativene var mange, ville det ikke gå gjennom alle; det ville bare gå direkte til operasjonen som ble søkt i den siste linjen .get(op, lambda: None)() vi gir standardalternativet.
En listeforståelse er et kompakt uttrykk for å definere lister . Som lambda, det vises på funksjonelle språk. Eksempler:
>>> område ( 5 ) # "område"-funksjonen returnerer en liste som starter på 0 og slutter med det gitte tallet minus én [ 0 , 1 , 2 , 3 , 4 ] >>> [ i * i for i i området ( 5 )] # For hvert element i området, multipliser det med seg selv og legg det til resultatet [ 0 , 1 , 4 , 9 , 16 ] >>> liste = [( i , i + 2 ) for i i området ( 5 )] >>> liste [( 0 , 2 ), ( 1 , 3 ), ( 2 , 4 ), ( 3 , 5 ), ( 4 , 6 )]def:
>>> def sum ( x , y = 2 ): ... return x + y # Returner summen av verdien av variabelen "x" og verdien av "y" ... >>> sum ( 4 ) # Variabelen "y" er ikke modifisert, og er dens verdi: 2 6 >>> sum ( 4 , 10 ) # Variabelen "y" er modifisert, og er dens nye verdi: 10 14lambda:
>>> sum = lambda x , y = 2 : x + y >>> sum ( 4 ) # Variabelen "y" er ikke modifisert, og er dens verdi: 2 6 >>> sum ( 4 , 10 ) # Variabelen "y" er modifisert, og er dens nye verdi: 10 14Det er mange egenskaper som kan legges til språket ved å importere moduler, som er "minikoder" (de fleste også skrevet i Python) som gir visse funksjoner og klasser for å utføre bestemte oppgaver. Et eksempel er Tkinter- modulen , [ 34 ] som lar deg lage grafiske grensesnitt basert på Tk -biblioteket . Et annet eksempel er os -modulen , som gir tilgang til mange funksjoner i operativsystemet. Moduler legges til kodene ved å skrive importetterfulgt av navnet på modulen vi ønsker å bruke. [ 35 ]
Installere moduler (pip)Installasjon av moduler i Python kan gjøres ved å bruke programvareverktøyet (vanligvis inkludert med Python-installasjoner) Pip . Dette verktøyet tillater administrasjon av de forskjellige installerbare pakkene eller modulene for Python, og inkluderer dermed følgende funksjoner:
Modulen gir deg funksjoner for å samhandle med operativsystemet:
>>> import os # Modul som gir operativsystemfunksjoner >>> os . name # Returnerer navnet på operativsystemet 'posix' >>> os . mkdir ( "/tmp/eksempel" ) # Opprett en katalog på den angitte banen >>> importtid # Modul for arbeid med datoer og klokkeslett >>> tid . strftime ( "%Y-%m- %d %H:%M:%S" ) # Ved å gi det et bestemt format, returnerer gjeldende dato og/eller klokkeslett '2010-08-10 18:01:17'For filbehandlingsoppgaver gir shutil- modulen et grensesnitt på høyere nivå:
>>> importer shutil >>> shutil . kopifil ( 'data.db' , 'information.db' ) 'information.db' >>> shutil . move ( '/build/programs' , 'dir_progs' ) 'dir_progs' Fil jokertegnGlob - modulen gir en funksjon for å lage fillister fra jokertegnsøk i mapper:
>>> import glob >>> glob . glob ( '*.py' ) [ 'numbers.py' , 'example.py' , 'example2.py' ] KommandolinjeargumenterKommandolinjeargumenter lagres i sys -modulens argv-attributt som en liste.
>>> import sys >>> print ( sys . argv ) [ 'demo.py' , 'one' , 'to' , 'tre' ] MatematikkMatematikkmodulen gir tilgang til matematiske funksjoner med flyttall:
>>> importer matematikk >>> matematikk . cos ( matte . pi / 3 ) 0 , 494888338963 >>> matte . log ( 1024 , 2 ) 10.0Den tilfeldige modulen brukes til å gjøre tilfeldige valg:
>>> import tilfeldig >>> tilfeldig . valg ([ 'fersken' , 'eple' , 'jordbær' ]) 'fersken' >>> tilfeldig . sample ( range ( 100 ), 10 ) # valg uten erstatning [ 30 , 23 , 17 , 24 , 8 , 81 , 41 , 80 , 28 , 13 ] >>> tilfeldig . random () # a random float 0,23370387692726126 >>> random . randområde ( 6 ) # et tilfeldig heltall hentet fra område(6) 3Statistikkmodulen brukes til grunnleggende statistikk, for eksempel: gjennomsnitt, median, varians osv .:
>>> importstatistikk >>> data = [ 1,75 , 2,75 , 1,25 , 0,5 , 0,25 , 1,25 , 3,5 ] >>> statistikk . _ gjennomsnitt ( data ) 1,6071428571428572 >>> statistikk . median ( data ) 1,25 >>> statistikk . varians ( data ) 1,3720238095238095 Datoer og klokkeslettDatetime- modulen lar deg håndtere datoer og klokkeslett:
>>> fra dato og klokkeslett importdato >>> i dag = dato . i dag () >>> i dag dato klokkeslett . dato ( 2017 , 8 , 16 ) SkilpaddemodulSkilpaddemodulen tillater implementering av skilpaddegrafer :
>>> importer skilpadde >>> skilpadde . pensize ( 2 ) >>> skilpadde . venstre ( 120 ) >>> skilpadde . fremover ( 100 )I Python er alt et objekt (selv klasser ). Klasser , som er objekter , er forekomster av en metaklasse . Python støtter også multippel arv og polymorfisme .
>>> string = "abc" # En streng er et objekt av "str" >>> streng . upper () # Som et objekt har det sine egne 'ABC'- metoder >>> list = [ True , 3.1415 ] # En liste er et objekt av "list" >>> list . append ( 42 L ) # En liste er også (som alt annet) et objekt, og har også sine egne metoder >>> liste [ True , 3.1415 , 42 L ]Python har et stort standardbibliotek som brukes til en rekke oppgaver. Dette kommer fra "batterier inkludert "-filosofien med henvisning til Python-moduler. Standard bibliotekmoduler kan forbedres med tilpassede moduler skrevet i både C og Python. På grunn av det store utvalget av verktøy inkludert i standardbiblioteket, kombinert med muligheten til å bruke lavnivåspråk som C og C++, som er i stand til å kommunisere med andre biblioteker, er Python et språk som kombinerer klar syntaks med enorm kraft av mindre elegante språk. [ 36 ]
Det er flere implementeringer av språket:
Gjennom historien har Python presentert en rekke hendelser, hvorav de viktigste har vært følgende: