Aller au contenu

Fonctions et instructions conditionnelles⚓︎

QCM pour débuter⚓︎

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

  1. Soit le script suivant :
    1
    2
    3
    4
    5
    def fonction(x) :
        if x <= 0 :
            return 0
        else :
            return 1 
    

    L'appel fonction(3) renvoie la valeur :

    • 0

    • 1

  2. Soit le script suivant :
    1
    2
    3
    4
    5
    def fonction(x) :
        if x <= 2 :
            return 3*x-1
        else :
            return x+3 
    

    L'appel fonction(10)-fonction(0) renvoie la valeur :

    • 30

    • 26

    • 14

    • 10

  3. Soit le script suivant :
    1
    2
    3
    4
    5
    def fonction(p) :
        if p%2 == 0 :
            return p//2
        else :
            return 3*p+1
    

    L'appel fonction(12) renvoie la valeur :

    • 6

    • 0

    • 37

  4. Soit le script suivant :
    1
    2
    3
    4
    5
    def hi (a, b):
        if (a < b)
            return a + b
        else
            return a * b
    

    L'appel hi(2, 3) renvoie la valeur :

    • 5

    • 6

    • 8

    • 23

  5. Soit le script suivant :
    1
    2
    3
    4
    5
    def hi (a, b):
        if (a < b)
            return a + b
        else
            return a * b
    

    L'appel hi(3, 2) renvoie la valeur :

    • 5

    • 6

    • 9

    • 32

Exercices⚓︎

Exercice 1

Le tarif de base de la location d'une voiture est de 75€ pour tout trajet inférieur à 250 km.
Pour un trajet supérieur à 250 km, on rajoute 0.28€ par km supplémentaire parcouru.

  1. Vérifier que si le trajet est de 350 km, le tarif est de 103€.
  2. Compléter le script si-dessous de la fonction d'appel location() :
    • qui prend pour paramètre x
    • renvoie le tarif tarif
    • pour x inférieur à \(250\), elle renvoie 75
    • pour x supérieur à \(250\), elle renvoie 75+0.28*(x-250)

