Python
Partie 1
1. Programmer un ordinateur, c’est quoi ?
Programmer, c’est créer des programmes (suite d’instructions données à l’ordinateur) ! Un ordinateur sans programme ne sait rien faire. Il existe différents langages qui permettent de programmer un ordinateur, mais le seul directement utilisable par le processeur est le langage machine (suite de 1 et de 0). Aujourd’hui (presque) plus personne ne programme en langage machine (trop compliqué).
Les informaticiens utilisent des instructions (mots souvent en anglais) en lieu et place de la suite de 0 et de 1. Ces instructions, une fois écrites par le programmeur, sont « traduites » en langage machine. Un programme spécialisé assure cette traduction. Ce système de traduction s’appellera interpréteur ou bien compilateur, suivant la méthode utilisée pour effectuer la traduction.
Il existe deux grandes familles de langages de programmation :
- Les langages de bas niveau sont très complexes à utiliser, car très éloignés du langage naturel, on dit que ce sont des langages « proches de la machine », en contrepartie ils permettent de faire des programmes très rapides à l’exécution. L’assembleur est le langage de bas niveau. Certains « morceaux » de programmes sont écrits en assembleur encore aujourd’hui.
- Les langages de haut niveau sont eux plus « faciles » à utiliser, car plus proches du langage naturel (exemple : si a=3 alors b=c). Exemples de langages de haut niveau : C, C++ , Java, Python, PHP, Javascript… Au lycée, notre langage de prédilection sera Python.
Remarque : HTML n’est pas un langage de programmation.

