B1 · Episode 7 · 4:59

Python Variables and Assignment Operations

This episode explains how variable assignment works in Python—reading from right to left, using compound assignment operators (like +=), and why directly swapping variables with 'a = b; b = a' fails without a temporary variable.

Source:jmbarbier / peertube.solidev.net · License:CC BY-SA 4.0

Transcript

  1. Puis je mets la valeur de d.

    Then I assign the value of d.

  2. Danser, donc la valeur de d, danser, puis.

    That is, the value of d, assignment, then.

  3. Donc la valeur 3, valeur

    So the value of c is 3,

  4. de c dans b. et valeur

    assign c’s value to b,

  5. de b dans a. Et l'idée c'est que ça se lit de la droite vers la gauche.

    and then assign b’s value to a. The idea is to read it from right to left.

  6. Je mets le 3 dans D, je mets le D dans C, je mets le C dans B,

    I assign 3 to D, D to C, and C to B,

  7. je mets le B dans A.

    and then B to A.

  8. Et ça permet juste d'éviter d'avoir à faire trois lignes pour

    This simply avoids writing three lines here,

  9. quatre lignes ici en l'occurrence pour faire,

    where four lines would otherwise be needed—to achieve:

  10. c'est la même chose ça que.

    exactly the same result as this.

  11. A égal 3, B égal 3, C égal 3,

    A equals 3, B equals 3, C equals 3,

  12. D égal 3. Voilà, c'est juste plus économique en espace.

    and D also equals 3. That’s it—more space-efficient.

  13. Petit exercice.

    A small exercise.

  14. Je vous dis a est égal à 1.

    I declare: a equals 1.

  15. b est égal à 2, et je vais écrire a plus égal.

    b equals 2, then I write: a plus-equals,

  16. b moins trois.

    b minus 3.

  17. Et je vais afficher ensuite print

    Then I use the print command to display,

  18. a b sans exécuter.

    the values of a and b (without executing yet).

  19. Quel est le résultat de l'affichage

    So what will be displayed?

  20. Donc on pose la vidéo.

    Pause the video to think.

  21. Et vous trouvez la valeur de a

    Calculate the final value of a,

  22. et la valeur de b.

    and also the final value of b.

  23. à la fin, ce qui est affiché.

    That is, what appears on screen at the end.

  24. Alors pour vérifier si vous avez trouvé,

    To check whether you got it right,

  25. on va exécuter le code.

    we’ll now execute the code.

  26. On a a qui vaut 0, b qui vaut 2.

    a equals 0, and b equals 2.

  27. Alors on y va.

    So let's get started.

  28. On prend les valeurs.

    We take these values.

  29. Donc là ici, dans ma boîte A, j'ai mis la valeur 1.

    Right now, in my variable A, I've stored the value 1.

  30. Dans ma boîte B, j'ai mis la valeur 2.

    In variable B, I've stored the value 2.

  31. Ensuite ici, cette ligne- là, je peux la réécrire:

    Next, this line can be rewritten as:

  32. a est égal à a plus b

    a equals a plus b,

  33. moins 3. Et donc ça c'est ici,

    minus 3. So here, it means:

  34. je prends d'abord la valeur de a plus b moins 3, cette valeur- là,

    I first compute the value of a plus b minus 3,

  35. pour la mettre à nouveau dans a.

    then assign that result back to a.

  36. Ça, qu'est- ce que c'est?

    What does this operation mean?

  37. A, il vaut 1, B, il vaut 2.

    A is 1, and B is 2.

  38. moins trois, ça fait le calcul,

    Subtracting 3 — we perform this calculation,

  39. ici ça me donne.

    and here, it gives us:

  40. Un plus moins un, un plus moins un, ça me donne zéro.

    1 plus negative 1 equals zero.

  41. Et je prends ce résultat et je le mets dans la variable a.

    Then I assign this result to variable a.

  42. Donc le résultat zéro vient se mettre dans a, d'où ici le fait que a vaut zéro.

    So the result 0 is stored in a, which is why a now equals zero.

  43. B lui. J'ai jamais rien assigné à b autre que sa valeur initiale,

    As for b, I've never reassigned it,

  44. donc b reste à 2.

    so b remains at its initial value of 2.

  45. D'accord, voilà, donc il faut s'entraîner à lire, en fait, prévoir,

    Okay, got it. In fact, we need practice — reading code and predicting,

  46. savoir qu'est- ce que va faire une opération.

    what result a given operation will produce.

  47. Je fais d'abord la droite, puis je le mets à gauche.

    I first evaluate the right-hand side, then assign it to the left-hand side.

  48. Et quand on a ce petit truc- là, là ici, un plus égal, un moins égal,

    When we see shorthand operators like '+=', '-=', or '/=',

  49. un divisé égal, il faut bien se rappeler que c'est la valeur de la variable plus ce

    we must remember: it means taking the variable’s current value, adding (or subtracting, dividing by) the value on the right,

  50. qu'il y a à droite qui vient se remettre dans la variable.

    then storing the new result back into that same variable.

  51. Donc voilà, il y a des fois des petites étapes quand même de traduction,

    So here, there are indeed some small translation steps.

  52. là ici. Il se passe quand même pas mal de choses dans ces trois petits bouts de

    Right here.

  53. caractères ici.

    Quite a lot actually happens within these three characters.

  54. Voilà, on a la traduction de ça, a est égal à a plus b moins 3,

    Here’s its translation: a equals a plus b minus 3.

  55. et puis on remplace b par sa valeur, et puis on remplace a par sa valeur,

    Then we substitute b with its value, and then substitute a with its value.

  56. et puis on fait le calcul, et puis on rebalance tout ça dans a.

    Then we perform the calculation, and finally assign the result back to a.

  57. Ça fait quand même pas mal d'opérations.

    That involves quite a few operations.

  58. Alors, deuxième petit exercice.

    Now, here’s the second short exercise.

  59. Je vais prendre une variable a

    I’ll declare a variable a,

  60. qui vaut 5, une variable b qui vaut 2.

    whose value is 5; and another variable b, whose value is 2.

  61. Et puis je veux juste inverser le contenu, d'accord?

    Now I simply want to swap their contents—got it?

  62. Donc après ça peut être 5, ça peut être 2.

    Afterward, a might be 5 and b might be 2.

  63. Je veux prendre la valeur de A, la mettre dans B,

    I want to put A’s value into B,

  64. je veux prendre la valeur de B et la mettre dans A.

    and put B’s value into A.

  65. Donc j'écris a égale b, b

    So I write: a equals b,

  66. égale a. Et je vais faire print a, b.

    b equals a; then I run print(a, b).

  67. Est- ce que vous pouvez me prévoir

    Can you predict,

  68. ce qui sera affiché quand je vais faire le print a b?

    what will appear on screen when I run print(a, b)?

  69. Et pourquoi? À vous de jouer.

    And why? It’s your turn!

  70. Alors, contrairement à ce qu'on pourrait imaginer,

    In fact, the result is completely opposite to what we imagined.

  71. on n'a pas du tout fait ce qu'on voulait.

    We didn’t achieve what we intended at all.

  72. On voulait, en faisant a égale b, b égale a,

    We intended to swap the values of a and b by writing ‘a equals b, b equals a.’

  73. on voulait inverser la valeur de a et de b.

    That is, swap the values of a and b.

  74. Inverser la valeur de a et de b, là ici.

    Swap the values of a and b—right here.

  75. C'est ce qu'on imaginait faire en faisant ça.

    That’s what we thought this code would accomplish.

  76. En fait pas du tout, on a a et b qui sont égaux maintenant.

    In fact, not at all—now a and b are equal.

  77. Alors il faut reprendre les choses.

    So we need to start over.

  78. Là ici, on a fait.

    Here, we just did this.