Section 4.1

Calculer avec Python

Au cœur des langages de programmation se trouve la notion de calcul. Exécuter un programme, c'est effectuer des calculs. C'est via l'exécution de ces calculs que l'ordinateur réalise des tâches.

Considérons ensemble un premier exemple de programme. Examinez le programme suivant puis exécutez-le :

print(1 + 2)

Ce programme consiste en:

  • Une addition entre le nombre 1 et le nombre 2,
  • Un appel à la fonction print pour afficher le résultat à l'écran.
Lorsqu'il est exécuté, le programme commence par effectuer l'addition, ce qui donne le résultat de 3. Ce résultat de 3 est ensuite passé à la fonction print qui l'affiche (ici dans le zone de sortie en dessous du code).

En plus des opérations usuelles comme l'addition ou la multiplication, que l'on représente par des symboles comme + ou *, Python permet d'appeler des fonctions dans les calculs. Pour appeler une fonction, on écrit le nom de la fonction suivi d'une séries d'arguments entre parenthèses et séparés par des virgules. Dans l'exemple plus haut, print est une fonction que l'on appelle avec un seul argument. Cet argument est le (résultat du) calcul 1 + 2. Dans l'exemple ci-dessous, il y a deux fonction différentes, max et print. Notez que max est appelée avec deux arguments, qui sont séparés par une virgule.

print(max(6, 2))

Il existe de nombreuses fonctions dans Python, et vous en découvrirez de nouvelles au fur et à mesure de votre apprentissage. Vous apprendrez également à écrire vos propres fonctions.

Avant de se plonger dans les détails des différentes fonctions et opérations à votre disposition quand vous programmez en Python, il est important de comprendre comment Python effectue les calculs. Pour cela il nous faut comprendre la notion de priorité des opérateurs, d'effets de bord et d'ordre de calcul. Nous examinerons aussi brièvement la notion d'instruction et de commentaire.

Priorité des opérateurs

Pour les calculs avec plusieurs opérations, Python applique les règles habituelles que vous avez apprises en mathématiques pour déterminer comment lire le calcul. Tout comme en mathématiques, il est possible d'utiliser des parenthèses pour préciser la structure d'un calcul.

Par exemple, considérez le programme suivant :

print(2 * 3 + 1 * 4)

Le programme affiche le résultat du calcul 2 * 3 + 1 * 4 soit 10. En effet, en l'absence de parenthèse, Python considère que les opérations de multiplication ont une priorité plus élevée que celles d'addition. C'est pourquoi le calcul ici est lu comme (2 * 3) + (1 * 4).

Notez que l'on peut utiliser des parenthèses pour préciser comment grouper les opérations. Par exemple, le programme suivant utilise des parenthèses pour clarifier la structure du calcul. Il affiche le même résultat que le précédent :

print((2 * 3) + (1 * 4))

En regroupant différemment les opérations, on peut obtenir un résultat différent. Par exemple, dans le programme suivant les parenthèses sont utilisées pour donner une autre structure au calcul :

print(2 * (3 + 1) * 4)

On utilisera des parenthèses pour préciser le groupement des opérations quand la structure d'un calcul sera complexe, même si ces parenthèses ne sont pas toujours strictement nécessaires.

Effets de bord

Certaines opérations ont des effets de bord : elles font plus que simplement calculer une valeur. Par exemple, la fonction print affiche son argument à l'écran comme effet de bord.

Notez ici que la fonction print ne donne elle-même aucun résultat intéressant. En Python, on utilise la valeur None pour représenter cette absence de valeur intéressante. La valeur obtenue lorsque l'on appelle la fonction print est donc None, ce que l'on peut vérifier en exécutant le programme suivant :

print(print(1 + 2))

La première ligne affichée en sortie correspond au résultat du calcul 1 + 2, alors que la deuxième ligne correspond au résultat du calcul print(1 + 2).