2. Le langage de programmation Python
L’essentiel
Ne soyez pas effrayé par les quelques termes techniques, ce n’est pas essentiel de les comprendre en première lecture.
Python est un langage de programmation interprété, multi-paradigme et multiplateformes. Il favorise la programmation impérative structurée ,
fonctionnelle et orientée objet. Il est doté d’un typage dynamiquefort. Le langage Python est open source. Il est apprécié par certains pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation aisée aux concepts de base de la programmation. Python est le langage de programmation le plus utilisé dans le domaine du Machine Learning, du Big Data et de la Data Science. Python est aussi utilisé dans le Web, les sites suivants utilisent Python et son célèbre framework Django : Pinterest, Instagram, washingtonpost.com, newyorktimes.com, nationalgeographic.com ou encore le site de la NASA.
Un peu d’histoire
Créé en 1991, le langage de programmation Python apparu à l’époque comme une façon d’automatiser les éléments les plus ennuyeux de l’écriture de scripts. Il est crée par Guido van Rossum et tire son nom de l’émission Monty Python’s Flying Circus.
Depuis plusieurs années la popularité du langage Python ne cesse de croitre. Vous pouvez consulter
l’index TIOBE : pour vous faire une idée.
Il est parmi les plus utilisés dans le domaine du développement de logiciels, de gestion d’infrastructure et d’analyse de données.
Python est un langage de programmation open source créé par le programmeur Guido van Rossum en 1991.
Python en sciences
Le langage est aussi très utilisé dans le domaine de la science des données et du Machine Learning.
La grande majorité des bibliothèques utilisées pour la science des données ou le Machine Learning ont des interfaces Python. Ainsi, ce langage est devenu l’interface de commande de haut niveau la plus populaire pour les bibliothèques de Machine Learning et autres algorithmes numériques. Si le Python s’est érigé comme le meilleur langage de programmation pour le Big Data, c’est grâce à ses différents packages et bibliothèques de science des données.(Pandas, Bokeh, NumPy, Scipy, Scikit-learn, PyBrain, TensorFlow)
Environnement de travail
Il existe de nombreux IDE (environnement de développement intégré) : Pycharm, VS code, Ninja, Spyder, Wing IDE, etc.
À terme, vous pourrez faire votre choix personnel.
Nous utiliserons l’environnement EduPython qui est installé sur vos ordinateurs
1 –> interpréteur Python
2 –> éditeur Pyhton
3 –> Bouton pour exécuter le code de l’editeur.
Des exercices supplémentaires sont à traiter sur le site France IOI : après avoir créé un compte et renseigné votre profil, vous rejoindrez le groupe de votre classe :
SNT : « SNT 2ndn Sturm2020 « , n étant le numéro de votre classe de Seconde.
NSI 1 : « CodeSturm2020«
NSI 2 : « CodeSturm2020«
Travail en autonomie :
France IOI Niveau 1
1 – Affichage de texte, suite d’instructions : tout traiter sauf les challenges.
Prenez le temps de lire les cours et explications sur France IOI.
Rentrons à présent dans le vif du sujet.
3. Python comme calculatrice
Dans cette partie nous utiliserons que l’interpréteur Python.
Commencez par y taper quelques opérations à l’aide des opérateurs de base suivants :
Symbole | Opération |
---|---|
+ | Addition |
– | Soustraction |
* | Multiplication |
/ | Division |
// | Divion entière : quotient dans la division euclidienne |
** | Puissance |
% | Modulo : reste dans la division euclidienne |
Vous pouvez tester les lignes suivantes :
On peut être amené à devoir utiliser des fonctions mathématiques, pour cela il faut préalablement importer un module supplémentaire, le module math.
La documentation du module maths : https://docs.python.org/fr/3/library/math.html
4. Notion de variable
Définition du mot ordinateur :
« Machine automatique de traitement de l’information, obéissant à des programmes formés par des suites d’opérations arithmétiques et logiques.. »
Qui dit « traitement de l’information », dit donc données à manipuler. Un programme « passe » donc son temps à traiter des données. Pour pouvoir traiter ces données, l’ordinateur doit les ranger dans sa mémoire (RAM – Random Access Memory). La RAM se compose de cases dans lesquelles nous allons ranger ces données (une donnée dans une case). Chaque case a une adresse (ce qui permet au processeur de savoir où sont rangées les données).
Alors, qu’est-ce qu’une variable ?
Eh bien, c’est une petite information (une donnée) temporaire que l’on stocke dans une case de la RAM. On dit qu’elle est « variable », car c’est une valeur qui peut changer pendant le déroulement du programme.
Une variable est constituée de 2 choses :
- Elle a une valeur : c’est la donnée qu’elle « stocke » (par exemple le nombre entier 5)
- Elle a un nom : c’est ce qui permet de la reconnaître. Nous n’aurons pas à retenir l’adresse de mémoire, nous allons juste indiquer des noms de variables à la place.
Grâce à cette ligne, nous avons défini une variable qui porte le nom x et qui « contient » le nombre entier 42. On dit qu’on affecte à la variable x la valeur 42 (en langage naturel, on notera : x←42).
En fait, pour être plus précis, on dit que la variable x référence le nombre entier 42.
Et on peut changer la valeur d’une variable :
D’après vous, que fait ce programme ?
Détaillons ce qui se passe dans ce programme :
- dans la première ligne, nous créons une variable a qui référence l’entier 11
- dans la deuxième ligne :
- nous prenons la valeur actuelle de a (c’est-à-dire 11) et nous ajoutons 1 à 11, à droite de l’égalité nous avons donc maintenant la valeur 12
- nous attribuons la valeur qui vient d’être calculée à la variable a
Conclusion : a vaut 12 après l’exécution de ces lignes.
Il faut donc lire la ligne « a = a + 1 » de droite à gauche.
Ce raisonnement peut être généralisé pour éviter des erreurs parfois difficiles à corriger : dans une égalité, commencer toujours par évaluer l’expression se trouvant à droite du signe égal.
Pour des incrémentations de type a=a+n, on peut aussi utiliser le code plus efficace suivant :
Remarque : En python la syntaxe n++ n’existe pas.
En Python il est également possible de réaliser des affectations multiples :
Prédire le résultat puis vérifier avec l’interpréteur Python :
Règles pour les noms de variables :
Les noms de variables autorisés sont des séquences de lettres (majuscules ou minuscules) et de chiffres qui débutent toujours par une lettre. La casse est significative. Il existe quelques mots réservés ne pouvant faire office de nom de variable (def, if, while, True, False…).
Mais, les bonnes pratiques (PEP8) recommandent notamment :
- Lettres seules, en minuscule : pour les boucles et les indices ;
- Lettres minuscules + underscores : pour les modules, variables, fonctions et méthodes. ;
- Lettres majuscules + underscores : pour les (pseudo) constantes.
5. Les types de base des variables
Pour désigner la nature d’un objet manipuler par Python on parle de type. Les types de base sont :
int | Nombre entier |
float | Nombre à virgule flottante |
str | Chaîne de caractères |
bool | Valeur booléenne |
6. Les structures de contrôle
Les conditions
Les opérateurs de comparaison :
Symbole | Opération |
---|---|
< | Inférieur |
> | Supérieur |
<= | Inférieur ou égal |
>= | Supérieur ou égal |
!= | Différent |
== | Égal |
Les opérateurs logiques :
and | ET |
or | OU |
not | NON |
in | INCLUS |
Exemple :
Attention à l’indentation ! En effet, les espaces au début de certaines lignes permettent de délimiter des blocs d’instructions. Attention également aux deux points « : » à la fin d’un opérateur nécessitant un bloc d’instruction à sa suite.
Écrire un programme qui demande à l’utilisateur son âge et lui indique en conséquence s’il est majeur ou non. Pour lire une entrée saisir par l’utilisateur, on peut utiliser le code suivant :
La commande : int(input(« Quel est votre âge ? »)) permet de convertir ce que l’utilisateur aura entré au clavier en un entier. En effet, les entrées sont par défaut de type « chaîne de caractère (str).
Bonus : dans certains cas, s’il n’y a que deux résultats simples possibles on peut utiliser un opérateur ternaire.
Les boucles
La boucle for
La boucle for correspond à « Pour … allant de … à … faire … »
Quelques exemples :
Travail en autonomie
Exercices France IOI : Niveau 1
2 – Répétitions d’instructions : 1, 2, 3, 4, 5, 6, 8, 9.
3 – Calculs et découverte des variables : 1, 2, 5, 7, 8, 10, 11, 12
4 – Lecture de l’entrée : 1, 2, 3, 6, 7, 9, 10
5 – Tests et conditions : 1, 2, 3, 6, 7, 8
6 – Structures avancées : 1, 2,, 3, 4, 6, 8
La boucle while
La boucle while correspond à « Tant que … faire … »
Quelques exemples :
La boucle for est privilégiée quand on connait à l’avance le nombre d’itérations.
Travail en autonomie
Exercices France IOI : Niveau 1
8 – Répétitions conditionnées : 1, 2, 3, 4, 5
Exercices d’applications :
Réalisez ce programme à l’aide d’une boucle
Écrire un programme qui demande à l’utilisateur de deviner un nombre mystère compris entre 0 et
100. A chaque proposition le programme indiquera à l’utilisateur « C’est plus ! » ou « C’est moins ! ».
Pour générer le nombre mystère aléatoire nous utiliserons les code suivant :
La documentation du module random : https://docs.python.org/fr/3/library/random.html
Implémenter en Python, la suite de Syracuse. Prenez un nombre entier positif, et infligez-lui le traitement
suivant :
• S’il est pair, vous le divisez par 2 ;
• S’il est impair, vous le multipliez par 3 et vous ajoutez 1.
Pour tester si un nombre est pair on utilise le test suivant :
Vous voici prêts pour la partie 2 de ce cours.