Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.

Pythonest une version interprétée, interactive, orientée objet (utilisant classes), langage de programmation dynamique et fortement typéutilisé pour un large éventail d'applications. Il incorpore des modules, des exceptions, un typage dynamique, des types de données dynamiques de très haut niveau et des classes. Python combine une puissance remarquable avec une syntaxe très claire. Il a des interfaces avec de nombreux appels système et bibliothèques, ainsi qu'avec divers systèmes de fenêtres, et est extensible en cou c++. Il est également utilisable comme langage d'extension pour les applications qui nécessitent une interface programmable. Enfin, Python est portable: il fonctionne sur de nombreuses variantes Unix, sur Mac, et sur Windows 2000 et supérieur.

Le langage est livré avec une grande bibliothèque standard qui couvre des domaines tels que le traitement des chaînes (expressions régulières, Unicode, calcul des différences entre les fichiers), les protocoles Internet (programmation HTTP, FTP, SMTP, XML-RPC, POP, IMAP et CGI), les logiciels ingénierie (tests unitaires, journalisation, profilage et analyse du code Python) et interfaces du système d'exploitation (appels système, systèmes de fichiers et sockets TCP / IP). Consultez la table des matières de La bibliothèque standard Pythonpour avoir une idée de ce qui est disponible. Une grande variété d'extensions tierces est également disponible. Consultez l 'Index des packages Pythonpour trouver les packages qui vous intéressent.

Python permet aux programmeurs d'exprimer des concepts en moins de lignes de code que cela ne serait possible dans de nombreux autres langages, comme le C, et le langage a des constructions destinées à être utilisées pour créer des programmes clairs dans une variété de domaines.

Exemple:

Programme Python

print("Hello, Stack Overflow!")

Contre

Programme C

#include <stdio.h>
int main(void) {
    printf("Hello, Stack Overflow!");
    return 0;
}

Python a été créé à l'origine par Guido van Rossumet publié pour la première fois en 1991. Guido Van Rossum a choisi Python comme titre de travail pour le projet , étant d'humeur légèrement irrévérencieuse (et grand fan du Flying Circus de Monty Python).

Python 2 (16 octobre 2000 - 1er janvier 2020) a été officiellement mis au point, et Python 3 (3 Décembre 2008) est la seule version majeure prise en charge, maintenue et améliorée au 1er janvier 2020. Nous avons une communauté de personnes des deux mondes, et si vous avez une question concernant une version spécifique, pensez à mentionner la version et l'implémentation qui que vous utilisez, lorsque vous posez une question sur Python (voir la section Recommandation de marquage ci-dessous).

Python prend en charge plusieurs paradigmes de programmation, y compris les styles de programmation orientés objet, impératifs et fonctionnels. Il dispose d'un système de type entièrement dynamique et d'une gestion automatique de la mémoire, similaire à celui de Scheme, Ruby, Perl et Tcl.

Comme d'autres langages dynamiques, Python est souvent utilisé comme un scriptingmais est également utilisé dans un large éventail de contextes sans script. À l'aide d'outils tiers, le code Python peut être intégré dans des programmes exécutables autonomes. Les interpréteurs Python sont disponibles pour de nombreux systèmes d'exploitation.

CPython, l'implémentation de référence de Python, est un logiciel gratuit et open-source. Il a un modèle de développement basé sur la communauté, comme presque toutes ses implémentations alternatives. Il existe une grande variété d'implémentations plus adaptées à des environnements ou des tâches spécifiques (voir Implémentations Pythonsur le wiki Python).

La philosophie de Python est succinctement formulée dans The Zen of Python, écrit par Tim Peters, que l'on peut lire en émettant cette commande, dans l'interpréteur interactif python:

>>> import this

Contrairement à de nombreux autres langages, Python utilise une syntaxe basée sur l'indentation (dans laquelle les tabulations et les espaces ne sont pas interchangeables). Cela peut prendre un certain temps pour s'habituer aux programmeurs habitués à utiliser des accolades.

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

