Python er et programmeringssprog med åben kildekode. Det er skabt til at være letlæseligt, letforståeligt og kraftfuldt. En hollandsk programmør ved navn Guido van Rossum lavede Python i 1991. Han opkaldte det efter tv-programmet Monty Python's Flying Circus, og sprogets dokumentation og eksempler rummer ofte referencer og vittigheder fra showet.

Python er et fortolket sprog. Det betyder, at kode typisk køres af en fortolker uden først at blive kompileret til maskinkode af brugeren. Fortolkede sprog gør det nemt at ændre kode og hurtigt se resultater i f.eks. en REPL (interaktiv konsol). Som trade-off er fortolkede implementeringer ofte langsommere end programmer skrevet og optimeret i lavniveau-sprog som C. Den mest udbredte referenceimplementation hedder CPython og er skrevet i C.

Hvorfor Python er populært

Python kombinerer flere egenskaber, der gør det attraktivt for både begyndere og erfarne udviklere:

  • Letlæselighed: Syntaksen er enkel og prioriterer klarhed — indrykning bruges til blokstruktur i stedet for klammeparenteser.
  • Produktivitet: Høj abstraktionsgrad og et rigt standardbibliotek betyder, at man hurtigt kan skrive fungerende programmer.
  • Stort økosystem: Der findes biblioteker til dataanalyse (NumPy, pandas), maskinlæring (TensorFlow, PyTorch, scikit-learn), webudvikling (Django, Flask), automation, netværk m.m.
  • Tværplatform: Python-kode kan køres på Windows, macOS, Linux og mange andre systemer uden større ændringer.
  • Stor community og dokumentation: Mange pakker, tutorials og undervisningsmaterialer — fra nybegynder til avanceret.

Vigtige tekniske træk

  • Dynamisk typning: Variabler får typer ved kørselstid; det gør kode kortere, men kan kræve ekstra tests for at fange fejl tidligt. Siden PEP 484 er der også mulighed for valgfri statisk typesystem via type hints (annotationer).
  • Højere ordens funktioner: Funktioner er førstegangsborgere (first-class), og sprogfunktioner som list comprehensions, generatorer og decorators øger udtrykskraften.
  • Asynkron programmering: Python understøtter async/await-mønsteret til I/O-bound programmering, hvilket er nyttigt i netværks- og webapplikationer.
  • Global Interpreter Lock (GIL): CPython har en GIL, som begrænser ægte trådparallelisme i samme proces for CPU-bound opgaver. For at udnytte flere CPU-kerner bruges ofte multiprocessing eller native-udvidelser.
  • Forskellige implementationer: Udover CPython findes alternativer som PyPy (en implementering med JIT-compilering, som ofte er hurtigere for lange kørsler), Jython (Python på JVM) og IronPython (.NET). For at få C-hastighed kan man også bruge Cython eller skrive udvidelser i C.

Performance og optimering

Python-fokus ligger på udviklerproduktivitet og læsbarhed mere end maksimal køretidshastighed. Når ydeevne er kritisk, er almindelige strategier:

  • Flytte beregningsintensive dele til moduler skrevet i C/C++ eller bruge biblioteker som NumPy, der udfører tunge opgaver i native kode.
  • Brug af alternative implementeringer som PyPy for lange kørsler, eller værktøjer som Cython og Numba til at kompilere kritiske sektioner.
  • Parallelisering ved hjælp af multiprocessing, distribuering eller eksterne services.

Anvendelsesområder

Python bruges bredt i industrien og i forskning:

  • Dataanalyse og videnskabelig computing: NumPy, pandas, SciPy, Jupyter-notebooks.
  • Maskinlæring og AI: TensorFlow, PyTorch, scikit-learn og økosystemer til modeludvikling og deployment.
  • Webudvikling: Frameworks som Django og Flask til både store og små webprojekter.
  • Scripting og automation: Automatisering af opgaver, batch-scripts og DevOps-værktøjer.
  • Uddannelse: Pythons enkelhed gør det til et foretrukket første sprog i mange kurser.

Værktøjer og pakkehåndtering

Et par vigtige værktøjer i moderne Python-udvikling:

  • pip: Standardværktøj til at installere pakker fra Python Package Index (PyPI).
  • venv / virtualenv: Virtuelle miljøer til at isolere projektets afhængigheder.
  • Build- og afhængighedsværktøjer: Tools som setuptools, poetry og pipenv bruges til pakkehåndtering og distribution.
  • REPL og notebooks: Interaktiv udvikling i Python-konsollen eller Jupyter-notebooks er meget udbredt til udforskning og prototyper.

Sprogudvikling og stabilitet

Python-udviklerne vægter stabilitet og bagudkompatibilitet højt. Ændringer i sprogets kerne diskuteres og implementeres gennem PEP’er (Python Enhancement Proposals). Der lægges vægt på at undgå hyppige, små ændringer i referenceimplementationen (CPython), så eksisterende kode fortsat virker på tværs af versioner.

Kom godt i gang

En enkel start med Python:

  • Installer Python fra den officielle distribution eller via systemets pakkehåndtering.
  • Kør interaktiv konsol ved at skrive python eller python3 i en terminal — prøv f.eks. print("Hej verden").
  • Lav et script i en fil med filtypen .py og kør det med python filnavn.py.
  • Opret et virtuelt miljø: python -m venv venv, aktiver det og brug pip install til at tilføje pakker.

Afsluttende bemærkninger

Det er et vigtigt mål for Python-udviklerne at sørge for, at det er sjovt og intuitivt at bruge Python. Det afspejler sig i sprogets navn og i den venlige, aktive community, som deler kode, tutorials og humor — f.eks. ved at bruge “spam” og “æg” i stedet for standard-foo og -bar i mange eksempler.

Python har hentet inspiration fra andre sprog som C, C++, Java, Perl og Lisp, men har udviklet et klart selvstændigt sprog med fokus på læsbarhed og pragmatisme.