Python (programmeertaal)

in Wikipedia, die vrye ensiklopedie
Spring na: navigasie, soek
Logo van Python

Python is 'n hoëvlak-, oopbron-programmeertaal wat deur Guido van Rossum vrygestel is in 1991. Python se ontwerpsfilosofie is om so eenvoudig as moontlik te wees om te lees, en laat 'n programmeerder dus toe om 'n programmatiese funksie uit te voer met minder lyne kode as wat tipies moontlik sou wees in ander tale, bv. C. 'n Goeie voorbeeld van Python se klem op eenvoudigheid is die feit dat blokke kode nie tussen hakkies geskryf word nie, maar liewers staat maak op 'n sekere hoeveelheid spasies om blokke kode saam te groepeer.

Geskiedenis[wysig | wysig bron]

Python was opgevat in die laat 1980's[1] en die implementering daarvan het begin in Desember 1989[2] deur Guido van Rossum by die Sentrum vir Informatika en Wiskunde (CWI) in Nederland. Die taal was bedoel om 'n 'n verbetering van die ABC-taal te wees, wat sagteware-uitsonderings kan hanteer en kan werk met die Amoeba bedryfstelsel. Van Rossum is Python se hoofontwikkelaar en het steeds die grootste sê in die huidige ontwikkeling en vooruitgaan van Python. Die Python gemeenskap aanvaar sy besluite en het hom die titel gegee van lewenslange welwillende diktator.

Python 2.0 is vrygestel op 16 Oktober 2000 en het 'n verskeidenheid nuwe eienskappe gehad, insluitend verbeterde geheuebestuur (garbage collector) en ondersteuning vir Unicode. Na die vrystelling van die weergawe het die ontwikkelingsproses verander en is die gebruikersgemeenskap aktief ingelig en betrek.[3]

Python 3.0 (populêre vroeë name sluit in Python 3000 en py3k) is vrygestel op 3 Desember 2008 na 'n lang toetsperiode. Dit het baie nuwe eienskappe aangebied maar het nie die vorige weergawes van Python ondersteun nie. Die meerderheid van die sy groot eienskappe is dus geïmplimenteer op die meer gebruikbare (deur vorige weergawes van Python) weergawes Python 2.6.x en 2.7.x [4]

Filosofie van Python[wysig | wysig bron]

Die kernfilosofie van Python word opgesom in die artikel The Zen of Python(PEP 20) wat die volgende aforismes insluit:

  • Beeldskoon is beter as lelik
  • Eksplisiet is beter as implisiet
  • Eenvoudig is beter as kompleks
  • Kompleks is beter as ingewikkeld
  • Leesbaarheid is belangrik

Python is ontwerp om hoogs uitbreibaar te wees, eerder as om die meerderheid gewenste funskionaliteit direk in die taal in te bou. Van Rossum se plan was juis om 'n programmeertaal met 'n klein kern van sleutelwoorde te ontwikkel wat ondersteun word deur 'n groot standaardbiblioteek en maklik uitbreibaar is. Hy het gevoel dit was deel van die probleme van ABC , wat die teenoorgestelde ontwerpstyl gevolg het.[5]

Die sogenaamde Python metodiek van programmering verwerp uitbundige sintaks (soos gebruik deur die Perl taal) ten gunste van yler , minder deurmekaar stellings. In die woorde van Alex Martelli: "Om iets te beskryf as slim word nie geneem as 'n kompliment in die Python kultuur nie."[6]Verder verwerp Python filosofie die "meer as een manier om dit te doen" benadering wat Perl gebruik ten gunste van 'n "daar behoort een - en verkieslik net een - voor die hand liggende manier te wees om dit te doen" benadering.[7]

Een van Python se doelwitte is dat gebruiker dit moet geniet om Python te gebruik. Voorbeelde en leermateriaal sal gereeld na spam en eggs verwys eerder as na die meer tradisionele foo en bar.[8][9]

Die Pythongemeenskap het hul eie styl van programmering, wat hulle beskou as 'n miniimalistiese en hoogs leesbare taal. Goeie Python kode is maklik om te verstaan en pas goed in met die taal self. Dis is teenoor taal wat moeilik is om te verstaand of voel asof dit oorvertaal is van 'n ander programmeringstaal.

Sintaks[wysig | wysig bron]

Python is bedoel om 'n hoogs leesbare taal te wees en is baie na aan natuurlike taal. Dit maak minimale gebruik van leestekens en verkies om meer sleutelwoorde te gebruik. Python het ook minder sintaktiese uitsonderings en spesiale gevalle as 'n taal soos C (programmeertaal). Python volg die Principle of Least Astonishment wat impliseer dat kode behoort te doen wat jy vanaf natuurlike taal sal verwag dit sal doen.

Inkeping[wysig | wysig bron]

Python maak gebruik van inkeping (horisontale spasiëring) eerder as sleutelwoorde of krulhakies om die einde van blokke stellings aan te dui (byvoorbeeld die inhoud van 'n lus sal alles die selfde hoeveelheid inkeping hê). Na sekere stellings moet daar verder ingekeep word (by voorbeeld na 'n if-stelling). Die inkeping moet verminder word na die einde van die huige blok kode. Die ingekeepte kode na 'n stelling word na verwys as daai stelling se blok, byvoorbeeld na if x > 5: print "Hello" , sal print "Hello"die if-blok wees.

Stellings en beheer van programvloei[wysig | wysig bron]