Valider votre script pour vérifier votre réponse.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013m8t;)v3( *o0gxr7/=sedki-6cf:nhpu.lPyabS4125+050v0u0d0L0x0I0t0j0A0I0L0t0t0s010d0x0F010406050t0G0b0b0L0p0K040N0l0I0G0-0l0D050r0@0_0{0}0=0F04051d161g0r1d0=0v0x0g0#0%0)0+0E0x0n0E0I1u0E0d0:050W0M0I0u1p0(0*011t1v1x1v0d1D1F1B0d0p1e0d0E0#100t0F0L0D0+0Q011H1r010B0Y0u0D0L0b0u1B1!1$1+1J1.1F1;1?0:0a0j0J0p0l0F0l0t0x130D0j0U1Y0p0p0u0A2b161_0D1e0r1W2o1T1V1U1C0v1{0+1x0D1:281B1m1o0$1I2y0x2A0D0l2E1B0F2h1e2m2o2S0?1#2c2G1,2L0p0`0I0:0P2l2W0;2V1`2Y1J2!2$0:0Q2*1$2,2m2x012;0L2%040h2^2n0=2{2/0+2~300O332`2W2|390:0R3c353e372}0l2#2 0:0z3c1h2Q162E2r0v1V2w3m0A2M1@1e3x1f3v2U172+053D0U2R3l1q1J0w0:0U0B3c0j2-2X3S380B0:0I0l0A0L2k3L2_3!2|0/040i3t363$2}0:0o3_3R2H013?0f3Y3;3m3?0C3j0j4b3Z3`413U040x3X3/2n4d402Z3}3 2.3{0l0:020I0d0e0s4q3#410b0x2?0R0m454e1,484a4c4N463{0D0:0W0p4i4I4n1J4t044z4k044m4r4C4E040q3i4$4b064O4J3T0:0u0Z0u4W4)4K0:494$4;4N4c4P414R044T4V4/551,4Z4#2S4(4B1,4D0:4-4|5i4Y0:0S5n2|0b3(040m0H0Q0c4A2|4Z0k5B470:3^4$5c2:4p5J4?0+4Z0y5F3{5k040Q4G5S41434M4b5K0+4g2h0d0G0p155b5O3|580{5a2S0=0r3O0u2o2P5|3w1n3y2r2u2p0L1E5 0r3x5_0U0W0Y0t04.
Exercice 2

Compléter le script de la fonction d'appel mafonction() d'argument x et qui :

  • renvoie le double de x si x est positif ou nul.
  • renvoie x-1 sinon.

Valider votre script pour vérifier votre réponse.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013mt;)v3( *o0gxr/=sedki-6cf:nhpulPyabS4125050t0s0c0I0v0F0r0i0y0F0I0r0r0q010c0v0D010406050r0E0b0b0I0o0H040K0k0F0E0)0k0B050p0:0=0@0_0.0D040519121c0p190.0t0v0f0X0Z0#0%0C0v0m0C0F1q0C0c0,050S0J0F0s1l0!0$011p1r1t1r0c1z1B1x0c0o1a0c0C0X0|0r0D0I0B0%0N011D1n010z0U0s0B0I0b0s1x1W1Y1%1F1*1B1-1/0,0a0i0G0o0k0D0k0r0v0 0B0i0Q1U0o0o0s0y27121=0B1a0p1S2k1P1R1Q1y0t1@0%1t0B1,241x1i1k0Y1E2u0v2w0B0k2A1x0D2d1a2i2k2O0/1X282C1(2H0o0?0F0,0M2h2S0-2R1?2U1F2W2Y0,0N2$1Y2(2i2t012-0I2Z040g2;2j0.2@2+0%2`2|0L2 2?2S2^350,0O38313a332_0k2X2{0,0x381d2M122A2n0t1R2s3i0y2I1:1a3t1b3r2Q132%053z0Q2N3h1m1F0u0,0Q0z380i2)2T3O340z0,0?0z102f0v103U3W2^0+040h3p323Y2_0,0n3=3N2D013/0e3,3?3}3/0A3f0i473V421(3Q040v3T3H2=493|2V3_414j1F0k0,020m0c0d0q3{2*3@0b0v0,0l4m4x430,454g30484K4i4E4k040H4D3X3}4p044v4I044M4S1(4z2/4w4!4o0,0j4(3b4l4X0i064K3-3i4c0s0V0s4R3.4G464L474@3@0B0,4Q4:534T0,4W2O4Z4.043`4X591(4U0w4-3i4$042#4X4=485j3P0,2d0c0E0o11584a2,563f123K0s2k2L5K3s1j3u2n2q2l0I1A5N0p3t0.5X0R0T0V04.
Exercice 3

Le script ci-dessous sont :

  1. la fonction d'appel rectangle() qui prend pour paramètres longueur et largeur et renvoie l'aire du rectangle correspondant.
  2. la fonction d'appel disque() qui prend pour paramètres rayon et renvoie l'aire du disque correspondant.

Corriger les erreurs, compléter les scripts et valider votre réponse.

