Aller au contenu

Variables et affectation⚓︎

Une Variable est le nom que l’on donne à une valeur

Example

  1. Exécuter l'instruction a=1 dans le terminal ci-dessous
    Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
    Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
    Vous venez de :
    1. créer une variable nommée a
    2. affecter la valeur \(1\) à a
  2. Utiliser l'instruction type(a) pour vérifier le type de la variable a
  3. Utiliser l'instruction suivante dans le terminal :
    console python
    >>> print(a+1)
    
  4. Rentrer l'instruction a dans le terminal pour vérifier que la variable a reste inchangée.
  5. Utiliser l'instruction suivante dans le terminal :
    console python
    >>> a = a + 1
    
    Faire afficher la nouvelle valeur de a dans le terminal.

Double affectation

Exécuter le script ci-dessous. La première ligne crée les variables a et b et précise leur valeurs.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Sans les guillemets, l'interprète considère que Bob est le nom d'une variable !

  1. Exécuter le script ci-dessous.
    Explications :
    1. La variable expediteur est de type str et a pour valeur "Alice"
    2. À la ligne 2, l'intepréteur ne reconnait pas de variable de nom Bob
  2. Corriger la ligne 2 en rajoutant les guillemets nécessaires et relancer le script.
    ###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
    (Ctrl+I)
    (Ctrl+I)
    Entrer ou sortir du mode "deux colonnes"
    (Alt+: ; Ctrl pour inverser les colonnes)
    Entrer ou sortir du mode "plein écran"
    (Esc)
    (Esc)
    Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
    Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Exercice 1

Écrire un script python qui :

  • crée une variable nommée mot à laquelle vous affecterez la valeur "Bon"
  • fait afficher la valeur de la variable à l'aide d'une instruction print()
  • crée une variable nommée s à laquelle vous affecterez la valeur 2*mot

Valider votre réponse (Ctrl+Enter).

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013 ndhe2r1=cm;a(SjtP/sb3uo)ipgByvq*fl050d0f0r0n0A0J0u0b0k0J0n0u0u0j010r0A0B010406050u0x0l0l0n0h0E040p0y0J0x0!0y0c050t0+0-0/0;0)0B0405140}170t140)0d0A0F0S0U0W0Y0e0A0C0e0J1l0e0r0%050N0v0J0f1g0V0X011k1m1o1m0r1u1w1s0r0h150r0e0S0@0u0B0n0c0Y0g011y1i010I0P0f0c0n0l0f1s1R1T1Y1A1#1w1(1*0%0a0b0s0h0y0B0y0u0A0`0c0b0L1P0h0h0f0k220}1-0c150t1N2f1K1M1L1t0d1/0Y1o0c1%1 1s1d1f0T1z2p0A2r0c0y2v1s0B28152d2f2J0*1S232x1Z2C0h0.0J0%0i2c2N0(2M1.2P1A2R2T0%0g2X1T2Z2d2o012(0n2U040w2,2e182H0}2v2i0d1M2n2$0Y0k2D1+152 162}2L0~2Y05360L2I2N2:0c0%0l0y0r2`040b2!2O1h1A0y0%0j3r3t2/34010u1W04020G0x3p0m0D0{0q0y0x0h3J3L0r0m3B0)3D3w0Y0c0v0%2G2A3q3e2-3u2:0$040o3r3/3E3m043o3,2L3!2y013;0z3r3Z3k3_0%0u3B3^3#013y043A3-2e3C464c0l0A2*3@3 1Z4e0H4p4k403`3|3Y0}3h0f2f2G4C2~1e302i2l2g0n1v4F0t2 0)4P0M0O0Q04.
Exercice 2

Écrire un script python qui :

  • crée une variable nommée a à laquelle vous affecterez la valeur "pa"
  • crée une variable nommée b à laquelle vous affecterez la valeur "radis"
  • crée une variable nommée s égale à la concaténation de a suivi de b

