Python är ettprogramspråk som lanserades 1991 avGuido van Rossum. Det är vanligt som nybörjarspråk och inom undervisning, men också som generellt programspråk med tillämpning inom många olika domäner. Det hardynamisk typning, varför det ibland beskrivs som ettskriptspråk. Språket utmärks också av attindentering påverkarprogramflödet. Detta gör programkoden kompakt och anses ge den god läsbarhet.
Språket utvecklas somöppen källkod. Till språket hör därför flera utvecklingsmiljöer, ett rikt standardbibliotek och många tredjepartsbibliotek. Dessa har tillämpningsområden inom textbehandling, datorgrafik, spelprogrammering, datavisualisering, vetenskapliga beräkningar,maskininlärning,datamining,grafiska användargränssnitt, webbserverscript, systemautomation/skalskript och programmering avmikrokontroller/inbyggda system.
Version Python 3.0, som släpptes 2008, var en större översyn av språket som inte är bakåtkompatibel, men mycket kod för den sista tidigare versionen Python 2.7.18 och tidigare har levt kvar länge.
Något som särskilt utmärker Python är dess "eleganta" och rena programkod[1]. Rader behöver inte avslutas med semikolon, något som annars är vanligt i andra programspråk. Klamrar ('{', '}') eller BEGIN och END behövs inte heller för att dela in koden i block, eftersomindragningar avgör var ett kod-block börjar och slutar. Detta ökar läsbarheten av koden, enligt Pythons egen hemsida[2].
Objektorienteringen i Python går längre än den man finner i exempelvisC++, eftersom språkets alla datatyper är baserade på objekt och klasser. Man kan exempelvis skriva:
print("en gul bil".replace("gul","grön"))
Replace är en inbyggd metod[3] och utskriften blir "en grön bil". Själva strängen fungerar som ett objekt av klassenstr, det vill säga en sträng. Vidare stöder Pythonmultipelt arv.
Python har ett antal enkla datatyper som numeriska (int, float, long, complex). Förutom de numeriska datatyperna finns boolean, sträng, lista, tuple och ordbok[4].
Beräkningar är centrala för all programmering. Med Python utförs beräkningar avinfix operatorer (plus, minus, och så vidare). I Python finns det en mängd operatorer där de enklaste representeras i listan nedan.
En sträng är endatatyp uppbyggd av tecken, såsom bokstäver, siffror och interpunktioner. I Python definieras den med apostrofer'sträng' eller citationstecken"sträng". Det går också att skriva strängar uppdelade på flera rader genom att använda"""sträng""".
En sträng är uppbyggd på samma sätt som en lista vilket innebär att man kan ta fram tecken nummern i en lista . I exemplet nedan visas det tredje respektive det sista tecknet* i den konkatenerade strängen. Negativa värden förn avser index från slutet av strängen.
Datatypenboolean, sant eller falskt, kan testas på flera olika sätt och används framförallt i iterativa loopar. None, noll ( 0 ), en tom lista[] eller en tom tuple () representeras som falska. Numeriska värden som inte är noll ( 0 ), listor med innehåll och ordböcker med innehåll är sanna.
Julius Caesar roterade enligtSuetonius alfabetet för att kryptera sina meddelanden,Caesarchiffer. Ett inte alltför avancerat krypto, men det går inte att läsa textens innehåll i klartext, utan man är tvungen att veta hur många steg alfabetet är roterat. Nedan ett Pythonprogram (ver 2.6) som krypterar en text-fil:
#! /usr/bin/env python# -*- coding: UTF-8 -*-# print headerprint('-'*77)print(" Use function code() to open file to encrypt and save it with a new name")print('-'*77)importtkFileDialogdefcode():#retreive filenameopenFileName=tkFileDialog.askopenfilename()whileopenFileName=='':print('Please choose a file')openFileName=tkFileDialog.askopenfilename()#open file with filenamef=open(openFileName,'r')fileData=f.read()#encode fileencodedFile=''forcharinfileData:encodedFile+=alphabet(char)#save filesaveFileName=tkFileDialog.asksaveasfilename()ifsaveFileName:file=open(saveFileName,'w')file.write(encodedFile)print("File encrypted and saved successfully")f.close()defalphabet(char):alphabet="abcdefghijklmnopqrstuvwxyzåäö"alphabet+="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"alphabet+=".,;:-_?=()/&%\#!{[]}’*^~<|>"alphabet+="0123456789"alphabet+="\n"+"\r"+' 'ifcharinalphabet:pos=alphabet.find(char)encr=alphabet[(pos+3)%len(alphabet)]else:encr=charreturnencr
Det här lilla programmet (Python 2.6) returnerar webbadresser och e-postadresser från en webbsidas kod. Kan vara användbart om det finns dolda element, eller länkar som inte alltid är synliga:
#! /usr/bin/env python# -*- coding: cp1252 -*-# print headerprint'-'*77print' Use function getAddresses( "url" ) to retreive links from current'print' URL.'print'-'*77importurllib2defgetAddresses(url):f=urllib2.urlopen(url)source=f.read()source=source.split(' ')urls=[]forsinsource:if'http://'ins:s=s.split('"')forxins:if'http://'inx:urls.append(x)emails=[]forsinsource:if'@'ins:s=s.split('"')forxins:if'@'inxandx!='@import'and'mailto'notins[i]:m=x.split('<')emails.append(m[0])returnemails,urls
En vanlig utvecklingsmiljö för nybörjare är Idle, med installationsverktyget Pip.
Utvecklingsmiljön Anaconda, med installationsverktyget Conda, används ofta för beräkningar och maskininlärning. Det innehåller verktyget Jupyter notebook, som möjliggör att man interaktivt kan redigera flera olika program och visar resulterande utskrifter i ett och samma dokument, exempelvis en laborationsrapport. Anaconda innehåller kompatibla versioner av bibliotek som NumPy, SciPy och Matplotlib, vilka möjliggör effektiv användning av Python för vetenskapliga beräkningar och datavisualisering.
CPython är referensimplementeringen av Python. Det är skrivet iC, uppfyller C89-standarden med flera utvalda C99-funktioner (med senare C-versioner ute, det anses vara föråldrat;[5][6] CPython innehåller sina egna C-tillägg, men tredjepartstillägg är inte begränsade till äldre C-versioner, kan t.ex. implementeras med C11 ellerC++). Den sammanställer Python -program till en mellanliggandebytekod som sedan körs av sin virtuella maskin. CPython distribueras med ett stort standardbibliotek skrivet i en blandning av C och infödda Python. Den är tillgänglig för många plattformar, inklusiveWindows (från och med Python 3.9, Python-installationsprogrammet misslyckas medvetet med att installera påWindows 7 och 8;[7]Windows XP stöds till Python 3.5) och de flesta moderna Unix-liknande system, inklusivemacOS (och Apple M1 Mac, sedan Python 3.9.1, med experimentell installerare) och inofficiellt stöd för t.ex. VMS. Plattformsportabilitet var en av de tidigaste prioriteringarna, under Python 1 och 2-tidsramen stöds ävenOS/2 och Solaris; stödet har sedan tappats för många plattformar.
Verktyg som kan generera dokumentation för PythonAPI inkluderar bland annat pydoc (finns som en del av standardbiblioteket),[8] Sphinx, Pdoc och dess gafflar, Doxygen och Graphviz.[9]