duimnael|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 eerder staatmaak op 'n sekere hoeveelheid spasies om blokke kode saam te groepeer.
Geskiedenis Python het posgevat in die laat 1980'shttp://www.artima.com/intv/pythonP.html en die implementering daarvan deur Guido van Rossum het in Desember 1989 beginhttp://python-history.blogspot.com/2009/01/brief-timeline-of-python.html 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 gebied, 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.https://docs.python.org/whatsnew/2.0.html
Python 3.0 (populêre vroeë name sluit in Python 3000 en py3k) is na 'n lang toetsperiode op 3 Desember 2008 vrygestel. Dit het baie nuwe eienskappe gebied, maar het nie die vorige weergawes van Python ondersteun nie. Die meerderheid van sy verbeterde eienskappe is dus geïmplementeer op die meer bruikbare weergawes Python 2.6.x en 2.7.x https://www.python.org/dev/peps/pep-3000/
Filosofie van Python 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.
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."http://shop.oreilly.com/product/9780596007973.doVerder 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.https://www.python.org/dev/peps/pep-0020/
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.https://docs.python.org/2/library/pprint.html
Die Pythongemeenskap het hul eie styl van programmering, wat hulle beskou as 'n minimalistiese en hoogsleesbare taal. Goeie Python kode is maklik om te verstaan en pas goed in met die taal self. Dit staan teenoor taal wat moeilik is om te verstaan of voel asof dit oorvertaal is van 'n ander programmeringstaal.
Sintaks Python is bedoel om 'n hoogsleesbare 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 van 'n natuurlike taal sou verwag.
Inkeping 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 dieselfde hoeveelheid inkeping hê). Na sekere stellings moet daar verder ingekeep word (byvoorbeeld na 'n if-stelling). Die inkeping moet verminder word na die einde van die huidige blokkode. Die ingekeepte kode na 'n stelling word na verwys as daardie stelling se blok, byvoorbeeld na if x > 5: print "Hello" , sal print "Hello"die if-blok wees.
Stellings en beheer van programvloei Python maak onder andere van die volgende stellings gebruik:
Die if-stelling sal voorwaardelik 'n blokkode 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 def-stelling definieer 'n funksie of metode Die with -stelling wat 'n sekere blok kode omsluit binne 'n sekere konteks (byvoorbeeld, dit kan kode bestuur tot 'n sekere leêr ingelees is en toegemaak is). Die pass-stelling wat gebruik word wanneer die program niks moet doen nie. Dit word benodig om leë blokke kode te skep. Die assert-stelling, wat gebruik word tydens ontfouting om te kyk vir sekere kondisies wat geldig moet wees Die yield-stelling wat 'n waarde teruggee vanaf 'n generator funksie. 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.
Uitdrukkings 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.https://www.python.org/dev/peps/pep-0465/https://www.python.org/downloads/release/python-351/ In Python sal == altyd die waardes van twee objekte vergelyk, terwyl in Java dit nommers se waarde vergelykhttp://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21.1 en objekte se verwysings vergelyk.http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21.3 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 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.http://legacy.python.org/dev/peps/pep-0465/
Hoe Python deling uitvoer het merkwaardig verander oor nuwe weergawes:https://www.python.org/dev/peps/pep-0238/ Python 2.1 en vroeër weergawes gebruik C se deelmetodiek. Die / operator sal heelgetaldeling toepas as beide getalle heelgetalle 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. Python se metodiek om af te rond na negatief oneindigwyk af van die algemene metodiek gebruik deur meeste tale, maar stem better oor een met die werking van Python. Byoorbeeld, dit beteken dat die vergelyking (a+b) // b == a // b + 1 altyd waar is. Dit beteken ook dat die vergelyking b * (a // b) + a % b == a geldig is vir beide positiewe en negatiewe oneindig. Om hierdie vergelyking geldig te hou beteken dit dat die resultaat van a % b in die half oop interval [0 , b) sal wees as b 'n positiewe heelgetal is en in die interval (b , 0] lê indien b negatief is.http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html
Python bied die round funksie om 'n float af te rond na die naaste heelgetal. Wanneer die getal persies tussen twee heelgetalle is, sal weergawes voor 3 wegrond van nul as: round(0.5) is 1.0, round(-0.5) is −1.0.https://docs.python.org/library/functions.html#round Python 3 rond af na die naaste ewegetal: round(1.5) is 2, round(2.5) is 2.https://docs.python.org/py3k/library/functions.html#round
Python laat boolse uitdrukkings tot met meervoudige verhoudings in 'n manier wat soortgelyk is as die algemene gebruik in wiskunde. Byvoorbeeld, die uitdrukking a < b < c toets eers of a kleiner is as b en daarna of b kleiner is c. Tale wat vanaf C afgelei is sal die uitdrukking ander evalueer: in C sal a < b eers ge-evalueer word wat sal resulteer in 0 (onwaar) of 1(waar) en daardie resultaat sal dan vergelyk word met c.
Python het uitgebreide ingeboude ondersteuning om jou wiskunde aan te pas tot 'n arbitrêre hoeveelheid desimale plekke. Integers word omgeskakel vanaf die gewone vaste hoeveelheid desimale plekke integers( gewoonlik 32 or 64 bisse) na 'n aribitrêre hoeveelheid plekke, wat ooreenstem met die Python tipe long soos nodig. Hierdie getale word met 'n "L" geonderskei wanneer hulle as teks afgevoer word.https://docs.python.org/2.7/library/stdtypes.html Daar is ook 'n Decimal klas wat die gebruiker toelaat om arbitrêre hoeveelhede desimale plekke te gebruik saam met 'n verskeidenheid afrond metodes.https://www.python.org/dev/peps/pep-0327/ Die Fraction tipe in die fractions module skep arbitrêre grotes vir rasionele getalle.https://docs.python.org/2.6/whatsnew/2.6.html
Weens Python se uitgebreide wiskundigebiblioteek word dit gereeld gebruik vir wetenskaplike doeleindes om te help met probleme soos data verwerking en manipuleering.
Biblioteke