Valider votre réponse (Ctrl+Enter)

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013 ndh9e2r1=c;+aStP/sb3uoipgyvmfl050d0g0q0o0y0F0t0b0l0F0o0t0t0k010q0y0z010406050t0w0D0D0o0i0B040p0x0F0w0W0x0c050s0%0)0+0-0#0z0405100_130s100#0d0y0C0O0Q0S0U0e0y0A0e0F1h0e0q0Z050J0u0F0g1c0R0T011g1i1k1i0q1q1s1o0q0i110q0e0O0:0t0z0o0c0U0h011u1e010E0L0g0c0o0D0g1o1N1P1U1w1X1s1!1$0Z0a0b0r0i0x0z0x0t0y0?0c0b0H1L0i0i0g0l1~0_1)0c110s1J2b1G1I1H1p0d1+0U1k0c1Z1{1o191b0P1v2l0y2n0c0x2r1o0z2411292b2F0$1O1 2t1V2y0i0*0F0Z0j282J0!2I1*2L1w2N2P0Z0h2T1P2V292k012!0o2Q040v2(2a142D0_2r2e0d1I2j2Y0U0l2z1%112{122_2H0`2U05320H2E2J2,0c0Z0o2?040b2W2K1d1w0x0Z0k3l3n2+30010t0j0Z02030v0f0m1O3D3F0m3l0#3x3q0U3i040u3v3o2,3s043u3a2)3w3g3y3A3C3E3G0i0o190t3J3G3M3V3y3R0t3U3O2u013X3Z2F3$2X3P2-3j3{3%443X0n47433}3R3T3!2a0#0s3d0g2b2C4m2`1a2|2e2h2c0o1r4p0s2{4j0H0J0L0t04.
Exercice 3

Créer une variable nommée nombre à laquelle vous affecterez la valeur 42.0 et faites afficher, dans la console, le type de cette variable.

Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Solution
🐍 Console Python
>>> nombre = 5.5
>>> type(nombre)

noms de variables

Dans Python un nom de variable peut commencer par une lettre, par un underscore _ mais pas par un chiffre.
On choisira un nom qui clarifie la valeur enregistrée. Si la valeur \(15\) correspond à l'age de Nina on peut utiliser :
- age_de_nina = 15 (tout en minuscules, mots séparés par un underscore _)
- AgeDeNina = 15 (quelques majuscules pour identifier les mots)

Controler le déroulement d'un code⚓︎

Le déroulement d'un code est l'ordre dans lequel les lignes du code sont exécutées.

En l'absence de boucles ou d'instructions conditionnelles, l'intepréteur exécute les instructions dans l'ordre d'écriture.

Il faut apprendre à controler le déroulement d'un code (dérouler le code) en se substituant à l'intepréteur.

déroulement d'un code

Le code Le déroulement
🐍 Script Python
1
2
3
4
5
6
a = 101
b=4
e=a*b 
b=b+1
d=e+2**b
a=d+1
🐍 Script Python
1
2
3
4
5
6
a = 101
b = 4
e = 404 
b = 4+1 = 5     # nouvelle valeur de b
d = 404 + 2**5 = 436  
a = 436+1= 437  # nouvelle valeur de a
En fin de script, la variable a a pour valeur 437

Exercice 4 - déroulement à faire sur papier

🐍 Script Python
1
2
3
4
5
6
naomi = 4
kira = 6
ana = naomi * kira 
kira = ana - naomi
naomi = naomi + kira + ana
ana = naomi * kira   
Contrôler le déroulement et déterminer les valeurs des variables à la fin du programme

Solution

🐍 Script Python
3
4
5
6
ana = 4 * 6 = 24 
kira = 24 - 4 = 20 # nouvelle valeur
naomi = 4 + 20 + 24 = 48 # nouvelle valeur 
ana = 20 * 48 =   960   # nouvelle valeur
En fin de script, !python naomi a pour valeur 48, !python kira vaut 20, et !python ana vaut 960.

Exercice 5 - déroulement à faire sur papier

🐍 Script Python
1
2
3
4
x = 5
x = x**2
x = x-1
x = x%2
Contrôler le déroulement et déterminer la valeur de x à la fin du programme

Solution

🐍 Script Python
2
3
4
x = 5**2 = 25   # 5 puissance 2
x = 25 - 1 = 24
x = 24 % 2 = 0 # reste de la division par 2 
En fin de script, !python x a pour valeur 0.

Écriture formatée de variables⚓︎

Les f-string

