Les tableaux
👨🏫 Introduction
Objectif
Vous avez jusqu'à présent travaillé uniquement avec les types primitifs du langage Python : les booléens, les entiers, les flottants et les chaînes de caractères. Vous allez maintenant étudier votre premier type construit : les tableaux.
Un type construit est un type de données capable de contenir plusieurs valeurs.
Les productions réalisées dans le cadre de ce TP seront à rendre en fin de séance :
- Envoyer obligatoirement vos fichiers sous forme d'une archive au format ZIP (et non 7zip ou 7z)
- Effectuer le rendu uniquement depuis l'application Exercices de l'ENT, via l'exercice intitulé [6TP1] Rendu
Préparation
Afin de garder organisées les productions réalisées en TP, mettre à jour l'arborescence NSI selon l'ordinateur utilisé :
💻 Ordinateur portable
- Lancer l'explorateur de fichiers
- Se rendre dans le dossier Documents
- Créer le dossier
NSIs'il n'existe pas - Dans le dossier
NSI, créer le dossierchapitre_06 - Dans le dossier
chapitre_06, créer le dossiertp1_tableaux
🖥 Ordinateur fixe des salles informatiques
- Depuis le bureau, cliquer sur l'icône intitulée Zone personnelle
- Créer le dossier
NSIs'il n'existe pas - Dans le dossier
NSI, créer le dossierchapitre_06 - Dans le dossier
chapitre_06, créer le dossiertp1_tableaux
Téléchargement des fichiers
Pour effectuer ce TP, il est nécessaire de télécharger certains fichiers :
- Télécharger le fichier ZIP contenant les fichiers du TP : 📦 télécharger
- Ouvrir le fichier ZIP
- Copier/coller tous les fichiers dans le dossier
NSI\chapitre_06\tp1_tableaux
✨ Partie 1 - Découverte des tableaux
Exercice 1 - Expérimentation
Dans la console Python, identifier les commandes permettant de répondre aux points listés ci-après.
Les commandes trouvées devront être reportées dans le fichier ex1_console.py.
- Affecter à une variable nommée
premiers, un tableau contenant les nombres premiers de 2 à 17 inclus - Vérifier le contenu de la variable
premiers - Obtenir la taille du tableau
premiers - Obtenir la valeur d'indice 2 du tableau
premiers - Obtenir la valeur du 4ème élément du tableau
premiers - Obtenir la valeur du dernier élément du tableau
premiersen utilisant la fonctionlen() - Affecter la valeur
101au premier élément du tableaupremiers
Exercice 2 - Génération d'un tableau
Vos observations et conclusions seront à rédiger sous forme de commentaires Python dans le fichier nommé ex2_generation.py.
Génération d'un tableau
Tester les deux expressions ci-dessous dans la console Python :
# Première expression
[0] * 4
# Seconde expression
[0, 1] * 4
Quel est l'effet de l'opérateur * entre un tableau et un entier ?
Exercice 3 - Stockage en mémoire
Écrire dans le fichier ex3_stockage.py le programme Python correspondant aux instructions ci-dessous.
Attention, n'exécuter le programme que lorsque cela est explicitement demandé.
- Affecter à une variable
v1la chaîne de caractères"A" - Affecter à une variable
v2la variablev1 - Affecter la chaîne de caractères
"B"à la variablev2 - Afficher la valeur des variables
v1etv2à l'aide d'un unique appel à la fonctionprint() - Ajouter en commentaire la réponse à la question suivante puis exécuter le programme
Quelles valeurs anticipez-vous pour les variables v1 et v2 ?
- Continuer le programme en affectant à une variable
t1un tableau contenant les 3 premières lettres de l'alphabet (attention, une seule lettre par élément du tableau) - Affecter à la variable
t2la variablet1 - Affecter la chaîne de caractères
"D"au premier élément de la variablet2 - Afficher la valeur des variables
t1ett2à l'aide d'un unique appel à la fonctionprint() - Ajouter en commentaire la réponse à la question suivante puis exécuter le programme
Quelles valeurs anticipez-vous pour les variables t1 et t2 ?
Exercice 4 - Visualisation de la mémoire
Vous n'arrivez pas à interpréter le résultat de l'exercice précédent ? Afin de comprendre ce qui se déroule en mémoire, se rendre sur le site www.pythontutor.com. Choisir ensuite le langage Python, copier/coller le code ci-dessous et visualiser l'exécution pas-à-pas.
v1 = "A"
v2 = v1
v2 = "B"
t1 = ["A", "B", "C"]
t2 = t1
t2[0] = "D"
Quelle explication donnez-vous maintenant au phénomène observé pour stockage en mémoire ?
Répondre via un commentaire à la fin du fichier ex3_stockage.py.
🚗 Partie 2 - Parcours des tableaux
Exercice 5 - Parcours simples
Soit trois tableaux t1, t2 et t3 :
t1 = ['(\\(\\','(-.-)','c(")(")']
t2 = ["'___'","(0,0)","/)_)",' ""']
t3 = [" __", "<(o )___", " ( ._> /", " `---'"]
Nous souhaitons afficher le contenu de ces tableaux selon trois parcours différents :
le parcours par valeur, le parcours par indice à l'aide d'une boucle bornée et une boucle non bornée.
Le code devra être saisi dans le fichier ex5_parcours.py, les tableaux y sont déjà présents.
🛠 Mise en pratique
- Afficher les valeurs du tableau
t1en utilisant un parcours par valeur. - Afficher les valeurs du tableau
t2en utilisant un parcours par indice à l'aide d'une boucle bornée. - Afficher les valeurs du tableau
t3en utilisant un parcours par indice à l'aide d'une boucle non bornée.
Exercice 6 - Fonction somme
Nous souhaitons disposer de la fonction somme ayant pour paramètre un tableau d'entiers nommé entiers.
Cette fonction calcule et renvoie la somme des entiers du tableau.
>>> somme([1, 2, 3])
6
🛠 Mise en pratique
- Écrire le code de la fonction dans le fichier
ex6_fonction.py - Écrire la docstring de la fonction
- Écrire le(s) doctest(s) que vous jugerez pertinents
- Écrire le code de lancement des doctests (le reprendre des précédents travaux pratiques)
🧠 Partie 3 - Problèmes
Les exercices de cette partie sont liés. L'ensemble du code devra être écrit dans un seul et unique fichier.
Exercice 7 - Les températures
En région parisienne, les températures moyennes en degrés, de janvier à décembre 2021, étaient les suivantes :
| J | F | M | A | M | J | J | A | S | O | N | D |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 4,6 | 6,5 | 5,6 | 10,0 | 11,3 | 14,4 | 15,7 | 17,6 | 14,5 | 10,3 | 7,3 | 5,2 |
🛠 Mise en pratique
Nous souhaitons étudier ces données en Python. Pour cela, les températures seront stockées sous forme d'un tableau de flottants.
- Créer un nouveau fichier Python
- Créer le tableau
temperatures_2021contenant l'ensemble des températures moyenne de 2021. - Enregistrer votre code dans un fichier nommé
meteo.py
Exercice 8 - Rapport des températures
Nous souhaitons afficher les températures à l'écran de la manière suivante :
Janvier : 4.6
Février : 6.5
[...]
Novembre : 7.3
Décembre : 5.2
🛠 Mise en pratique
- Écrire une fonction
rapportprenant un tableautemperaturesen paramètre - Ajouter au corps de la fonction
rapport, le tableaumoiscontenant le nom de chaque mois de l'année :
["Janvier", "Février", ..., "Novembre", "Décembre"] - Ajouter un appel à la fonction
rapportavec pour argument le tableau des températures de l'année 2021 - Ajouter au corps de la fonction rapport le code nécessaire pour n'afficher que les mois de l'année (donc sans les températures)
- Vérifier le bon fonctionnement de l'ensemble
- Modifier le code d'affichage des mois pour y ajouter la température propre à chacun. L'affichage doit être similaire à celui présenté en début d'exercice.
Exercice 9 - Moyenne annuelle
Nous souhaitons calculer la température moyenne annuelle. À cet effet, voici l'algorithme de calcul d'une moyenne à partir d'un tableau d'entiers ou de flottants :
Entrée : un tableau d'entiers ou de flottants tab
Sortie : le résultat du calcul de la moyenne
Début
| total ← 0
|
| pour chaque valeur v du tableau tab faire
| | total ← total + v
| fin pour chaque
|
| renvoyer total / taille(tab)
Fin
🛠 Mise en pratique
- Écrire une fonction
moyenneimplémentant cet algorithme. - Modifier la fonction
rapportpour à ajouter la ligne « Température moyenne annuelle : t » où t est la température moyenne renvoyée par la fonctionmoyenne
Exercice 10 - Maximum
Nous souhaitons connaître la température moyenne la plus élevée sur l'année. Pour cela nous aurions besoin d'une fonction renvoyant le maximum (la plus grande valeur) d'un tableau dont l'algorithme reste à définir :
Entrée : un tableau d'entiers ou de flottants tab
Sortie : le maximum
Début
|
| ?
|
| renvoyer ?
Fin
🛠 Mise en pratique
- Écrire un algorithme permettant de trouver la plus grande valeur d'un tableau non vide d'entiers ou de flottants
- Écrire une fonction
maximumimplémentant votre algorithme en ajoutant votre algorithme à la docstring. - Modifier la fonction rapport de façon à ajouter la ligne « Température moyenne maximale : t » où t est la température maximale renvoyée par la fonction
maximum
Exercice bonus - Nombres premiers
Vous avez terminé les travaux pratiques ? Écrire la fonction premiers qui prend en paramètre un entier n et qui renvoie un tableau contenant les n premiers nombres premiers.
>>> premiers(5)
[2, 3, 5, 7, 11]
📦 Envoi du travail
Création du fichier ZIP
Pour faciliter le partage de plusieurs fichiers et dossiers, il est de regrouper l'ensemble dans un seul fichier au format ZIP. Lire les instructions selon l'ordinateur utilisés :
💻 Ordinateur portable (Windows 11)
- Lancer l'explorateur de fichiers
- Se rendre dans le dossier
NSI\chapitre_06\ - Cliquer une seule fois avec le bouton gauche sur le dossier
tp1_tableauxpour le sélectionner - Cliquer avec le bouton droit sur le dossier
tp1_conversions - Choisir l'option Compresser dans le fichier ZIP
- Nommer le fichier nom_prenom_tableaux.zip
🖥 Ordinateur fixe des salles informatiques (Windows 10)
- Lancer l'explorateur de fichiers
- Se rendre dans le dossier
NSI\chapitre_06\ - Cliquer une seule fois avec le bouton gauche sur le dossier
tp1_tableauxpour le sélectionner - Cliquer avec le bouton droit sur le dossier
tp1_conversions - Choisir l'option Envoyer vers puis Dossier compressé
- Nommer le fichier nom_prenom_tableaux.zip
Transmission du fichier ZIP
- Se connecter à l'ENT
- Accéder à l'application Exercices
- Cliquer sur l'exercice [6TP1] Rendu
- Choisir le fichier ZIP créé précédemment pour envoi
- Valider l'envoi du devoir