Les conditions avec Python

Structures conditionnelles avec Python

Les instructions conditionnelles font partie de tout algorithme qui doit traiter plusieurs cas de figure ou même qui opère un simple contrôle de cohérence d’une saisie.

Rappel : une structure conditionnelle indique quelle action doit être réalisée si une condition est remplie et quelle est l’alternative si elle n’est pas vérifiée. Exemple : si vous êtes intéressé, restez sur cette page, sinon allez visiter un autre site web.

Qu’en est-il avec Python ?

informaticienne

 

Saisie et condition simple

C’est avec l’instruction input que l’algorithme attend une réponse de l’utilisateur.

Avec Python, il n'est pas nécessaire de définir toutes les variables en début de programme, avec des instructions spécifiques de déclaration ou de saisie. Elles peuvent être saisies à la volée. En l'occurrence, notre variable sera définie en même temps que l’instruction de saisie. Par défaut, une variable est une chaîne de caractères (string). Exemple :

var = input('var = ')

Supposons que l’utilisateur doive entrer la valeur d’un entier relatif. Notre programme aura pour mission de préciser s’il est négatif ou positif. Ci-dessous, des commentaires facultatifs sont ajoutés (lignes commençant par un dièse).

# Définition de la variable comme étant un entier et demande de saisie par l’utilisateur

var = int (input('entrez une valeur entière : '))

# cas où la valeur est négative

if var < 0:
    print ('valeur négative')

# cas où la valeur est positive

if var > 0:
    print ('valeur positive')

Si l’utilisateur entre 0 il ne recevra aucun message et s’il saisit un nombre décimal il aura droit à un désolant message d’erreur.

Remarquez les deux points à la fin de chaque ligne de condition. L’éditeur les ajoute automatiquement lorsque vous passez à la ligne suivante.

On peut aussi utiliser deux variables. La première ligne de code est alors remplacée par les deux lignes ci-dessous :

saisie = input('entrez une valeur entière : ')
val = int(saisie)

 

Indentation

Une indentation est le décalage vers la droite d’une ligne de code. Il est habituel d’insérer des indentations dans un programme pour qu’il soit plus clair à lire. Avec Python, elles ne jouent pas qu’un rôle esthétique. Il s’agit d’une fonctionnalité. L’éditeur que vous utilisez (ci-dessous, capture d’écran de PyCharm) incrémente automatiquement les lignes qui indiquent une action à exécuter si une condition est remplie. Si vous supprimez l’indentation, un message d’erreur s’affichera.

Il n’y a donc pas d’instruction de fin de condition avec Python puisque c’est l’indentation qui gère les conditions et les boucles.

 

Sinon…

Le mini programme ci-dessus fonctionne mais en pratique on préfère ne pas l’écrire ainsi.

En langage naturel, une condition s’exécute avec une structure alternative « si… alors… sinon... » ou « if… then… else... ». Il en est de même de certains langages de programmation, comme par exemple Scilab. Le principe est celui d'un branchement. S'il y a deux possibilités, le programme comporte deux branches.

En revanche, Python n’utilise pas then qui est implicite. Mais else reste indispensable (quoique pas toujours, voir les tirages aléatoires avec Python).

if... else

Ainsi, aucune alternative n’est oubliée. Si l’on entre 0, le message « valeur positive » s’affichera. Ce n’est pas encore satisfaisant mais au moins tous les entiers sont traités.

 

Comparateurs

Les conditions font la part belle aux comparateurs. Nous avons vu < (strictement inférieur) et > (strictement supérieur). Mentionnons l’égalité == (ou is). Pourquoi deux symboles ? Parce qu’un seul = est utilisé pour l’affectation d’une variable. Quant à la différence, elle est notée != ou is not.

Autres comparateurs : >=, <=, and, or.

Exemple :

var = int (input('entrez une valeur entière : '))

if var <= 9 or var >= 21:
    print ('valeur non comprise entre 10 et 20')

else:
    print ('valeur comprise entre 10 et 20')

Voir aussi les fonctions avec Python.

 

Plusieurs conditions

L’instruction elif, mot formé avec else et if, permet d’enchaîner les conditions d’une façon particulièrement fluide. Si un programme comporte trois branches ou plus, cette instruction est employée.

La structure de contrôle est « if… elif… else... », avec autant de elif que nécessaire.

Revenons à notre programme initial. À présent, il est possible de l’écrire afin qu’il traite des trois cas :

programme terminé

Un autre exemple se trouve sur ce site avec la simulation d'une loi de probabilité.

 

Programme pour dormir