Table des matières
Python - Présentation
Bulletin officiel
❞ L'enseignement de spécialité de numérique et sciences informatiques du cycle terminal de la voie générale vise l'appropriation des fondements de l'informatique pour préparer les élèves à une poursuite d'études dans l'enseignement supérieur, en les formant à la pratique d'une démarche scientifique et en développant leur appétence pour des activités de recherche.
L'objectif de cet enseignement […] est l'appropriation des concepts et des méthodes qui fondent l'informatique, dans ses dimensions scientifiques et techniques. Cet enseignement s'appuie sur l'universalité de quatre concepts fondamentaux et la variété de leurs interactions :
- Les données, qui représentent sous une forme numérique unifiée des informations très diverses : textes, images, sons, mesures physiques, sommes d’argent, etc.
- Les algorithmes, qui spécifient de façon abstraite et précise des traitements à effectuer sur les données à partir d’opérations élémentaires.
- Les langages, qui permettent de traduire les algorithmes abstraits en programmes textuels ou graphiques de façon à ce qu'ils soient exécutables par les machines.
- Les machines, et leurs systèmes d'exploitation, qui permettent d’exécuter des programmes en enchaînant un grand nombre d'instructions simples, assurant la persistance des données par leur stockage, et de gérer les communications. On y inclut les objets connectés et les réseaux.❞
Langage Python
Les objectifs rappelés ci-dessus sont indépendants d'un langage. On pourrait, en théorie, faire tout un cours théorique et abstrait sans toucher un ordinateur. Mais il sera plus efficace de manipuler. Alors il faudra réaliser des programmes dans un langage. Le langage retenu est Python.
Python est un langage :
- Impératif : suite d'instruction modifiant l'état du programme.
- Interprété : le programme est un fichier texte qui est lu tel quel par un logiciel interpréteur au moment de l'exécution.
- Objet : définit des entités, des relations entre ces entités, des méthodes s'appliquant à ces entités…
Par conséquent, pour écrire un programme Python, il suffit d'un éditeur de texte. Pour exécuter le programme, il faut un interpréteur Python. Pour simplifier le travail, on utilise un environnement ou tout est inclus. On peut utiliser Pyzo ou encore EduPython ou même Sublime Text.
Pourquoi Python
- L'usage prime sur le reste. En programmation, un langage peut avoir toutes les qualités et n'être pourtant pas utilisé. C'est souvent l'usage des communautés de programmeurs qui impose le langage à utiliser. Dans certaines communautés, c'est C ou Java. Python est de plus en plus utilisé.
Dans le monde universitaire, la communauté Python est très développée. Ce qui est un élément d'explication de ce choix pour le programme de NSI.
Comme la communauté d'utilisateurs de Python est grande, on dispose de beaucoup d'outils, d'environnement de développement…
- Caractéristiques en faveur (ou en défaveur) de Python :
- Langage interprété : le programme s'exécute ligne après ligne. On peut même lui donner ces lignes au fur et à mesure dans une console.
Cela peut faciliter une compréhension intuitive, mais aussi brouiller les choses : Il est important de comprendre qu'il y a un moment où le programmeur fabrique le programme et un moment où l'utilisateur final l'utilise…
- La syntaxe est allégée ce qui permet un développement rapide : pas de `begin`, `end` ou d'accolades.
- Python impose une présentation du code rigoureuse qui contraint à une écriture plus lisible. C'est ce qu'on appelle l'indentation.
Comme souvent avec les multiples langages qui se concurrencent , c'est aussi beaucoup une affaire de goût…
- Python est faiblement typé. C'est à dire que l'on peut créer des quantités sans forcément bien préciser leur nature.
Cela simplifie grandement le travail du débutant qui a moins de questions à se poser et permet de développer des scripts rapidement.
- *Javascript**, très populaire pour la création de pages web, est aussi faiblement typés, ce qui simplifie la vie de tous ceux qui veulent programmer rapidement sans être experts.
Les plus rigoureux, au contraire, peuvent ne pas apprécier ces facilités d'autant qui se traduisent par une perte d'efficacité de l'exécution.
- Python s'articule très bien avec les autres langages. Par exemple, certaines bibliothèques de fonctions Python sont développées en C++ et ont de très bonnes performances.
L'idée est que l'on développe son script rapidement en Python mais que pour les traitements de données gourmands en temps de calcul, on délègue à des fonctionnalités optimisées par des experts, avec des langages connus pour permettre de telles optimisations.