La fonction print n'est donc en général pas utilisée pour calculer quoi que ce soit d'intéressant mais uniquement pour son effet de bord, à savoir afficher son argument à l'écran.

Au contraire, certaines opérations n'ont pas d'effets de bord, comme l'addition. Si on exécute le programme suivant, on remarque qu'il n'affiche rien :

1 + 2

Lorsque l'on exécute ce programme, Python effectue bien l'addition, mais ne fait rien de ce résultat. Il est important de se souvenir que, lorsque l'on désire afficher le résultat d'un calcul, il faut faire appel à la fonction print.

Ordre de calcul

Python effectue les calculs en suivant un ordre bien précis. Pour calculer le résultat d'une opération comme une addition ou un appel de fonction, Python commence par calculer les valeurs des arguments, de gauche à droite. Une fois que tous les arguments ont été calculés, Python effectue l'opération. Lorsque les arguments sont eux-mêmes des opérations, alors le même procédé est appliqué : Python commence par calculer les arguments de l'opération, de gauche à droite, puis il effectue l'opération.

print(print(1), print(2)) print(print(4), print(5))

À essayer

Pour chaque ligne affichée en sortie, trouvez quel appel de fonction Python a été effectué. Déduisez-en l'ordre dans lequel les calculs ont été effectués.

Lorsqu'il y a plusieurs lignes de codes, Python effectue les calculs dans l'ordre des lignes.

En présence d'opérations avec des effets de bord, notez que l'ordre de calcul prend toute son importance.

Les instructions

En Python, on appelle une instruction une unité de code qui contient une opération à effectuer. Pour le moment, nous avons vu un unique type d'instruction : le calcul d'une valeur. Mettre un calcul sur une ligne de code donne une instruction. C'est là le type d'instruction le plus simple. Nous verrons d'autres types d'instructions dans les prochaines sections. Nous verrons par exemple que l'assignation d'une valeur à une variable, tout comme les divers structures de contrôle comme les instructions conditionnelles et les boucles forment d'autres types d'instructions.

Les commentaires

Les programmes Python peuvent contenir des commentaires, qui sont des lignes de texte qui ne sont pas exécutées par Python mais qui permettent d'expliquer le code à un éventuel lecteur. Parmi les lecteurs potentiels de votre code, on peut citer vous-même (lorsque vous reviendrez sur votre code après un certain temps), ou un autre programmeur qui voudrait comprendre votre code.

Pour écrire un commentaire, on utilise le symbole #. Tout ce qui suit le symbole # sur la même ligne est ignoré par Python.

# Ceci est un commentaire. print(1 + 2) # Ceci est aussi un commentaire. # print(3 + 4) # La ligne précédente est un commentaire, elle ne sera pas exécutée.

Savoir quand et comment bien commenter du code est une compétence importante mais qui ne peut être apprise qu'avec l'expérience. Souvent, les programmeurs débutants paraphrasent le code en commentaire, ce qui n'est pas très utile. À la place, on essayera de donner des informations qui ne sont pas évidentes à partir du code lui-même.

Auto-évaluation

La valeur du calcul 5 + 2 * 7 en Python est , alors que la valeur du calcul (5 + 2) * 7 est .

Auto-évaluation

Pour afficher quelque chose à l'écran, on utilise la fonction print. La fonction a pour d'afficher son à l'écran. Le résultat du calcul de la fonction print est toujours la valeur .

Auto-évaluation

Lorsqu'un programme est exécuté, Python effectue les calculs dans un ordre . Lorsque le programme contient plusieurs lignes de code, Python effectue les calculs de . Lors du calcul d'une opération, Python commence par calculer les valeurs des arguments, en commençant par ceux de .

Auto-évaluation

Pour entrer un commentaire en Python, on utilise le symbole . Tout ce qui suit le symbole sur la même ligne sera par Python.

Dans la prochaine section, nous allons voir différents types de données que l'on peut manipuler en Python, ainsi que certaines opérations que l'on peut effectuer sur ces données.