B1 · Episode 16 · 4:43
Python Conditional Statements Explained
This episode explains how to use Python's if statements with Boolean operators like 'and' to evaluate multiple conditions simultaneously, such as checking both age and sex for selecting appropriate dog food.
Source:jmbarbier / peertube.solidev.net · License:CC BY-SA 4.0
Transcript
Mâle, 1 égale femelle.
Male, 1 means female.
D'accord, et ça c'est l'âge.
Okay, and this is the age.
Et donc on peut très bien dire, ok, si j'ai un
So we can very well say: okay, if I have a
mâle de plus de 12 ans, alors il
male dog over 12 years old, then
faut lui donner des croquettes adaptées.
we must feed it specially formulated kibble.
Donc si. On a un vieux mal.
So if… we have an elderly male dog.
Je pense à un chien, désolé, j'ai pas précisé.
I’m thinking of a dog—sorry, I didn’t specify that earlier.
Donc on parle d'un chien.
So we’re talking about a dog.
Si on a un vieux mâle, d'accord, donc plus de 12 ans.
If we have an elderly male dog—that is, over 12 years old.
Il doit avoir, prenez la marque de croquettes que vous voulez,
It needs to eat—the brand of kibble is up to you,
d'accord? Donc là, c'est une condition,
okay? So this is a condition,
mais c'est une condition avec deux choses. Il faut qu'il soit vieux et il faut qu'il
but it has two requirements: it must be elderly, and it must be ill.
soit mal. Donc c'est là qu'on va pouvoir utiliser nos opérateurs booléens,
This is exactly where we can use Boolean operators—
les ou, les or, les and, etc.
like 'or', 'and', etc.
Donc là, la condition, on va pouvoir l'écrire if.
So we can write this condition as 'if'.
âge supérieur à douze
age greater than 12,
et Sexe égale zéro.
and sex equals zero.
Attention, c'est une double comparaison, donc égale égale zéro,
Note: this is a double comparison, so we write two equals signs: equals zero,
print croquettes.
then print 'kibble'.
de vieux mâle, voilà.
elderly male dog—that’s it.
D'accord, donc là en l'occurrence, il n'affiche rien.
Okay, so right now, it displays nothing.
Si je transforme ça en un vieux mâle.
If I change this to an elderly male dog.
On va lui dire OK croquet de humain.
We’ll tell it: 'OK, human kibble.'
Donc on peut utiliser comme ça
So we can use
plusieurs comparaisons et les mettre entre eux par
multiple comparisons and link them with logical operators,
l'âge supérieur à 12 et le sexe supérieur à 0.
for example, 'age greater than 12' and 'sex greater than 0'.
Alors attention, c'est une comparaison.
So pay attention: this is a comparison.
Donc le résultat de cette comparaison, qui est un booléen,
So the result of this comparison—which is a Boolean—
ça ici comment ça s'écrit en fait c'est ce booléen là.
is actually this Boolean right here.
Et ce booléen- là, d'accord, ça se lit
And this Boolean—okay—its reading is
comme en français.
just like in French.
Si l'âge est supérieur à 12 et que le sexe est supérieur à 0,
If age is greater than 12 and gender is greater than 0,
mais en fait, on pourrait très bien rajouter ici des parenthèses,
but actually, we could very well add parentheses here,
âge supérieur à 12.
for example, ‘age greater than 12.’
et sexe égal zéro.
and ‘gender equals zero.’
Et en fait c'est même plutôt pas mal de les rajouter,
In fact, adding them is actually quite helpful,
ça rappelle qu'on a ici une comparaison.
as it reminds us that we have a comparison here.
une autre comparaison et qu'on vient faire la liaison logique entre ces deux
another comparison—and then we connect these two
comparaisons et ça ça évite des erreurs du type voilà
comparisons with a logical operator, which helps avoid errors like this:
imaginez que la condition maintenant ça soit
Imagine the condition now becomes this:
Imaginez qu'on a, si on a.
Suppose we have—if we have…
Un âge supérieur à douze.
an age greater than twelve,
est inférieur à treize, à quinze.
and less than thirteen—or fifteen.
D'accord? Là ici, en français, c'est comme ça qu'on dit.
Okay? In French, that’s exactly how we say it.
Donc s'il a un âge plus grand que 12 et plus petit que 13,
So if someone’s age is greater than 12 and less than 13,
C'est du français tout à fait correct.
that’s perfectly correct French.
Si je l'écris en Python comme ça, if âge supérieur à 12
But if I write it in Python like this: if age greater than 12,
and inférieur à 13 à 15.
and less than 13—or 15,
Print ado. Qu'est- ce qu'il fait Python, il me dit invalid
print ‘ado’. What does Python do? It says ‘invalid syntax.’
syntax. Pourquoi?
Why?
Parce que là, j'ai fait juste de la traduction du français, et ça,
Because here, I’ve just done a literal translation from French—and this,
je sais que vous allez me le faire,
I know you’ll probably do it too,
mais j'ai fait la traduction de la phrase en français.
but it really is just a word-for-word translation of the French sentence.
Ce qu'elle veut dire cette phrase, c'est qu'on a ici une première condition,
What this sentence means is that we have a first condition here,
et ce que je sous- entends ici, c'est un âge supérieur à 12 et
and what I’m implying here is an age greater than 12,
cet âge, ce même âge, est inférieur à 15.
and this same age is less than 15.
Donc là, quand je veux l'écrire en Python,
So, when I want to write this in Python,
je n'ai pas le droit de le traduire comme ça.
I’m not allowed to translate it literally like this.
La première comparaison, elle est là, âge supérieur à 12.
The first comparison is right here: age greater than 12.
Et en fait, ça s'écrirait comme ça après.
And in fact, it should be written like this.
Si je rajoute mes parenthèses, vous voyez que ma parenthèse de droite,
If I add my parentheses, you’ll see that my right parenthesis,
elle veut plus rien dire.
no longer means anything.
Parce qu'ici, c'est une comparaison entre 15 et
Because here, it’s comparing 15 with...
Nawak, rien du tout.
'Nawak' — absolutely nothing.
Donc l'idée, c'est que voilà, vous ne devez pas traduire directement,
So the idea is: don’t translate directly,
vous devez réfléchir ça en des et d'opérations logiques.
you must think of it as a combination of logical AND operations.
Et là, la bonne manière d'écrire ça, âge supérieur à 15,
So the correct way to write 'age greater than 12',
il ne faut pas traduire directement la phrase,
is not to translate the sentence literally,
il faut traduire ça en une. Combinaison avec le ET de comparaisons.
but to express it as a combination of comparisons joined by AND.
Donc si l'âge est supérieur à 12 et l'âge est inférieur à 15.
That is: age greater than 12 AND age less than 15.
Et là, effectivement, on peut écrire ados.
Then, indeed, we can correctly write 'ados' (teenagers).
Ok, voilà, donc avec ça, effectivement,
OK, that’s it — with this knowledge,
vous êtes équipé éventuellement pour aller faire les exercices.
you’re now equipped to tackle the exercises.