Le plus souvent, il est nécessaire de choisir les opérations à effectuer en fonction de certaines conditions. Par exemple, pour calculer les solutions d'une équation du second degré, on va tenir compte du fait que le déterminant est positif, négatif ou nul. Les énoncés conditionnels des langages de programmation permettent de faire cela.
Un énoncé conditionnel permet d'exécuter un bloc d'instructions quand une condition est vérifiée. En Python, c'est l'indentation qui détermine les blocs d'instructions. Un bloc d'instructions commence après une ligne d'entête terminée par le caractère :. Les instructions d'un même bloc ont toutes la même indentation (i.e. elles sont précédées du même nombre de tabulations). Le bloc se termine quand la tabulation redevient la tabulation de la ligne d'entête. Par exemple, le code ci-dessous contient un bloc d'instructions qui contient les instructions instruction_1 à instruction_n ligne_d'entête : instruction_1 instruction_2 ... instruction_n suite_des_instructions_pas_dans_le_bloc Notez qu'en Java ou en C les blocs sont délimités par les caractètes { (début du bloc) et } (fin du bloc). Une condition a une valeur booléenne c'est à dire qu'elle peut être vraie ou fausse. C'est le type bool en Python (valeurs possibles True et False). Les conditions peuvent être combinées gràce aux opérateurs booléens and, or et not. Attention : les opérateurs and, or et not s'appliquent à des expressions de type booléens. La condition "mois==1 or 2 or 3" n'a pas de sens (ou plutôt n'a pas le sens attendu) puisque 1, 2 et 3 sont des entiers et pas des booléens. Il faut écrire "mois==1 or mois==2 or mois==3" si l'on veut savoir si mois vaut 1 ou 2 ou 3. Les énoncés conditionnels peuvent être composés (on dit aussi imbriqués) pour combiner plusieurs conditions. Par exemple, dans le code ci-dessous, quand cond1 et cond2 sont vraies, on exécute successivement bloc1,bloc2,bloc3,bloc_final, et quand cond1 est vraie et cond2 est fausse on exécute bloc1, bloc3, bloc_final : if cond1 : bloc1 if cond2 : bloc2 bloc3 bloc_final Les fonctions de conversion (cast en anglais) permettent de changer le type d'une expression. Bien sûr, quand on convertit une expression, on peut perdre de la précision, c'est le cas si l'on passe d'un flottant à un entier (essayer par exempleint(5.6784)
). On peut aussi générer une erreur, quand la conversion est impossible, comme par exemple :int("BII")
).