Pour faciliter la transition, il est recommandé d'utiliser un éditeur de texte ou un IDE correctement configuré. Python est livré avec un IDE de base appelé IDLE(python-idle), pour vous aider à démarrer. D'autres exemples populaires sont le charityware Vim, le logiciel gratuit GNU Emacs, Eclipse + PyDev ou PyCharm. Jetez un œil à cette liste de comparaison IDEpour de nombreuses autres alternatives.

Il existe également un guide de style pour Python, nommé PEP 8, qui vise à rendre le code Python plus lisible et cohérent. Ce guide est (devrait être) suivi dans toute la communauté de développement Python.


Recommandation de balisage:

Utilisez la balise pythonpour toutes les questions relatives à Python. Si vous pensez que votre question inclut des problèmes spécifiques à des versions individuelles, utilisez python-3.xou python-2.7, en plus de la balise pythonprincipale. Si vous pensez que votre question est peut-être encore plus spécifique, vous pouvez inclure une balise spécifique à la version telle que python-3.5ou python-3.6, etc.

Pensez également à inclure la balise pour l'implémentation spécifique (jython, pypy, etc.), si vous en utilisez un autre que cpython- l'utilisation de cpythonest supposée sauf indication contraire explicite.


Les références:


Installation de packages externes:

  • Pippip

    La plupart des bibliothèques Python utilisées pour les scripts simples et avancés sont téléchargées à l'aide de pip, le programme d'installation de packages Python.Il vous permet d'installer et de gérer des packages supplémentaires qui ne font pas partie de la bibliothèque standard Python.La plupart des distributions de Python sont livrées avec pip pré-installé . Syntaxe générale:

$ pip install SomePackage
[...]
Successfully installed SomePackage
  • easy_install easy-install

    easy_install est sorti en 2004, dans le cadre de setuptools. Il était remarquable à l'époque d'installer des packages à partir de PyPI à l'aide de spécificateurs d'exigences et d'installer automatiquement les dépendances. Easy Install est obsolète. Ne l'utilise pas. Utilisez plutôt pip.


Bibliothèques Python à usage général populaires:

  • Demandesrequests

    Une bibliothèque Python simple pour faire des requêtes HTTP. Les demandes sont commercialisées comme étant "Pour les humains". La bibliothèque est destinée à simplifier et à universaliser les nombreuses méthodes de Python pour effectuer des requêtes HTTP de manière lisible et facile à utiliser. Des fonctionnalités telles que le maintien en vie et le regroupement de connexions sont automatiquement gérées pour offrir une simplicité ultime.

  • Oreillerpython-imaging-library

    Pillow est décrit comme étant une "fourchette conviviale" du module Python PIL, une bibliothèque d'imagerie non entretenue mais utile. La bibliothèque utilise des API C pour fournir une interface Python simple pour modifier et manipuler les fichiers image de différentes manières.

  • Scrapyscrapy

    Scrapy est un framework rapide d'exploration et de grattage Web de haut niveau utilisé pour analyser des sites Web et extraire des données structurées de leurs pages. Il peut être utilisé à des fins très diverses, de l'exploration de données à la surveillance et aux tests automatisés.

  • Belle soupebeautifulsoupbs4

    Beautiful Soup est un package Python pour l'analyse de documents HTML et XML. Il crée un arbre d'analyse pour les pages analysées qui peut être utilisé pour extraire des données de HTML, ce qui est utile pour le scraping Web. Il est disponible pour Python 2.7 et Python 3.

  • nltknltk

    Le Natural Language Toolkit, ou NLTK, est une plate-forme de construction d'applications Python pour travailler avec des données de langage humain et le traitement de phrases. Il fournit des interfaces faciles à utiliser à plus de 50 corpus et ressources lexicales telles que WordNet, ainsi qu'une suite de bibliothèques de traitement de texte pour la classification, la tokenisation, le stemming, le balisage, l'analyse et le raisonnement sémantique, et fournit des wrappers pour la PNL industrielle. bibliothèques.


frameworks Webpopulaires basés sur Python:

