Différences entre versions de « Python-Les-Pratiques »
(12 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 12 : | Ligne 12 : | ||
[[{{FULLPAGENAME}}]] (Français) | [[{{FULLPAGENAME}}]] (Français) | ||
− | / [[Python | + | / [[Python-Practices]] (Anglais) |
/ | / | ||
Ligne 58 : | Ligne 58 : | ||
- '''Support pour l'intégration d'autres langages</big>''' | - '''Support pour l'intégration d'autres langages</big>''' | ||
+ | |||
+ | Python est développé depuis 1989 par Guido van Rossum et de nombreux contributeurs bénévoles. | ||
+ | Python favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. | ||
+ | Le langage Python est placé 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 à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. | ||
+ | |||
+ | <big>'''Caractéristiques:'''</big> <br> | ||
+ | |||
+ | Les principales caractéristiques du langage Python et de ses deux implantations actuelles: | ||
+ | |||
+ | * Python est un langage de haut niveau, dont la traduction en codes binaires est complexe et prend donc toujours un certain temps. Cela pourrait paraître un inconvénient. En fait, les avantages que présentent les langages de haut niveau sont énormes : il est beaucoup plus facile d'écrire un programme dans un langage de haut niveau; l'écriture du programme prend donc beaucoup moins de temps ; la probabilité d'y faire des fautes est nettement plus faible ; la maintenance (c'est-à-dire l'apport de modifications ultérieures) et la recherche des erreurs (les « bugs ») sont grandement facilitées. De plus, un programme écrit dans un langage de haut niveau sera souvent portable, c'est-à-dire que l'on pourra le faire fonctionner sans guère de modifications sur des machines ou des systèmes d'exploitation différents. Un programme écrit dans un langage de bas niveau ne peut jamais fonctionner que sur un seul type de machine : pour qu'une autre l'accepte, il faut le réécrire entièrement. | ||
+ | |||
+ | * Python est portable, c'est à dire qu'il peut fonctionner sous différents systèmes d'exploitation, non seulement sur les différentes variantes d'UNiX, mais aussi sur les OS propriétaires: MacOS, BeOS, NeXTStep, M$-DOS et les différentes variantes de Window. Un nouveau compilateur, baptisé JPython, est écrit en Java et génère du bytecode Java. | ||
+ | * Python est gratuit, mais on peut l'utiliser sans restriction dans des projets commerciaux. | ||
+ | * Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs dizaines de milliers de lignes. | ||
+ | * La syntaxe de Python est très simple et, combinée à des types de données évolués (listes, dictionnaires,...), conduit à des programmes à la fois très compacts et très lisibles. A fonctionnalités égales, un programme Python (abondament commenté et présenté selon les canons standards) est souvent de 3 à 5 fois plus court qu'un programme C ou C++ (ou même Java) équivalent, ce qui représente en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue. | ||
+ | * Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références (proche, mais différent, d'un garbage collector). | ||
+ | * Il n'y a pas de pointeurs explicites en Python. | ||
+ | * Python est (optionnellement) multi-threadé. | ||
+ | * Python est orienté-objet. Il supporte l'héritage multiple et la surcharge des opérateurs. Dans son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelle. | ||
+ | * Python intègre, comme Java ou les versions récentes de C++, un système d'exceptions, qui permettent de simplifier considérablement la gestion des erreurs. | ||
+ | * Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à engendrer des constructions très riches), reflectif (il supporte la métaprogrammation, par exemple la capacité pour un objet de se rajouter ou de s'enlever des attributs ou des méthodes, ou même de changer de classe en cours d'exécution) et introspectif (un grand nombre d'outils de développement, comme le debugger ou le profiler, sont implantés en Python lui-même). | ||
+ | * Comme Scheme ou SmallTalk, Python est dynamiquement typé. Tout objet manipulable par le programmeur possède un type bien définit à l'exécution, qui n'a pas besoin d'être déclaré à l'avance. | ||
+ | * Python possède actuellement deux implémentations. | ||
+ | - L'une, interprétée, dans laquelle les programmes Python sont compilés en instructions portables, puis exécutés par une machine virtuelle (comme pour Java, avec une différence importante: Java étant statiquement typé, il est beaucoup plus facile d'accélérer l'exécution d'un programme Java que d'un programme Python).<br> | ||
+ | |||
+ | - L'autre, génère directement du bytecode Java. | ||
+ | * Python est extensible: comme Tcl ou Guile, on peut facilement l'interfacer avec des librairies C existantes. On peut aussi s'en servir comme d'un langage d'extension pour des systèmes logiciels complexes. | ||
+ | * La librairie standard de Python, et les paquetages contribués, donnent accès à une grande variété de services: chaînes de caractères et expressions régulières, services UNIX standard (fichiers, pipes, signaux, sockets, threads...), protocoles Internet (Web, News, FTP, CGI, HTML...), persistence et bases de données, interfaces graphiques. | ||
+ | * Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à l'interpréteur principal, écrit en C et maintenu par le créateur du langage, un deuxième interpréteur, écrit en Java, est en cours de développement | ||
<!-- ******** Fin Définition Générale ***************************** --> | <!-- ******** Fin Définition Générale ***************************** --> | ||
− | |||
== {{Widget:Definition-graphique-Fiche}} == | == {{Widget:Definition-graphique-Fiche}} == | ||
− | + | {{cc}} [https://cmapcloud.ihmc.us/cmaps/myCmaps.html Carte conceptuelle - Python] | |
<!-- ************************* Début ****************************** --> | <!-- ************************* Début ****************************** --> | ||
{{Fiche Didactique Media <!-------------------------------------------> | {{Fiche Didactique Media <!-------------------------------------------> | ||
Ligne 75 : | Ligne 103 : | ||
<gallery> | <gallery> | ||
Python.jpg|Comment faire fonctionner mon code source | Python.jpg|Comment faire fonctionner mon code source | ||
− | + | Python-Les-Pratiques.jpg|Cmap-Python | |
</gallery> | </gallery> | ||
<!-- ************** Fin modification images***************************--> | <!-- ************** Fin modification images***************************--> | ||
Ligne 89 : | Ligne 117 : | ||
<youtube width="220" height="220">QMb0fjH5Rjg</youtube> | <youtube width="220" height="220">QMb0fjH5Rjg</youtube> | ||
<youtube width="220" height="220">LamjAFnybo0</youtube> | <youtube width="220" height="220">LamjAFnybo0</youtube> | ||
− | + | <youtube width="220" height="220">Vi9Y9AL13Rc</youtube> | |
}}<!-- ************************* Fin modifications pour les Médias *******************************************************--> | }}<!-- ************************* Fin modifications pour les Médias *******************************************************--> | ||
Ligne 101 : | Ligne 129 : | ||
<!----------------- Commencez les modifications des Mots Clés ---------------------> | <!----------------- Commencez les modifications des Mots Clés ---------------------> | ||
− | |Mot-Clé-1= | + | |Mot-Clé-1= Langage de programmation |
− | |Mot-Clé-2= | + | |Mot-Clé-2= Programmation interprété |
− | |Mot-Clé-3= | + | |Mot-Clé-3= Multi-paradigme |
− | |Mot-Clé-4= | + | |Mot-Clé-4= Multi-plateformes |
− | |Mot-Clé-5= | + | |Mot-Clé-5= Programmation impérative |
− | |Mot-Clé-6= | + | |Mot-Clé-6= Programmation impérative structurée |
− | |Mot-Clé-7= | + | |Mot-Clé-7= Programmation déclarative |
− | |Mot-Clé-8= | + | |Mot-Clé-8= Programmation fonctionnelle |
− | |Mot-Clé-9= | + | |Mot-Clé-9= Langages à classes |
− | |||
}}<!-- ********************* FIN Fiche Didactique Mots-clés *******************--> | }}<!-- ********************* FIN Fiche Didactique Mots-clés *******************--> | ||
− | |||
= {{Widget:Exemples-applications-utilisations-Fiche}} = | = {{Widget:Exemples-applications-utilisations-Fiche}} = | ||
Ligne 153 : | Ligne 179 : | ||
<!-- ****************** Commercez les modifications *************************--> | <!-- ****************** Commercez les modifications *************************--> | ||
− | * Confusion entre [[ | + | * Confusion entre [[Langage - Programme]] |
− | * Confusion entre [[ | + | * Confusion entre [[Langage machine - Langage de programmation]] |
Ligne 168 : | Ligne 194 : | ||
<!-- ************ Commercez les modifications *********************--> | <!-- ************ Commercez les modifications *********************--> | ||
− | * [[ | + | * [[Qu’est-ce que Python? Quels sont les avantages d’utiliser Python?]] |
− | * [[.. | + | * [[Quel type de langage est Python? Programmation ou script?]] |
− | * [[ | + | * [[Quelles sont les différences entre Python 2.x et Python 3.x?]] |
+ | * [[À quoi sert la variable d'environnement PYTHONPATH?]] | ||
+ | * [[Est ce qu'on peut gérer une BD avec Python ?]] | ||
+ | * [[Pourquoi Python est un langage interprété?]] | ||
}}<!-- ******** Fin Fiche Didactique Questions ******************* --> | }}<!-- ******** Fin Fiche Didactique Questions ******************* --> | ||
Ligne 249 : | Ligne 278 : | ||
<!-- ****************** Commercez les modifications ************--> | <!-- ****************** Commercez les modifications ************--> | ||
− | :* .. | + | :* https://www.python.org |
− | :* . | + | :* http://pythonprogramminglanguage.com/ |
− | :* ... | + | :* [http://www.greenteapress.com/thinkpython/html/index.html Think Python: How to Think Like a Computer Scientist] |
}}<!-- ************ Fin Liens Education ********************** --> | }}<!-- ************ Fin Liens Education ********************** --> |
Version actuelle datée du 6 juin 2022 à 13:53
Votre Publicité sur le Réseau |
Traduction
Traductions
Définition
Domaine, Discipline, Thématique
Justification
Définition écrite
- Développé en 1989 par Guido van Rossum
- Open-source
- Portable
- Orienté objet
- Dynamique
- Extensible
- Support pour l'intégration d'autres langages
Python est développé depuis 1989 par Guido van Rossum et de nombreux contributeurs bénévoles. Python favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé 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 à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.
Caractéristiques:
Les principales caractéristiques du langage Python et de ses deux implantations actuelles:
- Python est un langage de haut niveau, dont la traduction en codes binaires est complexe et prend donc toujours un certain temps. Cela pourrait paraître un inconvénient. En fait, les avantages que présentent les langages de haut niveau sont énormes : il est beaucoup plus facile d'écrire un programme dans un langage de haut niveau; l'écriture du programme prend donc beaucoup moins de temps ; la probabilité d'y faire des fautes est nettement plus faible ; la maintenance (c'est-à-dire l'apport de modifications ultérieures) et la recherche des erreurs (les « bugs ») sont grandement facilitées. De plus, un programme écrit dans un langage de haut niveau sera souvent portable, c'est-à-dire que l'on pourra le faire fonctionner sans guère de modifications sur des machines ou des systèmes d'exploitation différents. Un programme écrit dans un langage de bas niveau ne peut jamais fonctionner que sur un seul type de machine : pour qu'une autre l'accepte, il faut le réécrire entièrement.
- Python est portable, c'est à dire qu'il peut fonctionner sous différents systèmes d'exploitation, non seulement sur les différentes variantes d'UNiX, mais aussi sur les OS propriétaires: MacOS, BeOS, NeXTStep, M$-DOS et les différentes variantes de Window. Un nouveau compilateur, baptisé JPython, est écrit en Java et génère du bytecode Java.
- Python est gratuit, mais on peut l'utiliser sans restriction dans des projets commerciaux.
- Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs dizaines de milliers de lignes.
- La syntaxe de Python est très simple et, combinée à des types de données évolués (listes, dictionnaires,...), conduit à des programmes à la fois très compacts et très lisibles. A fonctionnalités égales, un programme Python (abondament commenté et présenté selon les canons standards) est souvent de 3 à 5 fois plus court qu'un programme C ou C++ (ou même Java) équivalent, ce qui représente en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue.
- Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références (proche, mais différent, d'un garbage collector).
- Il n'y a pas de pointeurs explicites en Python.
- Python est (optionnellement) multi-threadé.
- Python est orienté-objet. Il supporte l'héritage multiple et la surcharge des opérateurs. Dans son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelle.
- Python intègre, comme Java ou les versions récentes de C++, un système d'exceptions, qui permettent de simplifier considérablement la gestion des erreurs.
- Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à engendrer des constructions très riches), reflectif (il supporte la métaprogrammation, par exemple la capacité pour un objet de se rajouter ou de s'enlever des attributs ou des méthodes, ou même de changer de classe en cours d'exécution) et introspectif (un grand nombre d'outils de développement, comme le debugger ou le profiler, sont implantés en Python lui-même).
- Comme Scheme ou SmallTalk, Python est dynamiquement typé. Tout objet manipulable par le programmeur possède un type bien définit à l'exécution, qui n'a pas besoin d'être déclaré à l'avance.
- Python possède actuellement deux implémentations.
- L'une, interprétée, dans laquelle les programmes Python sont compilés en instructions portables, puis exécutés par une machine virtuelle (comme pour Java, avec une différence importante: Java étant statiquement typé, il est beaucoup plus facile d'accélérer l'exécution d'un programme Java que d'un programme Python).
- L'autre, génère directement du bytecode Java.
- Python est extensible: comme Tcl ou Guile, on peut facilement l'interfacer avec des librairies C existantes. On peut aussi s'en servir comme d'un langage d'extension pour des systèmes logiciels complexes.
- La librairie standard de Python, et les paquetages contribués, donnent accès à une grande variété de services: chaînes de caractères et expressions régulières, services UNIX standard (fichiers, pipes, signaux, sockets, threads...), protocoles Internet (Web, News, FTP, CGI, HTML...), persistence et bases de données, interfaces graphiques.
- Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à l'interpréteur principal, écrit en C et maintenu par le créateur du langage, un deuxième interpréteur, écrit en Java, est en cours de développement
Définition graphique
Concepts ou notions associés
Python-Les-Pratiques - Glossaire / (+)
Exemples, applications, utilisations
Même dans le pire des trois cas, il est très vraisemblable que le temps de développement aura été sensiblement plus court que si le programme avait été développé directement en C ou en C++. |
Erreurs ou confusions éventuelles
Questions possibles
- Qu’est-ce que Python? Quels sont les avantages d’utiliser Python?
- Quel type de langage est Python? Programmation ou script?
- Quelles sont les différences entre Python 2.x et Python 3.x?
- À quoi sert la variable d'environnement PYTHONPATH?
- Est ce qu'on peut gérer une BD avec Python ?
- Pourquoi Python est un langage interprété?
Liaisons enseignements et programmes
Idées ou Réflexions liées à son enseignement
- Jeu sérieux aidant à enseigner les concepts algorithmiques (Boucles, conditions, Fonctions, Turtle)
- BlocklyGames https://blockly.games
Types de jeux offerts par BlocklyGames
}}
Aides et astuces
Education: Autres liens, sites ou portails
Bibliographie
Pour citer cette page: ([2])
ABROUGUI, M & al, 2022. Python-Les-Pratiques. In Didaquest [en ligne]. <http:www.didaquest.org/wiki/Python-Les-Pratiques>, consulté le 24, novembre, 2024
- ..................
- ..................
- ..................
- ..................
- Sponsors Education
- Python (Concepts)
- Didactique (Concepts)
- Programmation (Concepts)
- Langage de programmation
- Programmation interprété
- Multi-paradigme
- Multi-plateformes
- Programmation impérative
- Programmation impérative structurée
- Programmation déclarative
- Programmation fonctionnelle
- Langages à classes
- Concepts
- Python-Les-Pratiques
- Python-Les-Pratiques (Concepts)
- Fiche conceptuelle didactique