Aller au contenu

Exercices sur les tableaux

QCM 1⚓︎

Parcours sur les indices ou sur les valeurs ?

On considère un tableau non vide contenant des valeurs quelconques. Indiquer dans chaque cas le bon type de parcours à effectuer.

  • On souhaite déterminer l'indice de la valeur maximale.

    • Parcours sur les indices
    • Parcours sur les valeurs
    • ✅ Parcours sur les indices
    • ❌ Parcours sur les valeurs
  • On souhaite calculer la somme des valeurs.

    • Parcours sur les indices
    • Parcours sur les valeurs
    • ❌ Parcours sur les indices
    • ✅ Parcours sur les valeurs
  • On souhaite créer un nouveau tableau ne contenant que les valeurs de la première moitié de tableau.

    • Parcours sur les indices
    • Parcours sur les valeurs
    • ✅ Parcours sur les indices
    • ❌ Parcours sur les valeurs
  • On souhaite déterminer les deux extrema (minimum et maximum).

    • Parcours sur les indices
    • Parcours sur les valeurs
    • ❌ Parcours sur les indices
    • ✅ Parcours sur les valeurs
  • On souhaite élever au carré toutes les valeurs du tableau en écrivant les nouvelles valeurs dans le même tableau. Par exemple [2, 3, 4] deviendrait [4, 9, 16].

    • Parcours sur les indices
    • Parcours sur les valeurs
    • ✅ Parcours sur les indices
    • ✅ Parcours sur les valeurs avec une liste en compréhension : tableau = [x * x for x in tableau]

Les notes d'Alice - Saison 1⚓︎

bulletin

1. Alice veut créer la liste des notes qu’elle a obtenues ce trimestre en NSI.
Ces notes ne sont pas forcément des nombres entiers.
Ecrire une fonction qui demande de saisir les notes une par une, et qui renvoie liste_notes, la liste des notes qu’elle a obtenues.

Astuce 1

Vous pouvez prendre en paramètre de la fonction le nombre de notes à saisir.

Astuce 2

vous pouvez initialiser liste_notes = [], puis ajouter dans la liste les notes une par une avec une boucle.

Compléter le code

###(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

Solution
🐍 Script Python
def creation_liste(n):
    """
    n est un entier donnant la taille de la liste à saisir
    La fonction renvoie la liste saisie
    """
    liste_notes = []
    for i in range(n):
        note = float(input("saisir votre note : "))
        liste_notes.append(note)
    return liste_notes

2. Créer le programme qui demande la saisie du nombre de notes, crée la liste des notes, affiche la plus petite note, et la plus haute.
💡 Indication : tester les fonctions min et max.