Python maak gebruik van die volgende stellings (onder andere):

  • Die if-stelling sal voorwaardelik 'n blok kode uitvoer, wat gebruik kan word saam met die else en elif stellings om meer ingewikkelde voorwaardes te skep
  • Die for-stelling, wat iterasie oor sekere objekte toelaat. Dit sal dan elke element in die object aan 'n veranderlike heg vir gebruik in die herhaalde kode.
  • Die while-stelling sal 'n blok kode uitvoer solank as wat sy voorwaarde as waar evalueer
  • Die try-stelling laat mens toe om sagtewareuitsonderings te verhoed en dan met afsonderlike kode na die except-stelling te hanteer. Dit verseker ook dat alle kode in die finally-blok altyd sal hardloop ongeag hoe die blok verlaat word.
  • Die class-stelling, wat 'n blok kode uitvoer en dan die gedefinieerde name heg daaraan. Hierdie word gebruik vir objekgeoriënteerde programmering.
  • Die import-stelling, wat gebruik kan word om modules beskikbaar te maak in die huidige lêer
  • Die print-stelling word gebruik om afvoer te lewer. Verander na die print()-funksie in Python 3.
  • Die def-stelling definieer 'n funksie of metode

Uitdrukkings[wysig | wysig bron]

Python gebruik uitdrukkings wat ooreenstem met soortgelyke tale soos C en Java, terwyl dit ook unieke uitdrukkings het.

  • Optelling, aftrekking en vermenigvuldiging bly die selfde, maar deling se gedrag verskil(verwys na die Wiskunde afdeling). Python het ook die ** operator om getalle tot 'n gewenste mag te verhef.
  • Vanaf Python 3.5 word matriksvermenigvuldiging met die @ operator ondersteun, teenoor C en Java wat dit as biblioteekfunksies bied. Vroeër weergawes van Python het ook metodes eerder as 'n operator gebruik.[10][11]
  • In Python sal == altyd die waardes van twee objekte vergelyk, terwyl in Java dit nommers se waarde vergelyk[12] en objekte se verwysings vergelyk.[13] Waarde vergelykings kan in Java op objekte uitgevoer word met die equals() metode terwyl Python gebruik maak van die is operator om objekte se verwysings te vergelyk.
  • Python gebruik and, or, not vir boolse uitdrukkings eerder as die meer algemene &&, ||, ! wat in C en Java gebruik word.

Wiskunde[wysig | wysig bron]

Python het die standaard C wiskundige operators (+, -, *, /, %). Dit het ook die ** operator om getalle tot 'n sekere mag te verhef , soos byvoorbeeld 5**3 == 125 en 9**0.5 == 3.0 , asook 'n matriks vermenigvuldiging operator @ wat bygevoeg was in weergawe 3.5.[14]

Hoe Python deling uitvoer het merkwaardig verander oor nuwe weergawes:[15]

  • Python 2.1 en vroeër weergawes gebruik C se deelmetodiek. Die / operator sal heelgetaldeling toepas as buite getalle integers is , en sal 'n float as antwoord gee andersins. Byvoorbeeld 7 / 3 == 2 maar 7.0 / 3.0 == 2.3333... . Wanneer 'n heelgetal deur 'n ander een gedeel word, sal die antwoord af of opgerond word na nul toe, soos in die volgende voorbeelde: 7 / 3 == 2 en -7 / 3 == -2 .
  • Python 2.2 het heelgetaldeling verander of af te rond na die limiet van negatiewe oneindig m.a.w: 7 / 3 == 2 en -7 / 3 == -3. Daar was ook 'n laerafronding operator // bekendgestel. Enige program kan __future__ import division gebruik om Python 3.0 se reëls vir deling toe te gebruik in daardie program.
  • Python 3.0 het / verander om altyd 'n float as antwoord te gee. Met betrekking tot Python , vir alle weergawes voor 3.0 is / klassiekedeling , in weergawe is / regtedeling en is // vloerdeling.

Biblioteke[wysig | wysig bron]

Python het 'n groot standaardbiblioteek, wat gereeld aangewys word as een van Python se sterk punte.[16] Hierdie biblioteek bied funksies wat help met 'n verskeidenheid rekenaarprobleme. Hierdie groot biblioteek is deel van die Python-filosofie wat die gebruiker soveel as moontlik van die nodige hulp bied. Vir internetgebaseerde toepassings, word by van die standaard uitsetting en protokolle (soos MIME en HTTP) geondersteun.

Dele van die standaardbiblioteek word volgens spesifieke spesifikasies opgestel, byvoorbeeld die implementering van die Web Server Gateway Interface (WSGI), bekend as wsgiref, word beskryf deur PEP 333.[17] maar meeste modules is nie so opgestel nie. Hulle word dan gespesifiseer volgens hul kode, interne dokumentasie en toetsprogramme (indien ingesluit).

Die standaardbilbioteek is nie nodig om Python te hardloop nie. Byvoorbeeld Blender 2.48 los meeste daarvan uit.

Sedert Januarie 2016, bied die Python Pakket Indeks (die amptelike bewaarplek vir derde-party Python sagteware) meer as 72000 pakkette wat 'n verskeidenheid funksionaliteit bied, insluitend:

  • toetsraamwerke, gereedskap vir dokumentering, stelselbeheer
  • wetenskaplike bewerkings

Naam[wysig | wysig bron]

Python se naam is afgelei vanaf die televisiereeks Monty Python's Flying Circus,[18] en daar is gereeld Monty Python verwysings in voorbeeldkode.

Verwysings[wysig | wysig bron]