B1 · Episode 6 · 4:59
Python Variables and Assignment
This episode explains how variables work in Python, including the assignment process (right-to-left evaluation), intermediate calculations, counters, and shorthand operators like +=, -=, *=, /=, //=, %=, and **=.
Source:jmbarbier / peertube.solidev.net · License:CC BY-SA 4.0
Transcript
C'est deux manières de faire en fait absolument la même chose.
These are two ways of doing exactly the same thing.
Là ici, en fait, quand je fais print a plus b, qu'est- ce qu'il va faire?
So here, when I write ‘print a plus b’, what will it do?
Il va prendre, regarder la valeur qui est dans a,
It will first look up the value stored in a,
donc il va remplacer le a par sa valeur,
that is, replace ‘a’ with its value,
il va remplacer le b par sa valeur et il va faire l'addition pour afficher le
replace ‘b’ with its value, and then perform addition,
résultat. Pareil d'ailleurs, au lieu de faire print a plus b,
and finally display the result. Likewise, instead of writing ‘print a plus b’,
j'aurais pu faire ici.
I could have written it this way here.
Résultat, je n'ai pas mis d'accent, est égal à a plus b.
result (without the accent) equals a plus b.
et afficher le résultat.
then display that result.
C'était aussi la même chose.
This was also exactly the same.
D'accord, donc voilà, donc on peut utiliser par exemple pour faire des calculs
Okay, so as you can see, we can use it for intermediate calculations,
intermédiaires, pour enregistrer un résultat,
for example, to store a result,
pour l'utiliser après dans une autre formule, etc.
then reuse it later in another formula, and so on.
On va pouvoir stocker des valeurs à l'intérieur.
We can store values inside a ‘box’.
d'une boîte. Alors, quelque chose qu'on va faire souvent,
One thing we’ll often do is—
imaginez qu'on veut faire un compteur.
imagine we want to build a counter.
On veut additionner plus un, puis plus un, puis plus un.
We want to add 1 repeatedly: +1, then +1, then +1, and so on.
Donc très souvent en fait, on va vouloir prendre une valeur.
So very often, we’ll want to retrieve a value,
lui ajouter un et réenregistrer cette valeur là pour quelque chose,
add 1 to it, and save this new value back again,
un compteur par exemple.
for instance, as a counter.
Et je veux dire, bah voilà, je prends la valeur qu'il avait avant
What I mean is: I take the value it held before,
et je lui rajoute plus 1.
and then add 1 to it.
Si j'écris comme ça, compteur.
If I just write ‘compteur’,
Plus 1, ça va faire quoi?
then add 1, what happens?
Ça va prendre la droite d'abord.
It evaluates the right-hand side first.
On prend d'abord la droite.
First, we take the right side.
J'ai dit que l'égalité, ça se lisait de la droite vers la gauche.
I said earlier that the equals sign is read from right to left.
Donc on prend d'abord.
So, we handle the right side first.
La droite, valeur de compteur
The right side is the counter’s current value,
plus un. Donc si mon compteur il valait zéro au départ,
plus one. So if my counter starts at zero,
Je prends la valeur de compteur, quand je suis ici c'est zéro,
I take the counter’s value here — which is zero,
et je vais lui additionner un, donc maintenant elle vaut un.
and add one to it — so now it becomes one.
Et ensuite seulement, on
Only then do we
va prendre ce résultat
take this result,
et on le met dans la variable, on le remet dans la variable compteur,
assign it to the variable — that is, write it back into the counter variable,
on écrase la valeur précédente.
overwriting the previous value.
Ensuite seulement.
Only at this point,
On met le résultat dans la variable.
do we store the result in the variable.
D'accord, donc c'est finalement je fais la droite.
Understood? In short, I compute the right side first.
Je prends le résultat et je le mets à gauche.
Then I assign that result to the left side.
Il ne faut pas se tromper, d'accord?
Don’t get this wrong — okay?
Ici, ce n'est pas une égalité au sens x= x+ 1 et
Here, this isn’t a mathematical equation like x = x + 1,
je simplifie par compteur.
where you’d cancel ‘counter’ on both sides.
Ce n'est pas une égalité mathématique.
This is not a mathematical equality.
Une égalité mathématique, c'est un assignement.
It’s an assignment operation.
On fait la droite pour le mettre dans la gauche.
We compute the right side first, then store the result on the left.
Et alors petite parenthèse, comme c'est quelque chose qu'on fait très souvent,
By the way, since this operation is very common,
en fait, on a des raccourcis.
we actually have shorthand notations for it.
Le fait de prendre la valeur, de la modifier et de la réécrire dans la variable de
That is, retrieving a variable’s value, modifying it, and writing it back to the same variable,
départ, d'accord, on peut très bien.
right? We can definitely do that.
Avoir en Python une manière plus rapide de le dire.
In Python, there's a more concise way to express this.
Donc c'est une opération.
So, it's an operation.
Alors le raccourci, c'est en fait au lieu d'y dire,
The shortcut is actually: instead of writing,
si j'ai a qui vaut 5.
for example, if I set variable a to 5,
Je vais dire a plus égale trois.
I write 'a += 3' instead.
C'est pareil que a est égal à a plus 3.
This is equivalent to 'a = a + 3'.
Et ça marche pour toutes les opérations.
This works for all arithmetic operations.
A moins égal 3.
For example, 'a -= 3',
C'est pareil que a est égal
is equivalent to
à moins trois.
'a = a - 3'.
Et toutes les opérations qu'on a vues fonctionnent.
All the operators we've covered support this shorthand.
Donc la multiplication, a fois égal.
For multiplication, it's 'a *= 3',
3, c'est pareil que a est égal à a fois 3, on va tous les faire.
equivalent to 'a = a * 3' — let's go through them all.
A divisé égal 3, c'est pareil.
For division, it's 'a /= 3',
que a est égal à a divisé par trois,
which is equivalent to
j'ai même la division entière, a divisé divisé égal et trois,
'a = a / 3';
c'est pareil que.
and for floor division, we write 'a //= 3',
a est égal à a division entière trois, a modulo égal trois.
equivalent to 'a = a // 3'; for modulo, it's 'a %= 3',
C'est pareil. que a est égal à a modulo 3.
equivalent to 'a = a % 3'.
Et le dernier pour la puissance, si on a A
Finally, for exponentiation: if we write
étoile étoile 3 égale 3.
'a **= 3',
c'est pareil que a est égal à a étoile étoile trois a puissance trois
it's equivalent to 'a = a ** 3', i.e., 'a raised to the power of 3'.
voilà donc c'est juste un petit raccourci il faut s'en rappeler c'est pratique parce
In short, it's just a small shortcut you need to remember—
que c'est quelque chose qu'on utilise vraiment souvent
it's practical because we use it very often.
Donc voilà. Autre chose, en Python, on peut,
Another point: in Python, we can also...
donc on a dit que le égal simple, c'était une assignation, d'accord,
As we mentioned earlier, a single equals sign '=' means assignment, right?
et on regardait, on mettait la droite
During assignment, we take the value on the right-hand side
dans la gauche.
and assign it to the variable on the left.
Donc on peut faire en Python ce qu'on appelle des assignations multiples.
So in Python, we can do what's called multiple assignment.
Si je fais a égale b égale.
If I write a equals b equals
c égale d égale 3, ça se lit de la droite vers la gauche.
c equals d equals 3 — this is read from right to left.
Je mets 3 dans d.
I assign 3 to d.