Vous pourrez utiliser la fonction écrite en question 1 (si vous l'avez bien exécutée), sans l'écrire à nouveau.

Ecrire le code ci-dessous

###(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

Solution
🐍 Script Python
n = int(input("nombre de notes à saisir : "))
notes = creation_liste(n) # de type liste
note_mini = min(notes)
note_maxi = max(notes)
print("note minimale :  ", note_mini)
print("note maximale :  ", note_maxi)

3. Créer une fonction moyenne qui prend en paramètre une liste lst et renvoie la moyenne des éléments de cette liste.

Compléter le code

Compléter le script pour qu’il affiche la moyenne des notes saisies par Alice. La fonction creation_liste est dans du code caché, il ne faut pas l'écrire.

###(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

Solution
🐍 Script Python
def moyenne(lst):
    """
    Cette fonction renvoie la moyenne de la liste lst
    """
    somme = 0  #initialisation de la somme des notes
    for note in lst:  # calcul de la somme des notes avec une boucle
        somme = somme + note
    moyenne = somme/len(lst)  # len(liste) est le nombre de notes
    return moyenne

n = int(input("nombre de notes à saisir : "))
notes = creation_liste(n)
print(notes)  
moyenne_notes = moyenne(notes)
print(moyenne_notes)

Exercices du site "CodEx"⚓︎

Remarque

Ne faire que les exercices dont les liens sont donnés ici, car certains se trouvant sur le menu de gauche nécessitent des connaissances que nous n'avons pas encore vues.

Recherche d'indice - non guidé

Il s'agit de déterminer l'indice de la plus petite valeur dans un tableau non-vide.

Indice du minimum d'un tableau

Recherche de valeur - non guidé

La recherche de la valeur maximale dans un tableau. Classique.

Maximum

Lecture dans un tableau - non guidé

On donne les altitudes des différentes étapes d'une course en montagne. On demande quel est le dénivelé positif total.

Dénivelé positif

Comparaison d'éléments consécutifs - non guidé

Le tableau fourni est-il trié ?

Est trié ?

Modification d'un tableau⚓︎

Cet exercice est à réaliser pour introduire la notion "Affectations et listes" de la section suivante.

On se donne un tableau, une valeur cible et une valeur de remplacement et il faut parcourir le tableau et remplacer la cible par la nouvelle valeur.

Écrire la fonction remplacer prenant en argument :

  • une liste d'entiers valeurs
  • un entier valeur_cible
  • un entier nouvelle_valeur

Cette fonction doit renvoyer une nouvelle liste contenant les mêmes valeurs que valeurs, dans le même ordre, sauf valeur_cible qui a été remplacée par nouvelle_valeur.

⚠️ La liste passée en paramètre ne doit pas être modifiée.

Exemples
🐍 Console Python
>>> valeurs = [3, 8, 7]
>>> remplacer(valeurs, 3, 0)
[0, 8, 7]
>>> valeurs
[3, 8, 7]
🐍 Console Python
>>> valeurs = [3, 8, 3, 5]
>>> remplacer(valeurs, 3, 0)
[0, 8, 0, 5]
>>> valeurs
[3, 8, 3, 5]
Compléter

###(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

.127797.8217.128013.128073)bh/pfj1qi5_udv-y8wLe3,]SCl=RT [mUgnkPa!;o*:9ètàêsO(r6z27A4xc.é0050r0y0Y0Q0n0E0#0I0:0E0Q0#0#0F010Y0n0i010406050#0q0K0K0Q0(0u040C0T0E0q170T0N0I020Q0K0i0S0I0G0y1h0(0m0q0y0#050h1e1g1i1k1c0i04051P1I1S0h1P1c0r0n0s0 111315110N0M0q0Q0M0y0t0i0u0Y0g1r0I0g0n0M0g0E1{0g0Y1a050`0f0E0y1#1214011`1|1~1|0Y2426220Y0(1Q1?0 1n0#0i0Q0N150+01281%010j0|0y0N1v0y222q2s2x2a2A262D0K2F040c0I0P0(0T0i0T0#0n1q1s0^2o0(0(0y0:2!1I2H0N1Q0h1?2:2k2m2l230r2J1(0n0N2C2X221Y1!10292}2 0N0T33220i2)1Q2.2:3g1d2r1s352y390(1h0E220Q1_2)0j15030p0p0:3a0y1~380T0t0o0t0l1a0l1I0Q3h3k1b3j2I3m2a3o3q3s3u0y3w013y3A3C3E303H0t2v040+3N3P2s3R2.2|013W0Q3r1Q3t0g3v3x3z3B0^3*393,0z1a0z3;2-3Q1c3^3U153{3}053 413$433)2~3+3I0.1a0.4c1J4e3S3l1$3V0T3p3|3Y403!423(454r473I0o1a0o4x3g4f3k3_4j4H4n3%443D4N3G3I0)1a0)4T4z4g4C4i4E3X3~3Z3#4#4q3F3,0,1a0,4.3?4V3T4;3`4?4G4^4I4`4p4M4}3I0v1a0v522/1T3e1I332?0r2m2{4h014$321Z1Q3d0y3f3Q4d3?054$5C2I0n0r153z2.3,3K4^5K5M4L4%5f3J2w2N0y5T4$464)5X2:3O4A3_0O1a0^0j5E5l4:36010w1a0I5=5I4B5^0N0j1a2)1w110:0y0(5}5,5u19040%6a5@3n1a0s3|0y0q0(1H4y5F6h2a6d0A5}5|6s4i6j6l6n3A0n250y6g4W6c1a6v6q2/6x6I560N1a390q0s3D260p6k266n6H555^6d0e0V5}1c6M5~0I5S015N3k3,3.4l6:5L6=5U5%6^5Y2E5#4|4s3-220h3O0I7a6O6%6i042)1e0E0`0Y6w6b560T1a0F7l6y016d0J0B6,6$1s6;6?2s483Y7A6~4(7D0I5Z735e75495*047b7c5 2y5.040j4E7r6P601a3D1B2C7k6.7S3_0T5`042~7Z7d3V6A6!6o7y3_6d6+6.6-3i3^7F5O4t7E6|5d5V754u7J726}5$7H857P7R7R7m5^7V0n5;7+8l7e7%2O0N7*3g7,5u7o040F7q8q7s6R046Z6m0(6D6F7{6J047~4U7{836@4P867L894O3H712O8X6 8V8i8j8+8r7@7f1G0q7i0Q8w5D7s8A0;8N6Q1a0Q0i0i2C0r8|6(1a6f6.8-6z046T6V0E6X8I6#987s6)7x9i4W8T7C4*8W8e748Z4+8c8$9s7M9u77798+8y567V3D0#6G9m7?157}9l819n870p840t4 5R9R8f5W4 9w5!9y8Y5(9V3;9D8j993`638:8=8@6r7!2y8`947e8 910N939K7T6t969{8.8t7)a59M1a0e9O8^9Q5T9T5h9W8%8g0t5h9#ak5Wai9+7b9.7V2)0Y6n0N7=a29a7g8;7jad5F0h5H5m5B5o5y1I0Y5raO2_2;0Q6F2:5p1O6/5u640p0j0Q0O0y0p0g7O1A1C1E1G0I8Q5D1V3R333_0Q0r0K1r2Z0n1^0r2s1.0(1a1Oa{a}a 2!0t170Y2i040-2g7)b1aza^aY0x3t1Y0j2A0:aE0=0I2$670Y0I0y0/680:0n67bB0#bA1E000|0Ia%1p0I5A9 2)0I0#0T2~bx272 bR120Ia~br0n680I11b-0nbJ272~b06l0;7a1T3R0haX0@0_0{0}3_0Y1Gc40*2w2V2C15c98G4f1f1C1k0Hc50y0*2-cf1M3R1P0Lb#5K0=271E0n0I0sb+8v0I0Zb-001G3d2ZbIbAb.1e1Z2sc4a=b{1X1Z3_1)1+1-1/1;1?1^2c1}1 21aZ562L2C2E1a2R0C0:0(18bA0P1=1@bm3i5A5~3=5laJ829R5O0)5)6`7F9Y3+d63Kao9%6 dc2w5b4Kda47dh7Pau5/3!a95_5{ds619:650Q678K2D8ods6d979P9L9/8H6B7`a17|6KaA4X7^8J8L26dEdP8E9^8.9c6Wa*9g69dN8O6*aG5?af6}d576ajdf7Hd62vde88dg764_dk9t3Gd_9B7Qat8FdS6n0#0p3:dYdI8A8D8x9.8Gd(6p8RdN9o0N0td67Od89Xe1eq0t49d{7G4}erdi4!d|d^exe48k7s7V7Xd)ehe77:dQ8z7/7;edaB3`0f63b49JdHeWdFdveY042MdW6edve86oebe-0ed,7 8Sd46@d64ud?eFeB0t8b7Kd@f18bdj4oeAdbf2eI9Ddp7:8peOdZ9aeke=d*567ue/eQfn95047weV7-7peg3Q9E7#dK7_dUe#aedI9Ne_ene{7Cd64Qe fadm8!ezdle2fTf84{9zfWfPas9,b`ePflece$dO040Jfq0ne-fvfiee7peR8}9b0T6Ud$6YdLd-6/eoew4+fQfVg68#9$f0fb9vfYgdfSg7f%fB7U9:ax0(c|fAeie:eaf,4zfLage|9U9rghfW9!f4gCew9!ggfRgDe480fH7zfMepd6ar3td9evgSgbapfbangJg9gXdof*dLelgr8_f`fw8Of:fs2y0K0n4ae-6Lf^eWg^5ig{f{5^g 0451g?a3fug35,g5d60WgBgKewhefUgW0thig$hkheg)fj017V29689?6Ngs8/dydA0pdCfhgOf.dGhF5uejg+h1g:56h44bh7aa04g|g-hrh40?e?h29_fyh!h8g=f-5uhXhMg}3_h45jhR7tdXh.h+g_h5f?had3gyfN3J0?hfg%i1gYf5fb0li2d f9i4i9e4ffhu0(hw7Qhyekh%cbh$hNfth)hIhOh`hQh*foh@hVdIh:h-iAg~h`h6ixftf@fAgNaHaJ1V5nb}5yaY1A3B0ib+0*0 270#c=c@0 0n0t0^130q0~0i0qb:0Ic4b;0*0t268{bn5oc00|0#a_cT5ua|a~0Nb01^2~7Xb71Rb9j5j7epbebg0a0Ijj0acR1R040d0I0D3D3tb#0(0=2W9 b$0~0Q0qbR2U250X2O0AbB1s3!0j0_i=f~bA9IjAjS3B1gi!cx0E0b2~bJ0(0q2+bl5|5Hf+0I0FcyhLaI3C7Q0r1rdCbA0^0q0/7J0T0K0~br0j0=2)8vjBjD060K0!2O0I0T0f0k0_b_5Gj?f+1I5H7J0bc5jA0I0qb#d#9e271~b;i{1WaM0sj13456j4bbj*j98Ab8j3baj6bcjh2PbpbV1n1pj*3d2V2XcujK2%2)j)1rjn1P0$3ljw27j^0N0:ktb#jC2kkyb:cPcwbxbXbA0!k{k^0Ik`bUkfkh0YjJk 9I0(3t67kx0Ik60s0T0uk$2r0(b-3t7Xk?2!kBcp04kUbW1o2!jEk!0#k$c=k$kuk|b;cy5Kcv1FcE1^jV0i0E0XcPjCbO6nbBbAcD2O1ebU2Cb$0(3B6ncOb-a;ekbZj+klj;5Hlw6-b~a`kOjelCkLjb0ijdkJ1rbd2Zbg0-1pbUlAkX1^2W136EdVi|l~56cV1,1.1:c`c#1 2e202Ghrc,5Zc/0Ic;c?0ic^msgq5Fc~4Ad01Qd2d/7Bep0,d7gUeuf!9U5XhjmWmSddhnm!d778c*8mdqhE9@dI7/5|h=dwhzlTdz68e-hHm/eWhK7_g,m~f.hU3?gl8.d(fFiDn6hykw9fg2h=6)a?53e`h mRd=etgZ47mSd`gFhgnseD4Jicevnw8*f)hr8GmIhxg.8BineX1ae,nha4m?gthZfKf-g5mSesmUnq3GnWi6gGn#ibfZ9(mXesm*eJnEgtfmh^7ng/n?irdsh,nOh9iqh#040UnKnFh}mP9S6@mSe~npi7nrfcmZn+o9nx5cnvfcnCn715eL7Yn 8.f=orcbeTnGik8Fe*lf1*fGn38Om}d.dIo4n}e^emnUgQmXf$nYocn!fTnug9mS4Qn)n%8!omn/dI8nm.nHn:fD8Jn2oHe%1aisoEf|otiI2y6diKncnI8Co3e:nan}nj2/iMo:6{nmmXgjoRo!9voVnAeqoie0m(gjn.f(nDoIn;gvo@n`nQfro`h8o}o+f_nJoudJned%ngoMhFnVgAg8phgE8do!gIeEok9*pn8,eK7$0}oDp88Op5b|oNpamSgTp9oSmXanpgm(g#pSoWamfdpoilg+n=itpupx9ao_p o{1apzoyhrefp1o-e9e-o?p#o^h|nTpJoOmShpobo!hip;oghlpjnzm(qnpVonhsgnayqbkmqjiNj?aKaWiSkDkFm5kQkK61kMjcl m6jgm92PlJkVlBj*0Q6Vk@kzcPl*lSjw0g2C2Yk+i|k-1sjClfcIjCmibRjDkXkzb,qYq)27lp2o1wq-q/j*jOku5|1B042Vk58?8Ji=68dC2)1IrecQmlj2mnb4mpcYmH1_muc(mxdImzc.2QmCi$mF2SmH6amK3i98mO5JoO0vmTp-gGrSddqr6 rWqun*rZm)5+pX045:dsm;dv62m^66m{n}oGm+7eimn}n5pAm p2bF8Mr|qbpFg17_e?p%p7g4rRnopdhgrSntpPsfd~m%n+sgp`qzav0_qCpDfppvd(nKo)qDpHiEfx040Rfzo~o,n9s1mkn_gm049Hp!q8pqf}f kxs68Jsx1aeMszs7pD7.1aeUsLn8j;q1h?n~pIqG0^2:mKiRkEl|qKb}i~0}04.

Les notes d'Alice - Saison 2⚓︎

bulletin

Les notes d'Alice - Saison 2

1. Alice veut créer la liste des notes qu’elle a obtenues ce trimestre en NSI.
Ces notes ne sont pas forcément des nombres entiers, et il y a des coefficients qui peuvent être différents pour chaque note.
Ecrire une fonction creation_liste_tuples qui prend en paramètres n le nombre de notes, demande de saisir les notes une par une, avec le coefficient associé à chaque note, et qui renvoie liste_notes, la liste des tuples (note, coefficient) .
Nous avons étudié les assertions. Dans cette fonction il doit y avoir une assertion qui vérifie que chaque note saisie est un réel entre 0 et 20 (compris), et une assertion qui vérifie que chaque coefficient saisi est un réel positif.

###(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

Solution
def creation_liste_tuples(n):
    """
    n est un entier donnant la taille de la liste à saisir
    La fonction renvoie la liste des tuples (note, coefficient) .
    """
    liste_tuples = []
    for i in range(n):
        note = float(input("Saisir votre note : "))
        coef = float(input("Saisir le coefficient correspondant : "))
        assert note >= 0 and note <= 20, "la note est entre 0 et 20."
        assert coef >= 0, "le coefficient est positif"
        liste_tuples.append((note, coef))
    return liste_tuples

2. Ecrire un code qui demande la saisie des notes et coefficients, puis affiche la plus petite note, et la plus haute.

La fonction creation_liste_tuples n'est pas à écrire, vous pouvez l'utiliser, elle est en code caché.

💡 Indication : Vous pourrez utiliser les fonctions min et max.

###(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

Solution
n = int(input("nombre de notes à saisir : "))
liste_tuples_notes = creation_liste_tuples(n) # de type liste
liste_notes = [elem[0] for elem in liste_tuples_notes]
note_mini = min(liste_notes)
note_maxi = max(liste_notes)
print("note minimale :  ", note_mini)
print("note maximale :  ", note_maxi)

3. Créer une fonction moyenne qui prend en paramètre lst_notes une liste de tuples (note, coefficient) et qui renvoie la moyenne arrondie à deux chiffres après la virgule, des notes de lst_notes.

Aide pour les arrondis

Exécuter ci-dessous :

###(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

###(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

.128013mg)nkbPha/pf;1oq*i5:_9udvts-y8wL(r6e32,+7S4lc=0 050y0K0A0j0s0S0B0W0T0S0j0B0B0U010A0s0l010406050B0x0b0b0j0I0D040Q0p0S0x0;0p0e050k0{0}0 110_0l04051h1a1k0k1h0_0y0s0z0)0+0-0/0+0e0c0x0j0c0K0C0l0D0A0i180W0i0s0c0i0S1M0i0A0@050!0g0S0K1t0,0.011L1N1P1N0A1V1X1T0A0I1i1H0)140B0l0j0e0/0M011Z1v010m0$0K0e0j0b0K1T1^1`1 1#221X25270@0a0W0h0I0p0l0p0B0s170e0W0Y1?0I0I0K0T2s1a2a0e1i0k1H2F1/1;1:1U0y2c1w0s0e242p1T1q1s0*1!2P2R0e0p2V1T0l2y1i2D2F2,0`1_2t2X202#0I0~0S1T0j1K2y0m0/030v0v0T2$0K1P2!0p0C0o0o3a0@0W0o1a0j2-2:0^2/2b2=1#2@2_2{2}0K2 01313335372S3a3c1}040W0M3h3j1`3l2D2O013q0j2`1i2|0i2~3032340Y3A2#3C0C0L3e0L3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0C0R3e0R3+1b3-3m2;1u3p0p2^3Q3s3U3u3W3y3Z3}3#3 0t3e0t442,3.2:3N3=4e3_3x3Y364k393 0J3e0J4q463/493;4b3r3S3t3v4y3|383$0P3e0P4H3K4s3n4K3O4M4d4O4f4Q3{4j4T3 0E3e0E4Y2E4!482Y4%4c3?3^4g3`4i4A4/3c0w3e0w4@3L4t3:4|4N3@4P4h4z3!4C3c0o0V0@5m594_4u4(4~5g515i4B3$3b5o3g0k3i3,4Z475s4}4w504R4.3~5l3E0o3H5D3J2E1l2*1a2V2I0y1;2N5c4z2U1r1i2)0K2+3k5F5V4z5/2b0s0y0/322D5z3s5_5{525j5~0W2g0K615x543d2F5E4J4{0f0@0Y0m5;5@4`200F3e6k5H5c0e0m0@0b0p0D242R6q6e200?040H6B5b4$0e0@0%0A0v2#0A0K0B6H4#4{6E0d0u6k0_453K5H60015|2:3$3E5f6(4-535O0C1}6526676)625y3 6-5T6r4$6o3F0W756T6m1#0B0y0@020q0x0p0A0n7d7f7h7j7g0n6Z770W6/0v5}3 3(4O7s696=3(6^27684S7A1T706C797b74756M6O7g6R0W6R0A0W0x2R0W1P0B6Q2u1Y0A0x0l1X0(0H6P0K0N1?3u220T0s240A0d7p6#5V3M7s7u3c417x5`6{7z4l821~667E5N88407H6d6I4{7a3e750W0G2|0m182A0s1J2y0e0z0p7^7Y2|6w6y0e7X0Y0(7.0(240W6Q250e7U340b0l7#8G7;0m7?7^8O6S7}3l8#6%856*1`3$4n848c6;8e4n7C6`6:634m8g6l3N8k7M0W7m7l7e7n917o8#6!2.7 8)7t6+4D5 9b875k0C4E8?8/8_3c4E6c8 714{6K040B0p0}0K7P6Q8!2,0W9s200p0@0U6k9E7J0/0b0s0@0V7|994t809d3c4V8.867F8e4V9l9!8d9i9Y3I8m9L8i2?0@9w9y3y3u9C3k9/6U9G9I9K9F1#9O9Q9S5:9a61810C4;9Z8^6}3c4;9(ad6aab9-8ma10/6g048q0Ia09M016E6G8%au9u7.7q5c6E0Nat9:3p0@343uaC4$6WaG9}1#0p732QaP783;6L7!9A6RaM6V0@6Y977q9V8+3 56ac6|6a56aha;6=a/al9.76az9=9x27a!9`3K9|aW019H049J8#b54ua 9@8IaV3Nb80Obh6s0@aBayaH0/b80ra$9;04aK6jbb98a69U9ba95m9f9mae3a5na@9h5z5n9qa|ama~9vb09zbxb32Ebc5cb8ba9Dan3Obeb1bWbl4$bjb-9taJ0paLbza+bD9W3CbG9)8:9i5AbL9#c00o8{9.b(9u2y0{0S0!0Ab:9~b9cf3p0g0@2m7W0ybu1#awcpaXbTbf7QbX8|b!0@0kcsb)cub+b?0mcxb(aEci9N9P045S9TaQ0/aOa*bp5^b`a-5Pb}ai6=5R8a6_bH6ac%bPbRbq01ap2y7(0I19bbc8cl6R0xcc0jcecU2.0k5?5W5.5Y5+1a0A5#d92L2G0j1Wd60k5Z6!0Y0!0$0B04.

