En Python, l’instruction if et l’opérateur and servent à prendre des décisions dans le code : exécuter un bloc d’instructions uniquement quand certaines conditions sont remplies. C’est l’un des premiers mécanismes que tout débutant rencontre, et le comprendre concrètement change la façon d’écrire ses premiers programmes.
Ce que fait réellement une condition if en Python
Imaginons un programme qui vérifie l’accès à un service. On veut afficher un message uniquement si l’utilisateur a saisi un âge valide. Sans condition, le code s’exécute toujours, qu’il y ait une erreur ou non.
A lire aussi : Py module : comment structurer votre projet Python comme un pro ?
Avec un if, on soumet l’exécution d’un bloc à une vérification :
age = 20
if age >= 18:
print("Accès autorisé")
Python évalue l’expression age >= 18. Si elle vaut True, le bloc indenté s’exécute. Sinon, il est ignoré. L’indentation (4 espaces) délimite le bloc : c’est elle qui dit à Python ce qui appartient au if, pas des accolades comme dans d’autres langages.
Lire également : Wifi Ilosca : de la création du compte à la première connexion
Un détail qui déclenche souvent une erreur : écrire If avec une majuscule. Python est sensible à la casse, et If ne sera pas reconnu comme mot-clé.
Ajouter else et elif pour gérer plusieurs cas
Un if seul ne couvre qu’un cas. Dès qu’on a besoin d’une alternative, on ajoute else. Et si on a plusieurs cas distincts à tester, elif (contraction de « else if ») permet de les enchaîner sans imbriquer les blocs.
age = 15
if age >= 18:
print("Accès autorisé")
elif age >= 13:
print("Accès limité")
else:
print("Accès refusé")
Python teste les conditions dans l’ordre. Dès qu’une condition est vraie, il exécute le bloc correspondant et ignore les suivants. Si aucune condition n’est vraie, c’est le bloc else qui s’exécute – à condition qu’il existe.

Combiner plusieurs conditions avec l’opérateur and
Dans beaucoup de situations, une seule condition ne suffit pas. Par exemple, accorder l’accès uniquement si l’utilisateur est majeur ET que son abonnement est actif. C’est là qu’intervient l’opérateur and.
age = 20
abonnement_actif = True
if age >= 18 and abonnement_actif:
print("Accès complet")
Avec and, toutes les conditions doivent être vraies pour que le bloc s’exécute. Si l’une d’elles vaut False, Python renvoie False pour l’ensemble, et le bloc est ignoré.
Python évalue les conditions de gauche à droite. Si la première condition est déjà fausse, il n’évalue pas la seconde : c’est ce qu’on appelle l’évaluation en court-circuit. Ce comportement est utile quand le deuxième test dépend du premier :
elements = []
if elements and elements[0] == "oui":
print("Premier élément valide")
Si la liste est vide, Python s’arrête à elements (qui vaut False) et ne tente pas d’accéder à elements[0]. Sans ce mécanisme, ce deuxième accès provoquerait une erreur. Placer le garde-fou avant le test qui en dépend est donc une règle à appliquer dès le départ.
Valeurs vraies et fausses : ce que Python considère comme True ou False
Une condition dans un if n’a pas besoin d’être un booléen explicite. Python considère certaines valeurs comme fausses par défaut : 0, "" (chaîne vide), [] (liste vide) et None. Toute autre valeur est considérée comme vraie.
Cela permet d’écrire des conditions plus directes :
nom = "Alice"
if nom:
print("Un nom a été saisi")
Si nom est une chaîne non vide, la condition est vraie. Si nom vaut "", elle est fausse. C’est lisible et courant en Python, mais il faut en comprendre la logique pour ne pas être surpris.
0,"",[],Nonesont considérés comme faux dans unif: on parle de valeurs « falsy ».- Tout entier non nul, toute chaîne non vide, toute liste contenant au moins un élément sont considérés comme vrais (« truthy »).
- Cela ne signifie pas que ces valeurs sont égales à
TrueouFalse: ce sont des comportements d’évaluation, pas des équivalences.
Structures if and : les erreurs fréquentes chez les débutants
Quelques pièges reviennent régulièrement quand on débute avec les conditions Python.
Le premier concerne l’indentation. Un bloc mal indenté provoque soit une IndentationError, soit un comportement inattendu : le code s’exécute en dehors du if sans message d’erreur.
if age >= 18:
print("Accès autorisé") # Erreur : pas d'indentation
Le deuxième piège est l’utilisation de = au lieu de == dans une condition. = est une affectation, == est une comparaison. Écrire if age = 18: provoque une erreur de syntaxe immédiate.
Le troisième concerne les comparaisons chaînées avec and. On écrit parfois par réflexe if 13 < age < 18:, ce qui fonctionne en Python (c’est une syntaxe valide), mais dans d’autres langages ce n’est pas le cas. En Python, cette écriture équivaut à if age > 13 and age < 18:.
Une condition if mal indentée ne provoque pas toujours une erreur : c’est le bug silencieux le plus courant chez les débutants, et il faut relire l’indentation en premier quand le comportement est inattendu.
Maîtriser l’instruction if, l’opérateur and et les structures elif / else donne les outils pour écrire des programmes qui réagissent à des données réelles. Ces mécanismes restent les mêmes quelle que soit la complexité du code qui vient ensuite.

