python est un langage de programmation objet multi paradigme et multiplateformes il favorise la programmation imperative structuree fonctionnelle et orientee objet il est dote d un typage dynamique fort d une gestion automatique de la memoire par ramasse miettes et d un systeme de gestion d exceptions il est ainsi similaire a perl ruby scheme smalltalk et tcl le langage python est place sous une licence libre proche de la licence bsd et fonctionne sur la plupart des plates formes informatiques des supercalculateurs aux ordinateurs centraux de windows a unix en passant par gnu linux mac os ou encore android ios et aussi avec java ou encore net il est concu pour optimiser la productivite des programmeurs en offrant des outils de haut niveau et une syntaxe simple a utiliser il est egalement apprecie par les pedagogues qui y trouvent un langage ou la syntaxe clairement separee des mecanismes de bas niveau permet une initiation aisee aux concepts de base de la programmation sommaire utilisations historique au cwi au cnri a beopen la python software foundation caracteristiques syntaxe mots cles du langage types de base programmation fonctionnelle programmation objet methodes speciales et definition des operateurs generateurs reflexivite typage compilation modele objet methodes visibilite heritage bibliotheque standard conventions de style interfaces graphiques la communaute python adoption de python implementations du langage les distributions historique des versions developpement les pep python philosophie planning et compatibilite python pour smartphones notes et references voir aussi liste de frameworks principaux articles connexes liens externes utilisations python est un langage qui peut s utiliser dans de nombreux contextes et s adapter a tout type d utilisation grace a des bibliotheques specialisees il est cependant particulierement utilise comme langage de script pour automatiser des taches simples mais fastidieuses comme un script qui recupererait la meteo sur internet ou qui s integrerait dans un logiciel de conception assistee par ordinateur afin d automatiser certains enchainements d actions repetitives on l utilise egalement comme langage de developpement de prototype lorsqu on a besoin d une application fonctionnelle avant de l optimiser avec un langage de plus bas niveau il est particulierement repandu dans le monde scientifique et possede de nombreuses extensions destinees aux applications numeriques depuis il est enseigne a tous les etudiants de classes preparatoires scientifiques dans le cadre du tronc commun informatique pour tous historique au cwi guido van rossum createur de python a la oscon a la fin des annees le programmeur guido van rossum participe au developpement du langage de programmation abc au centrum voor wiskunde en informatica cwi d amsterdam aux pays bas il travaillait alors dans l equipe du systeme d exploitation amoeba dont les appels systemes etaient difficilement interfacables avec le bourne shell utilise comme interface utilisateur il estime alors qu un langage de script inspire d abc pourrait etre interessant comme interpreteur de commandes pour amoeba en profitant d une semaine de vacances durant les fetes de no l il utilise son ordinateur personnel pour ecrire la premiere version du langage fan de la serie televisee des monty python il decide de baptiser ce projet python il s est principalement inspire d abc par exemple pour l indentation comme syntaxe ou les types de haut niveau mais aussi de modula pour la gestion des exceptions du langage c et des outils unix durant l annee suivante le langage commence a etre adopte par l equipe du projet amoeba guido poursuivant son developpement principalement pendant son temps libre en fevrier la premiere version publique numerotee est postee sur le forum usenet alt sources la derniere version sortie au cwi fut python au cnri en van rossum continua son travail sur python au cnri en a reston aux etats unis ou il sortit plusieurs versions du logiciel a partir d aout l equipe python travaille au cnri sur grail un navigateur web utilisant tk il est l equivalent pour python du navigateur hotjava permettant d executer des applets dans un environnement securise la premiere version publique disponible en novembre est la il a entraine le developpement de modules pour la bibliotheque standard comme rexec htmllib ou urllib la version sera la derniere de grail elle est publiee en avril en le projet computer programming for everybody cp e est lance avec collaboration entre le cnri et la darpa il s agit d utiliser python comme langage d enseignement de la programmation cette initiative conduira a la creation de l environnement de developpement idle cependant du fait du manque de financement du projet par la darpa et du depart de nombreux developpeurs python du cnri dont guido van rossum le projet s eteint en python fut la derniere version sortie au cnri a beopen en l equipe principale de developpement de python demenagea a beopen com pour former l equipe pythonlabs de beopen python fut la seule version sortie a beopen com apres cette version guido van rossum et les autres developpeurs de pythonlabs rejoignirent digital creations a present connue sous le nom de zope corporation andrew m kuchling a publie en decembre un texte nomme python warts qui synthetise les griefs les plus frequents exprimes a l encontre du langage ce document aura une influence certaine sur les developpements futurs du langage la python software foundation python fut une version derivee de python ainsi que de python sa licence fut renommee python software foundation license tout code documentation et specification ajoute depuis la sortie de python alpha est detenu par la python software foundation psf une association sans but lucratif fondee en modelee d apres l apache software foundation afin de reparer certains defauts du langage ex orientation objet avec deux types de classes et pour nettoyer la bibliotheque standard de ses elements obsoletes et redondants python a choisi de casser la compatibilite ascendante dans la nouvelle version majeure python publie en decembre cette version a ete suivie rapidement par une version qui corrige les erreurs de jeunesse de la version en la rendant directement obsolete caracteristiques syntaxe python a ete concu pour etre un langage lisible il vise a etre visuellement epure par exemple il possede moins de constructions syntaxiques que de nombreux langages structures tels que c perl ou pascal les commentaires sont indiques par le caractere croisillon les blocs sont identifies par l indentation au lieu d accolades comme en c ou c ou de begin end comme en pascal une augmentation de l indentation marque le debut d un bloc et une reduction de l indentation marque la fin du bloc courant les parentheses sont facultatives dans les structures de controle fonction factorielle en c fonction factorielle en python fonction factorielle en c int factorielle int x if x return else return x factorielle x fonction factorielle en python def factorielle x if x return else return x factorielle x nb des accolades pourraient etre retirees de la version en c mais des erreurs pouvant etre aisement commises en cas d imbrication de plusieurs blocs cela ne correspondrait pas aux normes de codages habituellement recommandees mots cles du langage les mots cles sont fournis dans la liste keyword kwlist du module keyword les mots cles de python sont les suivants and as assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield a partir de python print et exec ne sont plus des mots cles du langage mais des fonctions du module builtins sont ajoutes aux mots cles true false none et nonlocal les trois premiers etaient deja presents dans les versions precedentes mais ils ne sont plus modifiables auparavant l affectation true etait possible nonlocal a ete introduit par le pep et permet dans une fonction definie a l interieur d une autre fonction de modifier une variable d un niveau superieur de portee avant cela seules les variables locales a la fonction et globales niveau module etaient modifiables types de base les types de base en python sont relativement complets et puissants il y a entre autres les objets numeriques int est un entier illimite avant la version ce type etait denomme long et le type int correspondait a un entier ou bits neanmoins une conversion automatique evitait tout debordement float est un flottant equivalent au type double du c soit un nombre entre et sur les plateformes en conformite avec l ieee complex est une approximation d un nombre complexe typiquement deux floats les objets iterables les objets tuple ou n uplet sont des listes immuables d objets heterogenes les objets list sont des tableaux dynamiques ils etendent automatiquement leur taille lorsque necessaire et acceptent des types de donnees heterogenes les objets set sont des ensembles non ordonnes d objets les objets frozenset forment une variante immuable des set les objets dict sont des tableaux associatifs ou dictionnaires permettant d associer un objet une clef a un autre les objets str sont des chaines de caracteres a partir de la version les caracteres sont en unicode sur ou bits les chaines d octets ascii sont des objets bytes dans les versions precedentes ces objets etaient respectivement de type unicode et str les objets iterables sont parcourus a l aide d une boucle for de la maniere suivante for element in objet iterable traiter element pour une chaine de caracteres l iteration procede caractere par caractere il est possible de deriver les classes des types de base pour creer ses propres types on peut egalement fabriquer ses propres types d objets iterables sans heriter des iterables de base en utilisant le protocole d iteration du langage programmation fonctionnelle python permet de programmer dans un style fonctionnel les comprehensions de listes sont disponibles par exemple pour construire la liste des carres des entiers naturels plus petits que on peut utiliser l expression liste liste la liste des nombres pairs liste liste une forme limitee de fonctions lambda ou fonctions anonymes est disponible lambda x x les fonctions lambda peuvent etre definies en ligne et utilisees comme arguments dans des expressions fonctionnelles filter lambda x x une liste retournera une liste constituee des elements de une liste inferieurs a le meme resultat peut etre obtenu avec les lambdas de python n admettent que des expressions et ne peuvent etre utilisees comme fonctions anonymes generalisees mais en python toutes les fonctions sont des objets elles peuvent donc etre passees en arguments a d autres fonctions et appelees lorsque necessaire en effet les fonctions definies avec def sont equivalentes a celles definies avec lambda il est d ailleurs possible de definir une fonction a l interieur d une autre fonction et ainsi obtenir une definition de fonction dans une variable locale exemple def filtre inferieur a une liste def mon filtre x variable locale mon filtre return x return filter mon filtre une liste programmation objet la programmation objet est tres bien geree par python tous les types de base les fonctions les instances de classes les objets classiques des langages c et java et les classes elles memes qui sont des instances de meta classes sont des objets une classe se definit avec le mot class les classes python supportent l heritage multiple il n y a pas de surcharge statique comme en c ou de restrictions sur l heritage comme c est le cas en java une classe implemente plusieurs interfaces et herite d une seule classe mais le mecanisme des arguments optionnels et par mot clef est plus general et plus flexible en python l attribut d un objet peut referencer une variable d instance ou de classe le plus souvent une methode il est possible de lire ou de modifier un attribut dynamiquement avec les fonctions getattr objet nom attribut setattr objet nom attribut nouvel attribut exemple de deux classes simples 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 e etudiant licence info dupontel albert assert e nom dupontel methodes speciales et definition des operateurs python fournit un mecanisme elegant et oriente objet pour definir un ensemble pre defini d operateurs tout objet python peut se voir dote de methodes dites speciales ces methodes commencant et finissant par deux tirets de soulignement underscores sont appelees lors de l utilisation d un operateur sur l objet methode add methode iadd methode getitem methode call des methodes comme repr et str permettent de definir la representation d un objet dans l interpreteur interactif et son rendu avec le mot cle print les possibilites sont nombreuses et sont decrites dans la documentation du langage par exemple on peut definir l addition de deux vecteurs a dimensions avec la classe suivante class vector d def init self x y on utilise un tuple pour stocker les coordonnees self coords x y def add self other l instruction a b sera resolue comme a add b on construit un objet vector d a partir des coordonnees propres a l objet et a l autre operande return vector d self coords other coords self coords other coords def repr self l affichage de l objet dans l interpreteur return vector d s s self coords a vector d b vector d print a b vector d generateurs le mot clef yield utilise dans une fonction permet de faire de cette fonction un generateur l appel de cette fonction renvoie un objet de type generator qui peut etre utilise dans une boucle for par exemple a chaque appel le generateur effectue son traitement jusqu a rencontrer le mot cle yield renvoie la valeur de l expression yield et a l appel suivant reprend son deroulement juste apres le yield par exemple pour calculer la suite de fibonacci on peut faire def gen fibonacci generateur de la suite de fibonacci a b while true yield a renvoi de la valeur de a resultat de l iteration en cours a b b a b fi gen fibonacci for i in range print next fi l execution de renverra def gen nombres pairs generateur de nombres pairs a while true print genere le nombre a yield a a pi gen nombres pairs for i in range print next pi genere le nombre genere le nombre genere le nombre genere le nombre un generateur peut sembler identique a une fonction qui retourne une liste mais contrairement a une liste qui contient tous ses elements un generateur calcule ses elements un par un reflexivite grace a un usage intensif des dictionnaires conteneur associatif developpe avec des tables de hachage python permet d explorer les divers objets du langage introspection et dans certains cas de les modifier intercession typage le typage n est pas verifie a la compilation de ce fait des operations sur un objet peuvent echouer signifiant que l objet en question n est pas du bon type malgre l absence de typage statique python est fortement type interdisant des operations ayant peu de sens comme par exemple additionner un nombre a une chaine de caracteres au lieu de tenter silencieusement de la convertir en une forme qui a du sens python propose des fonctions permettant de transformer les variables dans un autre type points points est du type float print tu as points points genere une erreur de typage points int points points est maintenant du type int entier sa valeur est arrondie a l unite inferieure ici print tu as points points genere une erreur de typage points str points points est maintenant du type str chaine de caracteres print tu as points points plus d erreur de typage affiche tu as points de meme chaque variable devra etre declaree avant d etre utilisee python propose aussi un mecanisme de typage fort grace a l api trait ou au patron de conception decorators compilation il est possible d effectuer une analyse statique des modules python avec des outils comme pylint ou pychecker sans necessiter une execution ces outils reperent des fautes ou des constructions deconseillees par exemple une classe qui herite d une classe abstraite et qui ne redefinit pas les methodes abstraites ou bien des variables utilisees avant d etre declarees ou encore des attributs d instance declares en dehors de la methode init il est aussi possible de generer un code intermediaire bytecode python des outils comme pyinstaller ou d autres plus specifiques comme cx freeze sous unix windows et mac os x py app sous mac os x et py exe sous windows permettent de compiler un programme python sous forme d un executable comprenant le programme et un interpreteur python le programme ne tourne pas plus rapidement il n est pas compile sous forme de code machine mais cela simplifie largement sa distribution notamment sur des machines ou l interpreteur python n est pas installe modele objet en python tout est objet dans le sens qu une variable peut contenir une reference vers tous les elements manipules par le langage nombres methodes modules etc neanmoins avant la version les classes et les instances de classes etaient un type d objet particulier ce qui signifiait qu il etait par exemple impossible de deriver sa propre sous classe de l objet list methodes le modele objet de python est inspire de celui de modula parmi ces emprunts se trouve l obligation de declarer l instance de l objet courant conventionnellement nommee self comme premier argument des methodes et a chaque fois que l on souhaite acceder a une donnee de cette instance dans le corps de cette methode cette pratique n est pas naturelle pour des programmeurs venant par exemple de c ou java la profusion des self etant souvent critiquee comme etant une pollution visuelle qui gene la lecture du code les promoteurs du self explicite estiment au contraire qu il evite le recours a des conventions de nommage pour les donnees membres et qu il simplifie des taches comme l appel a une methode de la superclasse ou la resolution d homonymie entre donnees membres python reconnait trois types de methodes les methodes d instances qui sont celles definies par defaut elles recoivent comme premier argument une instance de la classe ou elles ont ete definies les methodes de classes qui recoivent comme premier argument la classe ou elles ont ete definies elles peuvent etre appelees depuis une instance ou directement depuis la classe elles permettent de definir des constructeurs alternatifs comme la methode fromkeys de l objet dict les methodes statiques qui ne recoivent pas de premier argument implicite elles sont similaires aux methodes statiques que l on trouve en java ou c visibilite le langage a un support tres limite de l encapsulation il n y a pas comme en java par exemple de controle de l accessibilite par des mots clefs comme protected ou private la philosophie de python est de differencier conceptuellement l encapsulation du masquage d information le masquage d information vise a prevenir les utilisations frauduleuses c est une preoccupation de securite informatique le module bastion de la bibliotheque standard qui n est plus maintenu dans les dernieres versions du langage permettait ainsi de controler l acces aux attributs d un objet dans le cadre d un environnement d execution restreint l encapsulation est une problematique de developpement logiciel le slogan des developpeurs python est we re all consenting adults here nous sommes entre adultes consentants ils estiment en effet qu il suffit d indiquer par des conventions d ecriture les parties publiques des interfaces et que c est aux utilisateurs des objets de se conformer a ces conventions ou de prendre leurs responsabilites l usage est de prefixer par un underscore les membres prives le langage permet par ailleurs d utiliser un double underscore pour eviter les collisions de noms en prefixant automatiquement le nom de la donnee par celui de la classe ou elle est definie l utilisation de la fonction property permet de definir des proprietes qui ont pour but d intercepter a l aide de methodes les acces a une donnee membre cela rend inutile la definition systematique d accesseurs et le masquage des donnees comme il est courant de le faire en c par exemple heritage python supporte l heritage multiple depuis la version il utilise l algorithme c en issu du langage dylan pour resoudre l ordre de resolution de methode mro les versions precedentes utilisaient un algorithme de parcours en profondeur qui posait des problemes dans le cas d un heritage en diamant bibliotheque standard python est fourni piles incluses python possede une grande bibliotheque standard fournissant des outils convenant a de nombreuses taches diverses le nombre de modules de la bibliotheque standard peut etre augmente avec des modules specifiques ecrits en c ou en python la bibliotheque standard est particulierement bien concue pour ecrire des applications utilisant internet avec un grand nombre de formats et de protocoles standards geres tels que mime et http des modules pour creer des interfaces graphiques et manipuler des expressions rationnelles sont egalement fournis python inclut egalement un framework de tests unitaires unittest anciennement pyunit avant version pour creer des suites de tests exhaustives conventions de style bien que chaque programmeur puisse adopter ses propres conventions pour l ecriture de code python guido van rossum a mis un guide a disposition reference comme pep publie en il est toujours maintenu en pour l adapter aux evolutions du langage google propose egalement un guide interfaces graphiques python possede plusieurs modules disponibles pour la creation de logiciels avec une interface graphique le plus repandu est tkinter ce module convient a beaucoup d applications et peut etre considere comme suffisant dans la plupart des cas neanmoins d autres modules ont ete crees pour pouvoir lier python a d autres bibliotheques logicielles toolkit pour davantage de fonctionnalites pour une meilleure integration avec le systeme d exploitation utilise ou simplement pour pouvoir utiliser python avec sa bibliotheque preferee en effet certains programmeurs trouvent l utilisation de tkinter plus penible que d autres bibliotheques ces autres modules ne font pas partie de la bibliotheque standard et doivent donc etre obtenus separement les principaux modules donnant acces aux bibliotheques d interface graphique sont tkinter et pmw python megawidgets pour tk wxpython pour wxwidgets pygtk pour gtk pyqt et pyside pour qt et enfin fxpy pour le fox toolkit il existe aussi une adaptation de la bibliotheque sdl pygame un binding de la sfml pysfml ainsi qu une bibliotheque ecrite specialement pour python pyglet en il est aussi possible de creer des applications silverlight en python sur la plateforme ironpython la communaute python van rossum est le principal auteur de python et son role de decideur central permanent de python est reconnu avec humour par le titre de dictateur bienveillant a vie benevolent dictator for life bdfl il est assiste d une equipe de core developers qui ont un acces en ecriture au depot de cpython et qui se coordonnent sur la liste de diffusion python dev ils travaillent principalement sur le langage et la bibliotheque de base ils recoivent ponctuellement les contributions d autres developpeurs python via la plateforme de gestion de bug roundup qui a remplace sourceforge les utilisateurs ou developpeurs de bibliotheques tierces utilisent diverses autres ressources le principal media generaliste autour de python est le forum usenet anglais comp lang python les allusions aux monty python sont assez frequentes les didacticiels consacres a python utilisent souvent les mots spam et eggs comme variable metasyntaxique il s agit d une reference au sketch spam des monty python ou deux clients tentent de commander un repas a l aide d une carte qui contient du jambon en conserve de marque spam dans pratiquement tous les plats ce sketch a ete aussi pris pour reference pour designer un email non sollicite adoption de python plusieurs entreprises mentionnent sur leur site officiel qu elles utilisent python google guido van rossum a travaille au sein de cette entreprise entre et industrial light magic la nasa et ccp games les createurs du jeu video eve online python est aussi le langage de commande d un grand nombre de logiciels libres freecad logiciel de cao d blender logiciel de modelisation d inkscape logiciel de dessin vectoriel libreoffice une suite bureautique portage le gestionnaire de paquets du systeme d exploitation gentoo paraview logiciel de visualisation de donnees numeriques xbmc un lecteur multimedia python est utilise comme langage de programmation dans l enseignement elementaire et superieur implementations du langage outre la version de reference nommee cpython car ecrite en langage c il existe d autres systemes mettant en uvre le langage python stackless python une version de cpython n utilisant pas la pile d appel du langage c jython un interprete python pour machine virtuelle java il a acces aux bibliotheques fournies avec l environnement de developpement java ironpython un interprete compilateur experimental pour plateforme net mono pypy un interprete python ecrit dans un sous ensemble de python compilable vers le c ou llvm un compilateur experimental pour parrot la machine virtuelle de perl shed skin en un compilateur d un sous ensemble de python produisant du code en c unladen swallow en une version de cpython optimisee et basee sur llvm maintenant abandonnee la derniere version remonte a octobre ces autres versions ne beneficient pas forcement de la totalite de la bibliotheque de fonctions ecrites en c pour la version de reference les distributions differentes distributions sont disponibles qui incluent parfois beaucoup de packages dedies a un domaine donne activepython python x y une distribution python a l usage des scientifiques basee sur qt et eclipse enthought canopy un autre distribution a usage scientifique anaconda une troisieme distribution a usage scientifique pyzo python to the people destinee a etre facile d utilisation historique des versions version date de sortie nouveautes avril ajout du mot cle assert possibilite d importer une hierarchie de modules import spam ham eggs nouveau module re qui remplace regex les exceptions sont maintenant des classes ajout de l option o qui supprime les assertions et informations de ligne de fichier septembre la methode append des listes n accepte plus qu un seul argument le resultat des fonctions str et repr est maintenant beaucoup plus souvent different exemple str l et repr l l les chaines de caracteres ont maintenant des methodes abc strip le module re est compatible avec l ancien moteur est plus rapide et accepte les chaines unicode ajout du module distutils nouveau prototype def f args kw pour les fonctions avant il fallait utiliser apply int et long acceptent maintenant une base en second argument l operateur in peut etre surchage avec une methode contains octobre changement majeur support d unicode ajout des comprehensions de liste list comprehensions ajout des operateurs avec assignement a b a b etc les chaines str ont maintenant des methodes nouveau ramasse miettes a cycles nouveau prototype def f args kw pour les fonctions avant il fallait utiliser apply ajout des modules distutils xml dom minidom module et xml sax avril creation du module future pour rendre les transitions plus douces comparaisons riches methodes lt le ne framework d avertissement ajout des modules inspect pydoc doctest pyunit ajout des references faibles weak references les fonctions peuvent avoir des attributs nested scopes la version juin sera la premiere version compatible gpl decembre unification de type et de class on peut maintenant heriter des types de base ajout des iterateurs et generateurs nouvel operateur a b pour la division entiere juillet ajout des fonctions enumerate et sum le type bool est maintenant vraiment distinct d un entier beaucoup d ameliorations du support unicode novembre ajout des decorateurs de fonction methode decorateur conversion automatique d un entier court en entier long si le resultat d une operation est trop grand expressions de generateur retournant les resultats l un apres l autre et non pas sous forme d une liste exemple sum x for x in xrange ajout des fonctions reversed et sorted la fonction sort accepte les mots cles cmp key et reverse creation du module decimal et du routeur septembre ajout de l operateur with ajout des methodes send throw et close aux generateurs expression conditionnelle a if test else b les imports de module peuvent etre relatifs ajout des methodes partition et rpartition aux chaines str et unicode ajout des fonctions any et all integration des bibliotheques ctypes elementtree hashlib sqlite et wsgiref er octobre nouvelle syntaxe de formatage de chaines de caracteres classes de bases abstraites decorateurs de classes modules json multiprocessing contextmanager et fractions amelioration de la compatibilite avec python juillet syntaxe pour les ensembles litteraux au lieu de set comprehension de dictionnaire et d ensemble exemples i i for i in range dictionnaire et i for i in range ensemble possibilite de specifier plusieurs gestionnaires de contexte avec une seule declaration with reimplementation de la bibliotheque io entrees sorties en c pour offrir de meilleures performances cette bibliotheque est notamment utile pour acceder a un fichier texte en unicode dictionnaires ordonnes enfin comme decrits dans la pep from collections import ordereddict la methode format gere la numerotation automatique format hello world donne hello world le formatage des nombres gere les separateurs de milliers exemple format donne amelioration de precision lors des conversions chaine vers flottant et flottant vers chaine pour un flottant float repr x donnera toujours x nouveau module argparse pour parser la ligne de commande version amelioree du module optparse configuration basee sur des dictionnaires pour le module logging objets memoryview vue en lecture seule ou lecture ecriture d un objet binaire api similaire a celle du type bytes type pycapsule pour l api c pour les modules d extension les types int et long gagnent une methode bit length nombre de bits necessaires pour representer la valeur absolue du nombre decembre fusion des types int et long les chaines sont en unicode par defaut bytes remplace l ancien type str utilise des iterateurs plutot que des listes la ou c est approprie ex dict keys a b est la vraie division par defaut exec et print deviennent des fonctions none et as deviennent des mots cle le fichier init py n est plus necessaire pour les modules python x et l operateur disparaissent de nombreuses fonctions disparaissent apply buffer callable reduce disparait au profit des boucles explicites voir la pep pour les details juin ajout d un type de dictionnaire ordonne optimisations diverses apportees au type int nouvelles fonctionnalites du module unittest module d entrees sorties io rendu plus rapide integration de l instruction import en pur python nouvelle syntaxe pour les instructions with imbriquees fevrier ajout du module argparse pour le parsing des arguments passes a un programme modification de la gestion des fichiers compiles pyc ajout des certificats protocole https amelioration du module pickle septembre ajout de la syntaxe yield from pour utiliser des sous generateurs la syntaxe u unicode est de nouveau acceptee ajout du module faulthandler pour aider a debugger les problemes de bas niveau support pour la compression lzma ajout d un module pour les mock dans unittest incorporation des fonctionnalites du module virtualenv avec le module venv refonte de la hierarchie des erreurs systeme i o mars developpement les pep les propositions d amelioration de python ou pep python enhancement proposal sont des documents textuels qui ont pour objet d etre la voie d amelioration de python et de preceder a toutes ses modifications ulterieures un pep est une proposition d orientation pour le developpement process pep une proposition technique standard track pep ou une simple recommandation informational pep la plus celebre etant certainement celle de tim peters http www python org dev peps pep a leur sortie les pep sont relus et commentes par le bdfl python une nouvelle version de python appelee python le projet etait appele python ou py k abolit la compatibilite descendante avec la serie des versions x dans le but d eliminer les faiblesses du langage la ligne de conduite du projet etait de reduire la redondance dans le fonctionnement de python par la suppression des methodes obsoletes python a la premiere version alpha a ete publiee le aout et il existe un pep qui detaille les changements prevus ainsi qu une page pour orienter les programmeurs dans leur choix de python ou philosophie python a ete developpe avec la meme philosophie que dans ses versions anterieures donc toute reference a la philosophie de python s appliquera aussi bien a la version comme toujours python a accumule beaucoup de nouvelles methodes qui font en fait acte de redondance avec d autres preexistantes python en recherchant la suppression du code redondant et des modules semblables suit la grande directive philosophique de python il ne devrait subsister qu une seule methode qui soit a la fois optimale et naturelle pour chaque chose en depit de cela python restera un langage multi paradigme les programmeurs auront encore le choix entre l orientation objet la programmation structuree la programmation fonctionnelle et d autres paradigmes en depit du choix existant python a cependant pour but d etre utilise de maniere plus naturelle que dans les versions x planning et compatibilite python a la premiere version alpha de python a ete publiee le aout les versions x et x de python seront publiees en parallele pendant plusieurs cycles de developpement pendant lesquels la serie des x subsistera principalement pour la compatibilite en incluant quelques caracteristiques importees depuis python x le pep contient plus d informations a propos du processus de publication d une version comme perl python rompt la compatibilite descendante retro compatibilite l utilisation de code ecrit pour les series x n est pas garantie avec python ce dernier apporte des changements fondamentaux comme le passage generalise a l unicode pour les chaines de caracteres et une distinction forte entre les chaines de caractere et les objets bytes le typage dynamique associe a certaines methodes sur les objets de type dictionnaire font qu une transition parfaite de python x vers python est tres difficile comme toujours un outil nomme to realise la plus grande part du travail de traduction des versions x vers les versions x en indiquant les zones de codes sujettes a caution par des commentaires speciaux et des mises en garde de plus dans sa pre version to semble reussir franchement a realiser une traduction correcte dans le cadre d une migration de python x vers python x le pep recommande de conserver le code original comme base des modifications et de le traduire pour la plateforme x en utilisant to python devra fournir des caracteristiques de compatibilite ascendante aussi bien qu un mode mise en garde qui devrait faire prendre conscience des problemes potentiels de transition pour le passage a python python pour smartphones il existe des versions de python adaptees pour android et iphone en version ou disponible en jailbreak d ios sur ios grace a setup tools et sur android grace a sl a qui donne meme une possibilite de faire des petites interfaces graphiques grace au module android et qui permet d envoyer des sms d allumer la camera ou encore de faire vibrer le telephone les quelques lignes suivantes montrent comment faire ca droid android android client lie au serveur local lance par l application sl a pour controler un telephone distant a l adresse avec sl a lance sur le port il suffit de faire android android droid vibrate fait vibrer le telephone local ou distant pendant secondes un portage de python sur les terminaux blackberry est sorti en juin pour le systeme blackberry os une version allegee est sortie en septembre appelee blackberry tart en raison d un jeu de mots en anglais a tart is lighter weight than a pie elle est basee sur python