4. Ecrire ci-dessous un seul script structuré qui rassemble toutes les questions :

  • Saisie de la liste des tuples
  • Affichage de la note minimale et de la note maximale
  • Affichage de la moyenne arrondie à deux chiffres après la virgule.

Les fonctions creation_liste_tuples et moyennene sont pas à écrire, vous pouvez les utiliser, elles sont en code caché.

###(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

Solution
n = int(input("nombre de notes à saisir : "))
liste_tuples_notes = creation_liste_tuples(n) # de type liste
liste_notes = [elem[0] for elem in liste_tuples_notes]
note_mini = min(liste_notes)
note_maxi = max(liste_notes)
print("note minimale :  ", note_mini)
print("note maximale :  ", note_maxi)
resultat_moyenne = moyenne(liste_tuples_notes)
print("La moyenne est : ", resultat_moyenne)

Soleil couchant⚓︎

Recherche de maxima relatifs - non guidé

Combien de bâtiments sont éclairés par le soleil couchant. Le sujet est original mais l'algorithme très classique.

Soleil couchant

Recherche d'indices⚓︎

Auteur : Sébastien HOARAU

Ecrire une fonction qui renvoie la liste croissante des indices d'un certain élément dans un tableau.

Il est recommandé d'utiliser une liste en compréhension.