Si votre question est liée à l'un de ces cadres, veuillez vous assurer d'inclure la balise appropriée.

  • Djangodjango

    Le framework Web pour les perfectionnistes (avec des délais). Django facilite la création de meilleures applications Web plus rapidement et avec moins de code. Django est un framework Web Python de haut niveau qui encourage un développement rapide et une conception propre et pragmatique. Il vous permet de créer rapidement des applications Web élégantes et performantes. Django se concentre sur l'automatisation autant que possible et sur le respect du principe DRY (Don't Repeat Yourself).

  • Flaconflask

    Flask est un micro-framework léger et une bibliothèque tierce pour Python basée sur Werkzeug, Jinja 2 et de bonnes intentions. Il fournit une structure monolithique et n'impose pas de dépendances qui permettent un contrôle plus fin et une plus grande liberté de développement.

  • Quartquart

    Le quart est une évolution de l'API Flask pour fonctionner avec Asyncio et pour fournir un certain nombre de fonctionnalités non présentes ou possibles dans Flask.

  • Tornadetornado

    Tornado est un framework web Python et une bibliothèque de mise en réseau asynchrone. En utilisant les E / S réseau non bloquantes, Tornado peut évoluer vers des dizaines de milliers de connexions ouvertes, ce qui le rend idéal pour les longues interrogations, les WebSockets et d'autres applications qui nécessitent une connexion longue durée à chaque utilisateur.

  • CherryPycherrypy

    CherryPy est un framework Web Pythonic orienté objet qui permet aux développeurs de créer des applications Web, de la même manière qu'ils construiraient tout autre programme Python orienté objet. Il en résulte une plus petite quantité de code source qui est développé en moins de temps. CherryPy est utilisé depuis plus de 17 ans et il est utilisé en production par de nombreux sites, des plus simples aux plus exigeants.

  • Pyramidepyramid

    Un framework web léger mettant l'accent sur la flexibilité et le développement rapide. Il combine les meilleures idées des mondes de Ruby, Python et Perl, fournissant un cadre Web Python structuré mais extrêmement flexible. C'est également l'un des premiers projets à tirer parti de la nouvelle norme WSGI, qui permet une réutilisation et une flexibilité étendues, mais uniquement si vous en avez besoin.

  • TurboGearsturbogears

    TurboGears est un framework Web évolutif, qui peut passer d'une configuration en mode minimal à une application Web complète. Il a été créé en 2005 par Kevin Dangoor, et le développement actuel de TurboGears2 (turbogears2) est dirigé par Mark Ramm. La version stable actuelle de TurboGears est TurboGears 2.4.1, publiée le 3 septembre 2019

  • web.pyweb.py

    web.py est un framework web pour Python aussi simple que puissant. web.py est dans le domaine public: vous pouvez l'utiliser à n'importe quelle fin sans aucune restriction. web.py vous permet d'écrire des applications Web en Python.

  • Grokgrok

    Construit sur les bibliothèques Zope 3 existantes, mais vise à fournir une courbe d'apprentissage plus facile et une expérience de développement plus agile. Grok le fait en mettant l'accent sur la convention sur la configuration et sur DRY (Don't Repeat Yourself).

  • Bouteille bottle

    La bouteille est un micro-framework WSGI rapide, simple et léger pour Python. Il est distribué comme un module de fichier unique et n'a pas de dépendances autres que la bibliothèque standard Python.

  • web2pyweb2py

    web2py est un framework open source full-stack gratuit pour le développement rapide d'applications basées sur le web, rapides, évolutives, sécurisées et portables.

  • Falconfalconframework

    Falcon est un framework web Python minimal pour la construction de microservices, de backends d'application et de frameworks de niveau supérieur et encourage le style architectural REST. Il a des versions communautaires et commerciales.

  • Twistedtwisted

    Twisted est un moteur de mise en réseau open source piloté par les événements. Il est utile pour implémenter à la fois les clients et les serveurs et s'adapte aux grands sites Web et aux appareils intégrés. Twisted facilite l'implémentation d'applications réseau personnalisées.


Cadres graphiques Python populaires basés sur Python

  • Kivykivy

    Kivy est un framework accéléré OpenGL ES 2 pour la création de nouvelles interfaces utilisateur. Il prend en charge plusieurs plates-formes à savoir Windows, Mac OS X, Linux, Android iOS et Raspberry Pi. Il est open source et est livré avec plus de 20 widgets dans sa boîte à outils. Des objets matériels supplémentaires sont disponibles via KivyMD.

  • PyQTpyqt

    PyQT est l'une des liaisons Python multiplateformes préférées implémentant la bibliothèque Qt pour le cadre de développement d'applications Qt (appartenant à Nokia). Actuellement, PyQT est disponible pour Unix / Linux, Windows, Mac OS X et Sharp Zaurus. Il combine le meilleur de Python et Qt et il appartient au programmeur de décider de créer un programme en codant ou en utilisant Qt Designer pour créer des dialogues visuels.

    Il est disponible à la fois sous licence commerciale et sous licence GPL. Bien que certaines fonctionnalités ne soient pas disponibles dans la version gratuite, si votre application est open source, vous pouvez l'utiliser sous la licence gratuite.

    La dernière itération de PyQt est la v5

  • Tkintertkinter

    Tkinter est généralement fourni avec Python, en utilisant Tk et est le framework GUI standard de Python. Il est populaire pour sa simplicité et son interface utilisateur graphique. Il est open-source et disponible sous la licence Python. L'un des avantages de choisir Tkinter est que, comme il vient par défaut, il existe une abondance de ressources, à la fois des codes et des livres de référence. De plus, la communauté étant ancienne et active, de nombreux utilisateurs peuvent vous aider en cas de questions.

  • PyGUIpygui

    PyGUI est un framework multiplateforme d'application graphique pour Unix, Macintosh et Windows. Par rapport à certains autres frameworks GUI, PyGUI est de loin le plus simple et le plus léger de tous, car l'API est purement synchronisée avec Python. PyGUI insère très peu de code entre la plateforme GUI et votre application Python, donc l'affichage de l'application affiche généralement l'interface graphique naturelle de la plateforme.


Bibliothèques informatiques mathématiques / scientifiques populaires en Python

  • NumPynumpy

    NumPy est le package fondamental pour le calcul scientifique avec Python. Il contient entre autres:

    • un puissant objet de tableau à N dimensions
    • fonctions sophistiquées (diffusion)
    • outils d'intégration du code C / C ++ et Fortran
    • algèbre linéaire utile, Fourier capacité de transformation et de nombre aléatoire

    Ces fonctionnalités permettent également d'utiliser NumPy dans des applications de base de données à usage général.

  • SciPyscipy

    SciPy est une bibliothèque open source pour le langage de programmation Python, composée d'algorithmes et de fonctions mathématiques souvent utilisés en science et en ingénierie. SciPy comprend des algorithmes et des outils pour des tâches telles que l'optimisation, le regroupement, les transformées de Fourier discrètes, l'algèbre linéaire, le traitement du signal et le traitement d'images multidimensionnelles. SciPy est étroitement lié à NumPy et dépend de nombreuses fonctions NumPy, y compris un tableau multidimensionnel utilisé comme structure de données de base dans SciPy.

  • matplotlibmatplotlib

    matplotlib est une bibliothèque de traçage pour le langage de programmation Python et son extension mathématique numérique NumPy. Il fournit une API orientée objet pour incorporer des tracés dans des applications, à l'aide de boîtes à outils GUI générales comme wxPython, Qt ou GTK. Il existe également une interface procédurale "pylab", basée sur une machine à états (comme OpenGL), conçue pour ressembler étroitement à celle de MATLAB.

  • Pandaspandas

    Pandas est une bibliothèque open-source sous licence BSD fournissant des structures de données et des outils d'analyse de données hautes performances et faciles à utiliser pour le langage de programmation Python. Pandas intègre de nombreuses autres fonctionnalités de bibliothèques, à savoir les opérations matricielles de NumPy et les capacités de traçage de Matplotlib. 10 Minutes to Pandas a>est un bon tutoriel pour une première exposition aux Pandas.

  • theano theano

    Theano est une bibliothèque largement utilisée basée sur Python-C, adaptée aux tâches mathématiques hautement informatiques en raison des optimisations qu'elle effectue sur le code Python d'interface, ce qui le rend hautement optimisé à l'aide de ses routines basées sur C. C'est également une bibliothèque très populaire pour les chercheurs en apprentissage automatique. Il dispose d'une différenciation automatique hautement optimisée, facilitant les implémentations de fonctions très complexes et calculant leurs gradients sans aucune erreur.

  • Blenderblender

    Blender est une suite d'animation 3D gratuite et open-source. Il prend en charge l'intégralité du pipeline 3D: modélisation, rigging, animation, simulation, rendu, composition et suivi de mouvement, même l'édition vidéo et la création de jeux.

  • scikit-learnscikit-learn

    scikit-learn est une bibliothèque d'apprentissage machine gratuite et open-source écrite en Python. Il prend en charge la formation et le test de nombreux types de modèles d'apprentissage automatique, ainsi que certaines techniques de base de traitement des données.

  • TensorFlowtensorflow

    TensorFlow est une bibliothèque de logiciels open source, développée par l'équipe de Google Brain. Il s'agit d'une bibliothèque mathématique symbolique, utilisée principalement pour les applications d'apprentissage automatique, telles que les réseaux de neurones.


Solutions d'extension C populaires:

Avec l'extension C, vous pouvez rendre votre code python plus rapide. Si votre question a quelque chose à voir avec l'une des solutions suivantes, assurez-vous d'inclure la balise appropriée.

  • ctypesctypes

    ctypes est un package Python qui encapsule les bibliothèques C .dll / .so en Python pur.

  • SWIGswig

    SWIG est un compilateur d'interface qui connecte des programmes écrits en C et C ++ avec des langages de script tels que Python.

  • Cythoncython

    Cython est un compilateur statique optimisant pour le langage de programmation Python et le langage de programmation Cython étendu (basé sur Pyrex). Cela rend l'écriture d'extensions C pour Python aussi simple que Python lui-même.


Communauté

Salles de discussions

  • Discutez sur le canal IRC dédié #python sur Freenode pour tout ce qui concerne Python. Consultez la liste Python IRCpour un canal alternatif spécifique, si cela vous intéresse.

  • Discutez de Python avec d'autres utilisateurs de Stack Overflow dans la salle de discussion Python.

Autres sites


Livres de programmation Python gratuits


Apprentissage interactif de Python

  • Codecademy- Apprenez les principes de base de Python et de la programmation dynamique
  • CodeSkulptor- IDE interactif en ligne pour la programmation Python 2
  • CodeSkulptor 3- IDE interactif en ligne pour la programmation Python 3
  • Coursera- Cours en ligne d'introduction à la programmation Python interactive
  • CheckiO- Un monde de jeu que vous pouvez explorer, en utilisant vos compétences en programmation Python
  • Dataquest- Cours Python interactifs pour la science des données
  • Repl.it- Interpréteur en ligne pour Python 2 et 3 qui simplifie l'enregistrement et le partage de code
  • PyCharm Edu- Une application de bureau qui offre un apprentissage Python interactif
  • Python interactif- Comprend une version modifiée et interactive de Comment penser comme un informaticien
  • Python Tutor- Visualisation et / ou codage en direct en Python
  • Cercles d'informatique- Apprenez les bases de Python 3 de manière semi-interactive.

Cours en ligne Python


Tutoriels vidéo Python


Python pour les scientifiques


IDE en ligne Python

  • ideone- Un IDE en ligne, avec d'autres langues prises en charge.
  • repl- Environnement de programmation instantané pour votre langue préférée
  • shell python- Console en ligne de PythonAnywhere
  • pythonfiddle- Python Cloud IDE
  • pyfiddle- Console en ligne Python 2.7 / 3.6

Qualité du code

  • Codacy- Révision de code automatisée pour expédier un meilleur code plus rapidement.
  • Codecov- Tableau de bord de couverture du code.
  • CodeFactor- Révision de code automatisée pour Git.
  • Paysage- Métriques de code Python continues hébergées.

Logo officiel


Podcasts actifs

Podcasts inactifs