hulpmiddelenin andere talen
|
Python (programmeertaal)
Een stuk broncode in Python met syntaxkleuring.
Python is een programmeertaal die begin jaren '90 ontworpen en ontwikkeld is door Guido van Rossum, indertijd verbonden aan het Centrum voor Wiskunde en Informatica (daarvoor Mathematisch Centrum) in Amsterdam. De taal is mede gebaseerd op inzichten van professor Lambert Meertens die een op BASIC gebaseerde taal genaamd ABC had ontworpen, maar dan met allerlei zeer geavanceerde datastructuren. Inmiddels wordt de taal doorontwikkeld door een enthousiaste groep, geleid door Guido van Rossum, recent nog werkzaam bij Zope corporation, maar nu in dienst van Google. Deze groep wordt ondersteund door vrijwilligers op het internet.
[bewerk] KenmerkenPython gebruikt als een van de weinige talen de mate van 'inspringing' van de regel, ook wel: indentatie genoemd, als indicatie van gelaagdheid van de verschillende onderdelen van het programma. Dit is iets wat Jaap van Ganswijk, de ontwerper van JPL en UHL al sinds het begin van de jaren tachtig voorstaat, maar dat ook anderen wel geopperd hebben. Andere talen verschillen hierin door het gebruik van aparte statements, zoals: 'begin' en 'end' (bij Pascal), of accolades '{' en '}' (bij C) om een blokstructuur aan te duiden. Door deze inspringing en een aantal andere elementen kan de structuur van de taal worden vergeleken met de structuur van de pseudo-programmeertaal die in veel gevallen wordt gebruikt in de literatuur om algoritmen uit te leggen. Bijvoorbeeld: for x in range(10): if x>5: y = x + 2 else: y = 0 print x, y Python kent voor variabelen het onderscheid tussen wijzigbare variabelen (mutable) en variabelen met een vaste waarde (immutable). Dit verschil, dat door beginners vaak alleen als verwarrend wordt gezien, is voor gevorderd gebruik heel nuttig. Python implementeert het zogenaamde duck typing. Dit houdt in dat het type van een variabele en het type van een argument van bijvoorbeeld een functie niet gedefinieerd hoeft te worden. Bij compilatie vindt (dus) ook geen typecontrole plaats. Runtime wordt slechts gecontroleerd of de methoden etcetera die worden gebruikt voor het betreffende object gedefinieerd zijn. Als dat niet zo is, volgt een foutmelding. Python heeft geavanceerde exception handling procedures, die worden gebruikt in de zogenaamde EAFP (Easier to Ask Forgiveness than Permission) stijl van programmeren. Het volgende geldt als acceptabele Pythoncode: try: x = 1 / y except ZeroDivisionError: x = 0 In de meeste andere programmeertalen is dit hetzij onmogelijk, hetzij wordt het als slechte programmeerstijl beschouwd. Die gebruiken wat in Python LBYL (Look Before You Leap) programmeerstijl heet, en waarin de voorgaande code er zo uit zou zien: if y == 0: x = 0 else: x = 1 / y Net als in veel andere moderne scripttalen wordt in Python geheugenruimte automatisch vrijgemaakt voor nieuwe variabelen of variabelen die groeien. Op deze manier wordt de programmeur een hoop werk bespaard dat in "lagere" talen wel onder zijn verantwoordelijkheid valt. De Engelse term hiervoor is garbage collection. Python komt met een uitgebreide bibliotheek om van alles en nog wat standaard te kunnen bewerken. Het is erg eenvoudig om in Python herbruikbare code te schrijven. Doordat veel van de bibliotheken die mensen schrijven gratis aan anderen ter beschikking wordt gesteld, groeien de mogelijkheden van de bibliotheek voortdurend. Python wordt zo tot een programmeertaal die voor razendsnel ontwikkelen van een nieuwe applicatie kan worden gebruikt, zonder dat de daarbij geproduceerde code onleesbaar wordt. Voor de rest is Python een erg zuivere taal met weinig uitzonderingen. Het is voor alle gebruik gratis op het internet te krijgen, en werkt op zeer veel verschillende types van computers. Python heeft zijn naam te danken aan het favoriete televisieprogramma van Guido van Rossum, Monty Python. [bewerk] Hello WorldPython-code die "Hello, world" op het scherm laat zien ziet er als volgt uit: print "Hello, world" Python gaat nadat het "Hello, world" print meteen een regel verder. Als je nog een regel over zou willen slaan, gebruik je gewoon "print". Als je op dezelfde regel nog iets wil printen, zet dan een komma achter wat geprint wordt. In Python maakt het overigens niet uit of je de af te drukken string tussen enkele (') of dubbele (") aanhalingstekens zet, als het maar consequent gebeurt. print "'s morgens zeg ik", ':', '"morrege!"' heeft als resultaat: 's morgens zeg ik : "morrege!" [bewerk] Lussen (loops)Python heeft 2 lusconstructies: while en for. De for-lus is gemaakt om lijstjes (arrays) af te lopen (deze verschilt van de meeste andere for lussen uit programmeertalen en is het best te vergelijken met de foreach-lus uit PHP). Volgend voorbeeld van de for-lus zal elk woord uit een lijstje afdrukken: lijst = ['Zo', 'gebruik', 'je', 'een', 'for', 'lus'] for woord in lijst: print woord Als men een rij getallen wil aflopen dan kan men beroep doen op de standaard functie range(). Het equivalent van volgende stukje Java-code // in Java: for(int i=0; i < 100; i++) { System.out.println(i); } in Python is als volgt: # in Python: for i in range(100): print i
i = 0 while i < 100: print i i += 1 [bewerk] Zie ook[bewerk] Externe links
|