Initiation à Python

Cours issu d'un travail remarquable d'Arnaud Bodin (Université de Lille) que l'on peut retrouver ici : exo7

Retour sur mathsguyon.fr
I
Installer Python
Vous pouvez soit installer Python sur votre ordinateur et la procédure change selon votre système d'exploitation.
Soit utiliser Python en ligne sur un site dédié.
A
Sous Windows :



B
Sous Ubuntu :
Python 3 est installé par défaut. Je conseille d'installer Visual Studio comme éditeur de texte.
C
Pour travailler en ligne sans installation avec Trinket :



Merci à Nicolas Halpern-Herla pour son énorme travail de qualité sur jaicompris.com
II
Démarrer avec Python :
A
Console, opérations simples, print(), utiliser un éditeur de texte



Vérifie dans la console que Python fonctionne correctement, en tapant les commandes suivantes dans une console Python:
>>>2+2
>>> "Bonjour le monde !"
Voici quelques instructions :
$\quad\bullet\quad$ Addition : $5+7$.
$\quad\bullet\quad$ Multiplication : $6*7$;
$\quad\bullet\quad$ Avec des parenthèses $3*(12+5)$;
$\quad\bullet\quad$ Avec des nombres à virgule : $3*1.5$.
$\quad\bullet\quad$ Puissance : 3**2 pour $3^{2}=9$ ;
$\quad\bullet\quad$ Puissance négative 10**-3 pour $10^{-3}=0.001$.
$\quad\bullet\quad$ Division réelle. 14/4 vaut 3.5 et 1/3 vaut $0.3333333333333333$.
$\quad\bullet\quad$ Division entière : 14//4 vaut $3$: c’est le quotient de la division euclidienne de $14$ par $4$, notez bien la double barre
$\quad\bullet\quad$ Reste de la division euclidienne et modulo : $14\%4$ vaut $2$: c’est le reste de la division euclidienne de $14$ par $4$, on dit aussi « $14$ modulo $4$ ».
Remarque 1 :
Dans tout ce cours, on écrira les « nombres à virgule » sous la forme $3.5$ (et pas $3,5$).
Le séparateur décimal est donc le point. En informatique les nombres à virgule sont appelés « nombres flottants ». (float en anglais)
Méthode :
Travailler uniquement dans la console ne permet pas d'exécuter des programmes compliqués, de modifier une valeur sans tour retaper.
En pratique, on travaille donc avec un éditeur de texte qui intègre Python et permet de donner le résultat dans la console.
Idle, Visual Studio, ... sont à votre disposition.
On distingue donc bien l'éditeur de texte de la console.
Si on tape $3+4$ dans la console, il affichera $7$.
Si on tape $3+4$ dans l'éditeur de texte, il ne se passera rien.
L'ordinateur effectuera bien le calcul mais personne ne lui a demandé d'afficher le résultat.
Il faudra donc taper dans l'éditeur de texte : print($3+4$)
B
Variable, affectation, réaffectation



Définition 1 :
Variable :
Une variable est un nom associé à un emplacement de la mémoire.
C’est comme une boîte quel’on identifie par une étiquette.
La commande «$a = 3$» signifie que j’ai une variable «a» associée à la valeur $3$.
Exemple 1 :

Commentaire :
Tout texte qui suit le caractère dièse « # » n’est pas exécuté par Python mais sert à expliquer le programme.
C’est une bonne habitude de commenter abondamment ton code.

Méthode :
Il est très important de donner un nom clair et précis aux variables.
Exemple 2 :
Avec les noms bien choisis, tu devrais savoir ce que calcule le code suivant :

Attention Si on écrit print(Aire) au lieu de print(aire) il y aura une erreur.
Attention ! Python distingue les majuscules des minuscules.
Donc mavariable, Mavariable et MAVARIABLE sont des variables différentes.

Exemple 3 :
Réaffectation :
Imaginons que tu veuilles tenir tes comptes journaliers.
Tu pars d’une somme $S0=1000$,le lendemain tu gagnes $100$,
donc maintenant $S1=S0+100$;
le jour d’après tu rajoutes $200$, donc $S2=S1+200$; puis tu perds $50$, donc au troisième jour $S3=S2−50$.
Cela fonctionne bien mais le nombre de variables explose et le script va devenir illisible.
Avec Python, tu peux n’utiliser qu’une seule variable S pour toutes ces opérations.


Méthode :
Il faut comprendre l’instruction «$S = S + 100$» comme ceci :
« je prends le contenu de la boîte $S$, je rajoute $100$, je remets tout dans la même boîte ».
C
Utiliser des fonctions mathématiques