Indication : pi est une instruction de la librairie math

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013mt)v( ,o*gr/=sedkicf:nhuplPyabS12050q0p0c0D0s0A0o0g0t0A0D0o0o0n010c0s0z010406050o0y0b0b0D0l0C040F0i0A0y0Y0i0w050m0)0+0-0/0%0z0405120{150m120%0q0s0e0Q0S0U0W0x0s0k0x0A1j0x0c0#050L0E0A0p1e0T0V011i1k1m1k0c1s1u1q0c0l130c0x0Q0=0o0z0D0w0W0H011w1g010u0N0p0w0D0b0p1q1P1R1W1y1Z1u1$1(0#0a0g0B0l0i0z0i0o0s0^0w0g0J1N0l0l0p0t200{1+0w130m1L2d1I1K1J1r0q1-0W1m0w1#1}1q1b1d0R1x2n0s2p0w0i2t1q0z26132b2d2H0(1Q212v1X2A0l0,0A0#0G2a2L0$2K1,2N1y2P2R0#0H2V1R2d2E0p2d2t2g0q1K2l2!0W0t2B1)132:142F2Y2c2*322`0J2G2L2m010r0#0J0u33040g31390w0u0#26281R0k1u3f3i2^010!040f3s2b3j0#0A0_0k0y0p0y0l3z383u3w0h3f3h3A3u0w3C0-0k3H3J0|2W3t1f1y3w0d3P3#2w3v0#0v3f060g3=3Q3L3$0W3b04260c3I0`3Z2+3@2Z3_013T043D0w3F3X3K443,0i0#0j4d2M45470S0l3W3I3:0{352.16300m2~2e2=0{2h4B0D1t4u4x1c2X4x0K0M0O04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013mt)v3( *ogr/=sedkicf:nhuplPyabS41q2050q0p0c0D0s0A0o0h0t0A0D0o0o0n010c0s0z010406050o0y0b0b0D0l0C040F0j0A0y0!0j0w050m0+0-0/0;0)0z0405140}170m140)0q0s0e0S0U0W0Y0x0s0k0x0A1l0x0c0%050N0E0A0p1g0V0X011k1m1o1m0c1u1w1s0c0l150c0x0S0@0o0z0D0w0Y0J011y1i010u0P0p0w0D0b0p1s1R1T1Y1A1#1w1(1*0%0a0h0B0l0j0z0j0o0s0`0w0h0L1P0l0l0p0t220}1-0w150m1N2f1K1M1L1t0q1/0Y1o0w1%1 1s1d1f0T1z2p0s2r0w0j2v1s0z28152d2f2J0*1S232x1Z2C0l0.0A0%0H2c2N0(2M1.2P1A2R2T0%0J2X1T2Z2d2o012(0D2U040f2,2e0)2/2$0Y2=2@0G2`2f2G0p2f2v2i0q1M2n2~010t2D1+1538162H2!2e33053f0L2I2N2:0r0w0%0u1|0b330h3m2:0w3w040.1N3B3D3d3v0%0s0b1~0l0c3K2}1h2%0%0z0s332|3t3M0%0L0u3U3%3W2 0u3)0s0o0I0y0p3,2#3.010$040g3o3V2y2;0%0l0D0C0{413-433~0d3`2O3|3~0v3#0h4l3C422Q0%0O284f2:0j0%0n4t3d3G3Z4a3{434v040i4C4g433G46480|0~2Y3L3|4F0i4H4P2-4R430b0s2*4k4m4Y1Z0r450M0y0l4O2J4n4b4p044r3_4W2{0}3q36183l0m3j2g3a0}2j560D1v4 521e2Z520M0O0Q04.
Exercice 4

Écrire le script d'une fonction d'appel mafonction():

  • prend pour paramètre x
  • renvoie sa racine carrée s'il est strictement positif.
  • renvoie \(1\) sinon.

Indication : l'instruction sqrt() de la librairie math permet de calculer la racine carrée

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013mt;)v3( o0gxr7/=sedki6cf:nhpulPyabS41q25050t0s0c0H0v0E0r0i0x0E0H0r0r0q010c0v0C010406050r0D0b0b0H0n0G040J0j0E0D0)0j0A050p0:0=0@0_0.0C040519121c0p190.0t0v0f0X0Z0#0%0B0v0l0B0E1q0B0c0,050S0I0E0s1l0!0$011p1r1t1r0c1z1B1x0c0n1a0c0B0X0|0r0C0H0A0%0N011D1n010y0U0s0A0H0b0s1x1W1Y1%1F1*1B1-1/0,0a0i0F0n0j0C0j0r0v0 0A0i0Q1U0n0n0s0x27121=0A1a0p1S2k1P1R1Q1y0t1@0%1t0A1,241x1i1k0Y1E2u0v2w0A0j2A1x0C2d1a2i2k2O0/1X282C1(2H0n0?0E0,0L2h2S0-2R1?2U1F2W2Y0,0N2$1Y2(2i2t012-0H2Z040g2;2j0.2@2+0%2`2|0K2 2?2S2^350,0O38313a332_0j2X2{0,0w3f2)2T1m2,3k2.040o381d2M122A2n0t1R2s3i0x2I1:1a3C1b3A2Q132%053I0Q2N3h3s0%0u0A0,0y210b380i3q3b3!040?1S3)3+3i3Z0,0v0b230n0c3;323X2_0,0r0M3|3p3 2D010u0,0Q0y3~3W480A0y0,0?0y102f0v104e2*400+040h3y472V0,0m4w4f1(4t0e4q3r484t0z3f0i4M3*4x1F4a040v4d3Q2=4O4C2,4z4G2^0j0,020l0c0d4#3i0b0v0,0k4-4s0,4K4V304N4|4X4r4g0,0G4?484%040q534y0443454`3V4 4D0,4v5d3=403-4A5j4P0%4E4L4N5k484R0s0V0s581F4J5s4}4~4H59525d5F4$0,575J5u1(4/2!5D5K3?0,2d0c0D0n115O5p41045I2O0.0p3T0s2k2L5/3B1j3D2n2q2l0H1A5=0p3C5,0Q0S0U0r04.
Exercice 5