Un formatted string litterals est une chaîne de caractère précédée par f sans espace qui indique à python d'afficher des variables avec un certain format à l'intérieur d'une phrase.

Example

Le script ci-dessous montre comment afficher un texte avec plusieurs variables, en utilisant et sans utiliser un f-string.

Les f-string peuvent préciser le format d'affichage (nombre de chiffres significatifs, écriture scientifique)

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Exercice 6

Écrire un script python qui :

  • crée une variable nommée a à laquelle vous affecterez la valeur de \(3.1415926535897\).
  • Utiliser une commande python pour afficher une valeur approchée de a au centième.

Valider votre réponse (Ctrl+Enter)

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013 ndh9e2r1=c;aS(tP/8sb3:}u47o50i)pg.{yv6qmfl050d0g0q0n0F0R0u0b0l0R0n0u0u0k010q0F0H010406050u0z0P0P0n0i0L040o0C0R0z0,0C0c050s0?0^0`0|0;0H04051c151f0s1c0;0d0F0M0!0$0(0*0e0F0I0e0R1t0e0q0/050V0v0R0g1o0%0)011s1u1w1u0q1C1E1A0q0i1d0q0e0!0 0u0H0n0c0*0h011G1q010Q0X0g0c0n0P0g1A1Z1#1*1I1-1E1:1=0/0a0b0r0i0C0H0C0u0F120c0b0T1X0i0i0g0l2a151^0c1d0s1V2n1S1U1T1B0d1`0*1w0c1/271A1l1n0#1H2x0F2z0c0C2D1A0H2g1d2l2n2R0=1!2b2F1+2K0i0_0R0/0j2k2V0:2U1_2X1I2Z2#0/0h2)1#2n2O0g2n2D2q0d1U2v2.0*0l2L1?1d2}1e2P2,2m2@3c340T2Q2V2w010c0/0n3d040b3b3j0C0/0k3o3q2l3j0P0Q0/0w0J0j0A0j0D0f0h0N0D0w0D0t0f0B3o0;3y323k0v0/2O2I0q3o3r3V0.040p3$3U1p1I0u0n0/0Q3,3i3V0u1(04020O0z0C0q0m3@2-3.0*280/0K432W453k3m4a3j47040x4f3_3{0E0J0w0g4k4c4h0y4r2G013`0/3}3 414v1+3)0G3S153f2{1g3a0s382o2 152r4R0n1D4K4N1m2+4N0U0W0Y04.

QCM⚓︎

Je vérifie ma compréhension (bouton en bas pour recommencer)

  1. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    4
    x = 3
    y = x + 16
    y = y*x
    y = y +84
    

    En fin de script y prend la valeur :

    • 64

    • 141

    • 67

    • 73

  2. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    x = 5.0
    y = x**2
    y = x + 3 
    

    En fin de script y prend la valeur :

    • 28.0

    • 28

    • 8.0

    • 13.0

  3. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    x , y = 2 , 3
    x = y - x
    y = x + y 
    

    En fin de script x et y prennent les valeurs :

    • 1.0 , 4.0

    • 1 , 4

    • 4 , 1

    • 4.0 , 1.0

  4. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    x , y = 2 , 3
    z = x+y+x*y
    y = z/2 
    

    En fin de script y prend la valeur :

    • 11

    • 5.5

    • 3

  5. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    4
    x , y = 12 , 7
    u = x + y
    v = x**2-y**2
    w = v%u 
    

    En fin de script w prend la valeur :

    • 95/19

    • 95

    • 5

    • 0

  6. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    4
    x = 5 
    y = x + 14
    y = y*x 
    y = y + 49
    

    En fin de script y prend la valeur :

    • 144

    • 49

    • 54

    • 74

  7. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    x = 7 
    y = 2*x-1
    x = x+3*y
    

    En fin de script x prend la valeur :

    • 130

    • 12

    • 46

    • 13

  8. Soit le code suivant :
    🐍 Script Python
    1
    2
    3
    4
    a , b = 2 , 3 
    a = a ** b
    a = a - b
    b = a - b
    

    En fin de script a et b prennent les valeurs :

    • 5 , 5

    • 3 , 3

    • 5 , 2

    • 3 , 2