Écrire une fonction indices qui prend en paramètres un entier element et un tableau entiers d'entiers. Cette fonction renvoie la liste croissante des indices de element dans le tableau entiers.

Cette liste sera donc vide [] si element n'apparait pas dans entiers.

On n'utilisera ni la méthode index, ni la méthode max.

Exemples
🐍 Console Python
>>> indices(3, [3, 2, 1, 3, 2, 1])
[0, 3]
>>> indices(4, [1, 2, 3])
[]
>>> indices(10, [2, 10, 3, 10, 4, 10, 5])
[1, 3, 5]
Compléter ci-dessous

###(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

.128013mg)nkbPha/pf;1oqi:5_udvts-ywLV(r6e32,]S4lc=Ré. [050w0I0y0j0r0P0z0V0Q0P0j0z0z0R010y0r0l010406050z0v0b0b0j0G0B040N0p0P0v0;0p0e0V020j0b0l0n0V0S0I0~0G0q0v0I0z050k0{0}0 110_0l04051w1p1z0k1w0_0w0r0x0)0+0-0/0+0e0c0v0j0c0I0A0l0B0y0i180V0i0r0c0i0P1#0i0y0@050!0g0P0I1I0,0.011!1$1(1$0y1.1:1,0y0G1x1W0)140z0l0j0e0/0K011=1K010m0$0I0e1c0I1,27292e1@2h1:2k0b2m040a0V0h0G0p0l0p0z0r17190Y250G0G0I0Q2H1p2o0e1x0k1W2T2123221-0w2q1L0r0e2j2E1,1F1H0*1?2%2)0e0p2-1,0l2M1x2R2T2}0`28192/2f2?0G0~0P1,0j1Z2M0m0/030u0u0Q2@0I1(2=0p0A0o0O3o0@0o1p0j2~310^302p331@3537393b0I3d013f3h3j3l2*3o3q2c040K3u3w292T2`0I2T2-2W0w232#3B0/3i0Y2,1G1x3Y2|3x2Q3?3,3Z3z190r0w0/3g2R3P3r1x3a3}3 3L0Y3N2?420o2d2u0I473_4a3n3p433U3{2$010f0@0Y0m3@3W4o3*010C0@0V4v2S4x1J3C0m0@2(1F0Q1n4D3=3A4G0/0?040F4O4F2:010e0@3k1i2j0y4W2R4p4T0L4O4C4+4y4!044(0r0I0G1o1q3?4;4R014T0d0s4O0_4}4w4+46014031423R05453~5b483k2(3O4l2c0V4f4h3M5m4b5o1,0k3v0V5A4:314p4r042M0y0v0G0e4/4X2f4T0W4*5D4=4J5M4 4Y5F0m0p0G5V5S504?0r5$4Q4Y0p4A042(5+325(0g0@0G291R5R5,5O0@4V574E5W345^042t5}5?4Y4T612 643C4#0e0;4`4|6e5%6b0@0d0d5=5E4J4u62045C5~6g4@6i4_4{694,0@5Q6w5N6A5*6J6f4S0@0M6s4y0p0@0R0R6S5(4#1:2v6i6F4y4T6R6w562 0k3_3X2{1p3#1p0y3%6^2Z2U0j1/3`0k3#1v4P6a2f2M0b0u0m0j0f0I0u0i0J0@1h1j1l1n0V546J1C3y1w0D3a0z14160r1Y2`2C2E0T1;0Q0r0A0Y0-0v0(1n0y0V0+0V0x6k7x192M3i1s0e0w7C0U1A7q040E7R1Y0F0b0p2(0(0T0P0T0c290y0I0d0V0z290(7V2`0T0i2j2F1Y2J1(0z7^7m7#1E1G4p1M1O1Q1S1U1W1Y1_1%1)1+744p2s2j2l0@2y0N0Q0G0=7M0h1V1X5L6J3;3{3V4E6:4o5a5c293o0t4m5h5s495u4k8R4d5q2l8U5l3m8Q3r3G3I3K4i8W8)4d2T3v6K0/5F4t6(505/4C6N6n344I5:7X0r4M6l4~901@6c8{4Y4?4$6$4)8 6z6P044.6w6y756A4^6k9c5 0453556F8N0u410o8R5f8T5j8.8(9C0A5p5r9G5t9I9D2d0i3c3e3g9H5n9Q8=6x5B8@4Z0@2D2F2H973W9o4p6U046X9n9$5P6+2}6-982p9z9B8R7g440V9z9W5va04e8#9N8V9P0A7g8+9U5k4j8)a13U5B9.4y5Y5!6Y9d5U9?6O015.4J8F2}an5@5_5{0I9t9a60aG0/0e66689i9p9k6d9|aP9%6B6j6EaO6G9v9w6,9y5i8O0e8)0O3Fa49O9X0Aa,8!2v8$ai9Ja=9S3Haga58Xa;5x5zam9#av5F0r6vaA9$9e6C9saY6)6HaJaU6M6m9j516Qar2f9:6Wbp9q6#4(bi4T7n9`a%479 0A0ta-a(ah8/9JbFa?4gaa8%a:bLa|8,9Va/a6bEb29!b4b4bb9(2E2G7S9,63990/9:7!bf6Z040j0l0l2j0wbxaIb;as5:b|9v9xaY9~5d9J0HbGa^bJ8Rc8bMcaaccdbSa~bVb0c89Zam9$5F5H5Jaz3xaBb 9)b)18b+3y7o8L1C6=713/560Y0!0$0z04.