Écrit le script d'une fonction d'appel mafonction() qui :

  • prend pour agument longueur et largeur
  • renvoie une False si la valeur d'un des paramètre est négative.
  • renvoie le périmètre du rectangle sinon.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(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

.128013m8+t;)v3( ,o*0gr7/=sedki6cf:nhpulPyabS4125F050w0v0e0K0y0H0u0k0A0H0K0u0u0t010e0y0F010406050u0G0b0b0K0q0J040M0m0H0G0,0m0D050s0?0^0`0|0;0F04051c151f0s1c0;0w0y0h0!0$0(0*0E0y0p0E0H1t0E0e0/050V0L0H0v1o0%0)011s1u1w1u0e1C1E1A0e0q1d0e0E0!0 0u0F0K0D0*0P011G1q010B0X0v0D0K0b0v1A1Z1#1*1I1-1E1:1=0/0a0k0I0q0m0F0m0u0y120D0k0T1X0q0q0v0A2a151^0D1d0s1V2n1S1U1T1B0w1`0*1w0D1/271A1l1n0#1H2x0y2z0D0m2D1A0F2g1d2l2n2R0=1!2b2F1+2K0q0_0H0/0O2k2V0:2U1_2X1I2Z2#0/0P2)1#2+2l2w012:0K2$040i2@2m0;2`2.0*2}2 0N322_2V2{380/0Q3b343d362|0m2!2~0/0z3i2,2W1p2/3n2;040r3s353v373x3p040c3b1g2P152D2q0w1U2v3l0A2L1?1d3N1e3L2T162*053T0T2Q3k3D010x0/0T0B3b0k3t3e0B0/0_0B132i0y133=3@3l0.040j3J3C2G2|0/0H130p0G0v0G0q473+49440l41482Y4b0`0p4g4i3#2^423,440g4o4k1+440C3i0k4I3?4p1I3.040y3;4w2m4K4D2/4b4d4f4h4C2-3,0m0/020H0e0f4!3u490b0y0/0o4-2{4F4H4J4{4y494N2g0e4h144R044T4#4~0A0/0R2~0u0v4`4I4}1+4N0v1w4Q2R564.4q040$0q4t4Z545o2{4%044)4+4@3l4:4=5D4z0/4G54064{4|4L0*4 0U525H585a5c5e5L5O4U5Q0/5k5d5U4E5J5f5N5h4V040F0v0q0y1=1S5Y5n5/0*5z0t5*1I5F042?545}015z0n4j575q4c0D4e4u615~0/0d6i0163652T5P680/6a666r0D4r5t6h5Z5N5g6r5R510q535|6w0/5=5@5_2g3s0s3(0v2n2O6T3M1m3O2q2t2o0K1D6W0s3N0;6*0U0W0Y04.