Les bases#

Cette section présente les bases de la synthax de Python.

Les principes#

Python, apparu dans les années 1990, est un langage de programmation généraliste et interprété: le programme écrit par l’utilisateur est lu et exécuté ligne par ligne sans compilation 1. La version 3 de Python a été mise en place en 2008 avec des releases régulières, l’une des dernières releases étant la version 3.9.0b4 en juillet 2020. Python est utilisé très largement par la communauté scientifique, des grandes entreprises comme Google et Amazon et dans de nombreux sites web ou logiciels comme Reddit et LibreOffice.

Python se caractérise par une synthaxe épurée et lisible avec une indentation, des mots-clés spécifiques (if, for, while…) et la possibilité de faire de la programmation objet avec plus de flexibilités que dans d’autres langages orientés objets (comme C++).

# Definition de l'annuaire
unAnnuaire = {'Laurent': 6389565, 'Paul': 6356785}
# Affichage des noms et numeros de telephone
for unNom, x in unAnnuaire.items(): # boucle for lisant le contenu de unAnnuaire
   print("le nom {} a pour numero de telephone {}".format(unNom, x))
le nom Laurent a pour numero de telephone 6389565
le nom Paul a pour numero de telephone 6356785

Dans ce code, toutes les lignes commençant par un “#” ne sont pas évaluées; cet fonctionalité est très utilisé pour commenter le texte, c’est-à-dire apporter des informations supplémentaires pour pouvoir comprendre le code Ces commentaires peuvent aussi apparaitre à la fin de ligne de code (toujours après un “#”).

Warning

Important Nous n’insisterons jamais assez sur l’utilité de commenter son code, que ce soit lorsque ce code est personnel ou bien partagé avec d’autres personnes. En effet, il est très fréquent d’oublier la logique qui a été implémentée dans un code si celui-ci n’est pas commenté ou pire mal commenté!

Variables et assignation de valeurs#

En Python, on utilise des variables auxquelles on va pouvoir associer des valeurs. On peut se représenter les variables comme des addresses dans la mémoire de l’ordinateur dans lequelles on peut sauver une valeur: il faut donc d’abord créer la variable dans la mémoire puis lui assigner une valeur grâce à l’opérateur d’attribution =.

a = 2

Ici on a définit une variable a et on lui a assigné la valeur entière 2 grâce à =. Notons ici qu’il est possible d’assigner d’autres choses aux variables, comme des nombres décimaux 2, des morceaux de textes ou bien des listes (voir Section Listes).

On peut alors accéder à cette variable et obtenir la valeur qu’elle contient pour par exemple l’utiliser pour créer d’autres variables:

a = 2
b = 2*a

Ici, la première ligne de code créé la variable a et lui assigne la valeur 2; la deuxième ligne créé une autre variable b et lui assigne la valeur 2*a (donc 4): pour cela, Python va récupérer la valeur contenue par a et la multiplier par 2.

Contrairement à d’autres langages de programmation, il n’est pas nécessaire de définir le type de la variable: Python reconnait que 2 est un entier et donc va traiter a comme tel. Cela permet beaucoup de flexibilités lors de l’assignement d’une valeur à des variables.

Dans les deux exemples ci-dessus, nous avons défini des noms de variables très simples (a et b); il est possible de définir des nombres de variables plus complexes et portant plus de sens:

treize = 13
nb_jour_par_an = 365
deuxfois2 = 4

Les noms de variables peuvent contenir certains caractères spéciaux 3 (comme _) ou bien des chiffres (tant que le nom de la variable ne commence pas par un chiffre) 4.

Impression à l’écran#

Il est possible d’afficher la valeur d’une variable grâce à la fonction print().

a = 2
b = 2*a
print(b)
4

Cette fonction print(b) va afficher à l’écran la valeur de la variable donnée comme argument (ici b et donc 4). Cette fonction peut prendre autant d’arguments que désiré et afficher toutes les valeurs.

a = 2
b = 2*a
print("a vaut", a, "et b vaut",b)   
a vaut 2 et b vaut 4

Ici, on donne à la fonction print() 4 arguments. Les second et quatrième arguments sont des entiers, tandis que les premier et troisième arguments "a vaut" et "et b vaut" sont des chaînes de caractères ou string qui sont données entre guillemets afin que Python ne les confonde pas avec des variables. La fonction print() prend donc en entrée 4 arguments et affiche tous les valeurs des arguments un par un.

La fonction print() peut afficher différents types de variables, et notamment des listes (voir Section Listes.

Avec les nombres décimaux, il est parfois utile de formatter le nombre de décimales à afficher. Pour cela, il existe la méthode format() qui s’applique sur un string:

a = 2. 
b = 3./2.
c = 2./3.
print("arrondi(a)={:.1f}, arrondi(b)= {:.2f}, arrondi(c)={:.4f}".format(a,b,c))
arrondi(a)=2.0, arrondi(b)= 1.50, arrondi(c)=0.6667

La méthode format() s’applique sur un modèle de string contenant des paires d’accolades; les arguments donnés à la méthode format() sont utilisés pour “remplacer” les paires d’accolades une par une. Ces paires d’accolades peuvent être vide (comme dans le tout premier exemple; à ce moment-là il n’y a pas de formattage particulier appliqué) ou bien définir le format de la valeur à imprimer. Une paire d’accolades {:.1f} va afficher seulement un chiffre après la virgule alors que {:.4f} va en afficher 4.


1

Contrairement aux programmes en langage C ou C++ qui eux ont besoin d’être compilés en langage machine pour ensuite être exécutés.

2

La différence entre des nombres entiers et décimaux est la présence du point: si une valeur numérique sans point est assignée à une variable (par exemple, 10), Python considèrera selon comme un nombre entier, alors que les nombres \(10.\) ou \(10.0\) seront considérés comme des nombres décimaux. Il est donc important de bien placer un point lorsque la valeur désiré est un nombre décimal.

3

Le signe - ne peut être contenu dans le nom d’une variable, car il se confond avec le signe de la soustraction.

4

Notons ici que, Python n’étant pas écrit majoritairement par des francophones, les symboles comme “é” ou “à” ne sont pas interprétés dans le code comme dans des commentaires…