Académique Documents
Professionnel Documents
Culture Documents
Date de première
20 février 1991, 32 ans[1]
version
Paradigmes Objet, impératif et fonctionnel
Auteur Guido van Rossum
Développeurs Python Software Foundation
Dernière version 3.12.1 (7 décembre 2023)[2]
Version en
3.13.0a2 (21 novembre 2023)[3],[4]
développement
Typage Fort, dynamique, duck typing
Influencé par ABC, C, Eiffel, ICON, Modula-3, Java, Perl,
Smalltalk, Tcl
A influencé Ruby, Groovy, Boo, Julia
Implémentations CPython, Jython, IronPython, PyPy
Écrit en C pour CPython, Java pour Jython, C# pour
IronPython et en Python lui-même pour PyPy
Système
Multiplateforme
d'exploitation
Licence Licence libre :
Python Software Foundation License
Site web www.python.org (https://www.python.org/)
modifier (https://fr.wikipedia.org/w/index.php?title=Python_(langage)&action=edit&s
ection=0)
Au CWI
Au CNRI
À BeOpen
Syntaxe
Mots-clés du langage
Types de base
Programmation fonctionnelle
s = "abracadabra"
{c for c in s}
[ i + j if i != j else 0 a = []
for i in range(n) for i in range(n):
if i % 2 != 0 if i % 2 != 0:
for j in range(n) for j in range(n):
if j % 3 != 0 ] if j % 3 != 0:
a.append(i + j if i != j else 0)
lambda x: x + 2
Les fonctions lambda peuvent être définies en ligne et
utilisées comme arguments dans des expressions
fonctionnelles :
def filtre_inferieur_a_5(une_liste):
def mon_filtre(x): # variable locale
mon_filtre
return x < 5
return filter(mon_filtre, une_liste)
def accum(pas):
total = 0
def ajoute(n):
nonlocal total
total += n * pas
return total
return ajoute
Programmation objet
getattr(objet, "nom_attribut")
setattr(objet, "nom_attribut",
nouvel_attribut)
class Personne:
def __init__(self, nom, prenom):
self.nom = nom
self.prenom = prenom
def presenter(self):
return self.nom + " " + self.prenom
class Etudiant(Personne):
def __init__(self, niveau, nom, prenom):
Personne.__init__(self, nom, prenom)
self.niveau = niveau
def presenter(self):
return self.niveau + " " +
Personne.presenter(self)
class Vector2D:
def __init__(self, x, y):
# On utilise un tuple pour stocker
les coordonnées
self.coords = (x, y)
def __repr__(self):
# L'affichage de l'objet dans
l'interpréteur
return "Vector2D(%s, %s)"
%self.coords
a = Vector2D(1, 2)
b = Vector2D(3, 4)
print(a + b) # Vector2D(4, 6)
Générateurs
def gen_fibonacci():
"""Générateur de la suite de Fibonacci"""
a, b = 0, 1
while True:
yield a # Renvoie la valeur de "a",
résultat de l'itération en cours
a, b = b, a + b
fi = gen_fibonacci()
for i in range(20):
print(next(fi))
import itertools
list(itertools.islice(gen_fibonacci(), 10))
# renvoie [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
def queens(n):
a = list(range(n))
up = [True] * (2 * n - 1)
down = [True] * (2 * n - 1)
def sub(i):
for k in range(i, n):
j = a[k]
p = i + j
q = i - j + n - 1
if up[p] and down[q]:
if i == n - 1:
yield tuple(a)
else:
up[p] = down[q] = False
a[i], a[k] = a[k], a[i]
yield from sub(i + 1)
up[p] = down[q] = True
a[i], a[k] = a[k], a[i]
yield from sub(0)
Réflexivité
Typage
Méthodes
Visibilité
Bibliothèque standard
Conventions de style
Interfaces graphiques
La communauté Python
Adoption de Python
Implémentations du langage
Distributions de Python
1.5(.2) 3 janvier 1998 13 avril 1999 Nouveau module re qui remplace regex
Framework d'avertissement
2.1 15 avril 2001 9 avril 2002 Ajout des modules inspect, pydoc, doctest, pyunit
Nested Scopes
2.2 21 décembre 2001 30 mai 2003 Unification de Type et de Class : on peut maintenant hériter des types
de base
Version Date de sortie Fin de support Nouveautés majeures[75]
Ajout des itérateurs et générateurs
2.3 29 juin 2003 11 mars 2008 Le type bool est maintenant vraiment distinct d'un entier
La fonction de tri sort() accepte les mots clés cmp, key et reverse
2.7 3 juillet 2010 1er janvier 2020 Syntaxe pour les ensembles littéraux : {1, 2, 3} au lieu de
set((1, 2, 3))
Les chaînes sont en Unicode par défaut, 'bytes' remplace l'ancien type
'str'
Utilise des itérateurs plutôt que des listes là où c'est approprié (ex :
dict.keys() )
13 mai 2013 (mises à jour de Modification de la gestion des fichiers compilés .pyc
3.2 20 février 2011[78] sécurité jusqu'au
Ajout des certificats (protocole HTTPS)
20 février 2016)
Amélioration du module pickle
Nouveaux modules.
avril 2021 (mises à jour de Cette section est vide, insuffisamment détaillée ou incomplète. Votre
3.8 14 octobre 2019 sécurité jusqu'en aide est la bienvenue ! Comment faire ?
octobre 2024)
Dernière version supportant Windows 7.
3.9 5 octobre 2020 mai 2022 (mises à jour de Support de l'opérateur union pour les dictionnaires[94]
sécurité jusqu'en
Nouvelles méthodes de suppression des préfixes et/ou suffixes pour
octobre 2025)
les chaînes de caractères[95]
Nouveaux modules :
zoneinfo : support des fuseaux horaires IANA[96]
Nouvelle API pour les outils tels que les debuggers ou les profilers,
permettant de directement surveiller les événements dans Cpython
avec un coût faible en performance[117]
3.12 2 octobre 2023 octobre 2028
Concernant les annotations de type :
Nouvelle manière plus concise et compacte de définir des
fonctions et classes génériques. De même pour les alias de type
[118]
via la nouvelle instruction type
Les PEP
Python 3
Philosophie
Notes et références
Voir aussi
Bibliographie
Bibliothèques scientifiques :
Calcul : NumPy, SciPy, Pandas, PyIMSL Studio, Sympy,
SageMath
Système expert : pyCLIPS, pyswip, pyDatalog, pyKE
(« Python Knowledge Engine »)
Visualisation : pydot, Matplotlib, pyngl, MayaVi
Exploration de données : Orange
Simulation : simPy
Chimie : PyMOL, MMTK, Chimera, PyQuante
Biologie : Biopython
Utilitaire : eGenix, ctype, Askbot
Analyseur syntaxique : PyParsing, PLY (« Python Lex &
Yacc »), NLTK (« Natural Language Toolkit »), SpaCy
Générateur de documentation : Sphinx
Graphisme : PIL / « Pillow » Soya 3D, Vpython, pymedia,
NodeBox, Mahotas
Jeux : Pygame, Panda3D
Framework web : Django, Karrigell, webware, Grok (en) ,
TurboGears, Pylons (en) , Flask, Bottle
Serveur web, CMS : Plone, Zope, Google App Engine,
CherryPy, MoinMoin, django CMS
Cartographie : TileCache, FeatureServer, Cartoweb 4,
Shapely, GeoDjango, PCL
Protocoles :
pyTango
Sérialisation : SimpleJSON
TCP, UDP, SSL/TLS, multicast, Unix sockets, HTTP,
NNTP, IMAP, SSH, IRC, FTP : Twisted
Vecteur : GeoJSON, OWSLib, Quadtree, Rtree, Shapely,
WorldMill, ZCO
ORM : SQLObject, SQLAlchemy, Storm, Django ORM
Driver SGBD : PyGresQL, Psycopg, MySQL-python (https://
pypi.python.org/pypi/MySQL-python) [archive]
Apprentissage : Keras
Articles connexes
Portail de l’informatique
Portail des logiciels libres
Portail de la programmation informatique