Sommige statistieken tonen aan dat Python de populairste programmeertaal ter wereld is geworden. Dus wat geeft Python zijn universele aantrekkingskracht? We bekijken enkele kenmerken van deze veelzijdige en krachtige taal.
Python: het is nummer één
Python is 30 jaar oud en sterker dan ooit. Op het moment van schrijven is het de meest gebruikte programmeertaal ter wereld, na Java en C te hebben ingehaald. Dat is des te indrukwekkender omdat Python wordt aangekondigd als een programmeertaal voor algemene doeleinden. Dat is niet altijd een goede titel om te hebben. Het oude gezegde over een manusje-van-alles zijn, maar de meester van niets is misschien van toepassing. Gelukkig is het met Python niet van toepassing.
Python wordt over de hele wereld gebruikt, van webontwikkeling tot kunstmatige intelligentie en van game-ontwikkeling tot data-analyse. Het is vooraf geïnstalleerd op de meeste Linux-distributies en is beschikbaar voor alle populaire besturingssystemen.
Python is geschreven door Guido van Rossum als een hobbyproject, beginnend in december 1989. Het was volledig functioneel op 20 februari 1991 en werd algemeen beschikbaar gesteld – als open source – in 1992. Rossum koos de naam Python vanwege zijn waardering voor een BBC-televisiekomedieserie genaamd Monty Python’s Flying Circus. De makers van die show speelden met andere titels, waaronder: Uil die tijd uitrekt en Het padverheffingsmoment. Als ze een van die hadden gekozen, wie weet hoe Python had kunnen heten.
Python is ontworpen met eenvoud in gedachten. Rossum wilde dat de code Engels-achtig en gemakkelijk te lezen, schrijven en begrijpen zou zijn. De syntaxis is eenvoudig en benaderbaar voor beginners, en doorgewinterde programmeurs kunnen zonder enige moeite vanuit andere talen naar Python komen.
Deze onderliggende eenvoud betekent niet dat je complexe problemen met Python niet kunt oplossen. Het mooie van Python is dat je alle kracht onder de motorkap kunt benutten met behulp van de eenvoudige en toegankelijke syntaxis. Dit maakt Python bij uitstek geschikt voor snelle applicatieontwikkeling.
exam_score = 40 course_work_score = 55 project_score = 40 if (course_work_score >= 40 and exam_score >= 60) or (project_score + exam_score >=70): print("You passed.") else: print("You failed.")
De bedoeling van deze code moet voor iedereen duidelijk zijn. Let op het gebruik van and
en or
om de logische operatoren weer te geven. Daarentegen gebruikt C &&
en ||
.
Tolken en compilers
Python is een geïnterpreteerde taal. U schrijft de broncode van uw programma in bestanden en de Python-interpreter leest de bestanden en voert de opdrachten uit die u hebt ingevoerd. Gecompileerde talen zoals C vereisen extra stappen tussen het schrijven van het programma en het uitvoeren van het programma.
Een stukje software dat een compiler wordt genoemd, leest de programmabestanden en genereert een binair bestand met de instructies op laag niveau die de computer begrijpt. Met andere woorden, het neemt wat je hebt geschreven – de C-broncode – en maakt er een kopie van die is vertaald in de moedertaal van de computer. Bij een gecompileerd programma wordt de uitvoer van de compiler – het binaire bestand – uitgevoerd.
Het voordeel van een gecompileerd programma is dat ze sneller worden uitgevoerd dan een geïnterpreteerd programma, omdat de code niet elke keer dat deze wordt uitgevoerd hoeft te worden geïnterpreteerd. Maar het voordeel van geïnterpreteerde talen is de afwezigheid van de compileerstap. En compilatie kan tijdrovend zijn. Met Python kun je een paar regels code wijzigen en direct je programma uitvoeren.
Python is het gemakkelijkst om mee te werken in een geïntegreerde ontwikkelomgeving (IDE), en er zijn veel IDE’s voor Python – Idle was een van de eersten. Met Idle kunt u uw code typen, Ctrl+S typen om het op te slaan en vervolgens op F5 drukken om het uit te voeren. Je programma draait in een Python-shell. U kunt elke Python-opdracht in de shell typen en deze onmiddellijk voor u laten uitvoeren. Dit geeft u de klassieke lees-, evaluatie-, afdruklus of REPL, die de ontwikkeling bevordert.
Dit kleine programma definieert een string, telt enkele getallen bij elkaar op en drukt vervolgens het totaal af.
geek_string = "This is an ex-parrot" print("Total = ", 4 + 5 + 6)
Door het bestand op te slaan en op F5 te drukken, wordt het programma uitgevoerd. Het drukt het totaal af en sluit af. U blijft achter bij de Python-shell-prompt. De string wordt niet gebruikt in het programma, maar je kunt er nog steeds naar verwijzen in de shell met de print
commando op de shell-opdrachtregel.
Als u de waarden van variabelen controleert nadat uw programma is voltooid, kunt u waardevolle inzichten krijgen in wat er in uw code gebeurde.
Het unieke taalontwerp van Python
Python is misschien ontworpen voor leesgemak en snelheid van leren, maar het biedt ook echte kracht. Het ondersteunt volledig objectgeoriënteerd programmeren (OOP). Met OOP kunt u items uit de echte wereld en de relaties daartussen modelleren als objecten in uw programma’s. Klassen definiëren de kenmerken van objecten en kunnen functies bevatten die objecten van die klasse kunnen gebruiken.
Je kunt een klasse zien als een soort sjabloon en objecten worden in hun afbeelding gemaakt. Klassen kunnen worden afgeleid van bestaande klassen en kunnen de eigenschappen van de oorspronkelijke klasse erven. OOP is veel meer, maar het volstaat te zeggen dat het een enorm krachtige manier is om objecten en gegevens binnen applicaties te modelleren. Veel andere programmeertalen ondersteunen OOP-principes, maar de vereenvoudigde syntaxis van Python maakt de implementatie ervan een van de meest toegankelijke.
Python ondersteunt alle gebruikelijke uitvoeringsstroombesturingen, zoals: if
takken, while
en for
lussen, match
instructies (vergelijkbaar met schakelen in andere talen) en herhaalde codesecties kunnen worden gedefinieerd als functies.
Een eigenaardigheid van Python is dat witruimte betekenisvol is. De meeste andere talen negeren de witruimte in uw broncode volledig. Python gebruikt inspringing om aan te geven bij welk codeblok de ingesprongen tekst hoort. Inspringen vervangt de accolades die de meeste andere talen gebruiken. De voorgeschreven hoeveelheid inspringing is 4 spaties per tabblad, maar zolang een inspringing één spatie of meer is, zal Python uitzoeken bij welk blok uw coderegel hoort.
price = 100 disposable_income = 95.5 no_deal = "You can't buy that item." if price > disposable_income: print("Too expensive!") print(no_deal)
Het uitvoeren van dit programma geeft deze uitvoer.
Beide regels in het ingesprongen blok worden afgedrukt omdat ze logisch zijn gegroepeerd op basis van hun inspringing.
Het is je misschien opgevallen dat alle definities van variabelen, ook wel bekend als ID’s in Python: begin met de naam van de variabele, niet een type-indicator zoals int
, char
, of float
. Variabelen in Python zijn dynamisch getypt. U hoeft niet op te geven welk type gegevens de variabele zal bevatten. Python komt erachter tijdens runtime.
U hoeft het einde van een regel ook niet te markeren met een puntkomma “;
” of een ander speciaal teken. Dit geeft uw code een natuurlijker uiterlijk en zorgt ervoor dat deze er niet rommelig uitziet.
De standaardbibliotheek en andere bibliotheken
Programmeren betekent een bepaald eindresultaat bereiken door de computer te vertellen wat hij moet doen – in de woordenschat van de taal waarin u programmeert – zodat het het gewenste eindresultaat oplevert. Door uw eigen functies te schrijven, kunt u de mogelijkheden en woordenschat van de taal uitbreiden.
Een verzameling handige functies wordt a . genoemd bibliotheek. Python wordt geleverd met een standaardbibliotheek. Dit is een zeer grote verzameling functies gegroepeerd in modules. Het biedt modules voor taken als interactie met het besturingssysteem, lezen en schrijven van CSV-bestanden, ZIP-compressie en decompressie, cryptografie, werken met datums en tijd, en nog veel meer.
Om een functie te gebruiken moet u de juiste module importeren.
import os print("CurrentDir:", os.getcwd())
Om te interlacen met het besturingssysteem importeren we de os
module. Om de huidige werkdirectory te controleren, gebruiken we de getcwd()
functie, die is opgenomen in de os
module.
Als we die twee regels opslaan in een tekstbestand met de naam “cwd.py”, kunnen we het uitvoeren door de Linux python3
interpreter en het doorgeven van de programmanaam op de opdrachtregel.
python3 cwd.py
Er zijn duizenden andere bibliotheken beschikbaar voor Python. Sommige zijn in de handel verkrijgbaar, maar verreweg de meeste zijn gratis en open-source.
Een programmeertaal en een scripttaal
Wanneer je een shellscript in Linux schrijft, geeft de eerste regel van het script – een zogenaamde shebang-regel – aan welke opdrachtinterpreter moet worden gebruikt om dat script uit te voeren. Meestal is dit bash
:
#!/bin/bash
Als je de volgende shebang-regel aan je Python-programma toevoegt en het uitvoerbaar maakt, zal de shell je script doorgeven aan de Python-interpreter.
#!/usr/bin/env python3
Dat betekent dat je scripts in Python kunt schrijven, net zoals je doet met bash
commando’s. Als we de shebang-regel toevoegen aan ons vorige voorbeeld, krijgen we:
#!/usr/bin/env python3 import os print("CurrentDir:", os.getcwd())
Laten we dit opslaan als “cwd-2.py” en gebruiken chmod
om het uitvoerbaar te maken:
chmod +x cwd-2.py
Om het script nu uit te voeren, kunnen we het direct bij de naam noemen:
./cwd-2.py
Python kan zelfs worden gebruikt als een scripttaal voor gebruik door andere applicaties, en Python kan worden ingesloten en gebruikt om interne functionaliteit toe te voegen aan programma’s die in andere talen zijn geschreven.
Python is van het moment
Er zijn geen hetere trends in de wereld van informatica en data-engineering dan big data, cloud computing en machine learning. En Python vormt de kern van deze bewegingen. Er zijn bibliotheken die de positie van Python als een van de beste ontwikkeltools in elk van deze disciplines vergemakkelijken. Ongetwijfeld heeft het de nummer één plek in verschillende van hen.
Sterker nog, al die open-sourcebibliotheken zijn beschikbaar voor de thuisknutselaar. Zin om een RaspberryPi te trainen voor gezichtsherkenning? Download de juiste bibliotheken – OpenCV, face_recognition en imutils bijvoorbeeld – en u kunt aan de slag.
Geïnterpreteerd, niet beperkt
Python kan worden geïnterpreteerd, maar het wordt snel uitgevoerd en schaalt goed. Het wordt gebruikt door marktleiders, waaronder Google, Facebook, Instagram, Netflix en Dropbox.
In combinatie met een webframework zoals Django is het gebruikt om enkele van de meest bezochte en meest bezochte websites ter wereld te maken, zoals YouTube, Instagram, Spotify en Dropbox.
Er zijn veel online bronnen om je te helpen Python te leren, zoals de tutorial van W3Schools. Hopelijk zal deze snelle doorloop van enkele van de interessante functies van Python je eetlust opwekken om ze uit te proberen.