Tu connais déjà la fonction print() qui affiche une chaîne de caractères (ou des nombres).
Elle s’utilise ainsi :
print("Coucou")ou bien à travers une valeur : chaine = "Bonjour"print(chaine)
Il existe plein d’autres fonctions.
Par exemple la fonction abs() calcule la valeur absolue :
abs($-3$)renvoie $3$,
abs($5$) renvoie $5$.
Méthode :
Toutes les fonctions ne sont pas directement accessibles dans Python. Elles sont souvent regroupées dans des modules.
Par exemple le module math contient les fonctions mathématiques.
On doit donc taper en première ligne du script : from math import *
Tu y trouves par exemple la fonction racine carrée sqrt()(square root).
Quand on souhaitera utiliser des nombres aléatoires, il faudra utiliser une fonction random qui génère un nom bre aléatoire.
Il nous faudra au préalable appeler le module random : from random import *
Exemple 1 :
Voici comment utiliser le module math :

La première ligne importe toutes les fonctions du module math,
la seconde calcule x=$\sqrt 2$ (en valeurapprochée) et ensuite on affiche $x^{2}$

Voir le TP n°1

D
Boucle pour (boucle "for")



Méthode :
La boucle « pour » est la façon la plus simple de répéter des instructions.

Propriété 1 :
Ce qui délimite le bloc d’instructions à répéter, c’est l’indentation, c’est-à-dire les espaces placées en début de ligne qui décalent les lignes vers la droite.
Toutes les lignes d’un bloc doivent avoir exactement la même indentation.
Attention N’oublie pas les deux points en fin de la ligne de la déclaration du for!
Exemple 1 :
Voici une boucle qui affiche les premiers carrés :

La seconde ligne est décalée et constitue le bloc à répéter.
La variable $i$ prend la valeur $0$ et l’instruction affiche $0^{2}$;
puis $i$ prend la valeur $1$, et l’instruction affiche $1^{2}$; ; puis $2^{2}$; $3^{2}$; ...
Au final ce programme affiche :$0, 1, 4, 9, 16, 25, 36, 49, 64, 81$.
Attention : la dernière valeur prise pariest bien $9$ (et pas $10$).

Exemple 2 :
Parcourir une liste quelconque.
La boucle « pour » permet de parcourir n’importe quelle liste.
Voici une boucle qui affiche le cube des premiers nombres premiers.


Exemple 3 :
Sommes des entiers.
Voici un programme qui calcule $0+1 +2+3+···+18 $

Comprends bien ce code : Une variable somme est initialisée à 0. C'est indispensable car si cette variable est utilisée ailleurs, elle peut prendre des valeurs avant de commencer la boucle.
On va tour à tour lui ajouter 0, puis 1, puis 2. . .
On peut mieux comprendre cette boucle en complétant un tableau :


Méthode :
$\quad\bullet\quad$ Avec range(n), on parcourt les entiers de $0$ à $n−1$.
$\quad$ Par exemple range($10$) correspond à la liste [$0, 1, 2, 3, 4, 5, 6, 7, 8, 9$].
$\quad$Attention la liste s’arrête bien à $n −1$ et pas à $n$.
$\quad$Ce qu’il faut retenir c’est que la liste contient bien $n$ éléments (car elle commence à $0$).
$\quad\bullet\quad$ Si tu veux afficher la liste des éléments parcourus, il faut utiliser la commande :list(range(10))
$\quad\bullet\quad$ Avec range(a,b) : on parcourt les éléments de $a$ à $b−1$.
$\quad$ Par exemple, range($10,20$) correspond à la liste[$10, 11, 12, 13, 14, 15, 16, 17, 18, 19$].
$\quad\bullet\quad$ Avec range(a,b,pas) on parcourt les éléments $a$, $a$+pas, $a$+2pas. . .
$\quad$ Par exemple : range($10,20,2$)correspond à la liste [$10, 12, 14, 16, 18$].
Exemple 4 :
Imbrication de boucles :
il est possible d’imbriquer des boucles, c’est-à-dire que dans le bloc d’une boucle, on utilise une nouvelle boucle.

Dans ce petit programme $x$ vaut d’abord 10, $y$ prend la valeur $3$ puis la valeur $7$ .
Le programme affiche donc $13$, puis $17$.
Ensuite $x=20$, et $y$ vaut de nouveau $3$ puis $7$.
Le programme affiche donc ensuite $23$, puis $27$.
Au final le programme affiche : $13, 17, 23, 27, 33, 37, 43, 47, 53, 57$

Voir le TP n°2
Retour sur mathsguyon.fr