Parcours par indice ou par élément⚓︎

Parcours par indice ou par élément : remise à zéro

Cet exercice est un exercice "papier" à ne réaliser que par écrit.

1. Que vaut ma_liste si on exécute le code suivant ?

ma_liste = [1, 2, 3]
for element in ma_liste:
    element = 0
Solution

On a toujours ma_liste = [1, 2, 3]

2. Expliquer le résultat du 1.

Solution

On a le déroulé suivant :

ma_liste = [1, 2, 3]
element = 1
element = 0
element = 2
element = 0
element = 3
element = 0
On voit que ma_liste n'a pas été modifié.

3. Que vaut ma_liste si on exécute le code suivant ?

ma_liste = [1, 2, 3]
for i in range(3):
    ma_liste[i] = 0
Solution

On a après exécution ma_liste = [0, 0, 0]

4. Expliquer le résultat du 3.

Solution

On a le déroulé suivant :

ma_liste = [1, 2, 3]
i = 0
ma_liste[0] = 0
i = 1
ma_liste[1] = 0
i = 2
ma_liste[2] = 0
On voit que ma_liste a été modifié, et après exécution ma_liste = [0, 0, 0]

Auteurs des exercices: Nicolas Revéret, Jean-Louis Thirot, Sébastien Hoareau et Mireille Coilhac