QCM☘
Cocher la ou les bonnes réponses.
QCM☘
Soit la table de données suivante :
Nom | Prénom | Date de naissance |
---|---|---|
Mitterand | 1981-1995 | 1916 |
Chirac | 1995-2007 | 1932 |
Sarkozy | 2007-2012 | 1955 |
Hollande | 2012-2017 | 1954 |
Macron | depuis 2017 | 1977 |
Quels sont les descripteurs de ce tableau ?
- "Nom", "prénom" et "Date de naissance"
- Mitterand, Chirac, Sarkozy, Hollande, Macron
- Mitterand, 1981-1995, 1916
- il n'y en a pas
Réponse
"Nom", "prénom" et "Date de naissance"
QCM☘
Dans un fichier au format csv, les données peuvent être séparées:
- par des virgules
- par des tabulations
- par des points-virgule
- par des 8
Réponse
- par des virgules
- par des tabulations
- par des points-virgule
- par des 8
Toutes ces réponses sont correctes. Vous pouvez vérifier cela en ouvrant un fichier csv avec LibreOffice et en testant ces différents choix à l'aide du menu qui vous est présenté.
QCM☘
Un fichier csv peut être ouvert avec:
- le logiciel LibreOffice Calc
- le logiciel microsoft excel
- l'éditeur de texte geany
- spyder
Réponse
- le logiciel LibreOffice Calc
- le logiciel microsoft excel
- l'éditeur de texte geany
- spyder
QCM☘
Pour ouvrir le fichier aha.csv en lecture avec le module csv, on utilise:
- with open('aha.csv', 'w', newline='')
- with open('aha.csv', newline='')
- with open(aha.csv, newline='')
- with open('aha', newline='')
Réponse
- with open('aha.csv', 'w', newline='')
- with open('aha.csv', newline='')
- with open(aha.csv, newline='')
- with open('aha', newline='')
On rappelle que 'w' est l'abréviation de write (ouverture en écriture).
QCM☘
Pour exploiter notre fichier personnes.csv, on utilise le script suivant:
import csv
with open('personnes.csv', newline='') as fichier:
lecture = csv.reader(fichier, delimiter=',')
print(lecture[0])
On obtient:
- l'affichage de la ligne d'entête du fichier
- l'affichage de la première ligne de données
- un message d'erreur
- l'affichage de toutes les lignes du fichier
Réponse
- l'affichage de la ligne d'entête du fichier
- l'affichage de la première ligne de données
- un message d'erreur
- l'affichage de toutes les lignes du fichier
On obtient l'erreur TypeError: '_csv.reader' object is not subscriptable
. On peut parcourir les éléments (en d'autres termes, on peut itérer sur les lignes du fichier) avec un for ligne in lecture:
mais on ne peut pas accèder directement aux éléments comme avec une liste.
QCM☘
On utilise encore le même fichier personnes.csv.
Le code de la fonction ci-dessous:
import csv
# ouverture en lecture du fichier csv
with open('personnes.csv', newline='') as fichier:
# on crée un objet DictReader
lecture = csv.DictReader(fichier, delimiter=',')
# transfo en liste
lignes = list(lecture)
def NeApres(annee):
"""
annee -- une année
renvoie la liste, sans doublon, des noms de personnes
nées après annee.
>>> NeApres(2000)
['Auboisdormant', 'Ception', 'Gator', 'Bistraux', 'Verserre', 'Dejeu']
"""
liste = []
for personne in lignes:
if personne['anneeNaissance'] > annee:
if personne['nom'] not in liste:
liste.append(personne['nom'])
return liste
# test
print(NeApres(2000))
- est correct
- n'est pas correct
Réponse
- est correct
- n'est pas correct
On cherche à comparer le paramètre annee
de la fonction (qui est un int) avec les données personne['anneeNaissance']
qui sont chargées en tant que chaîne de caractères.
On obtient l'erreur:
TypeError: '>' not supported between instances of 'str' and 'int'
Il faut penser à convertir (transtyper) la donnée. Par exemple comme suit (utilisation de int
en ligne 26 de ce code):
import csv
# ouverture en lecture du fichier csv
with open('personnes.csv', newline='') as fichier:
# on crée un objet DictReader
lecture = csv.DictReader(fichier, delimiter=',')
# transfo en liste
lignes = list(lecture)
def NeApres(annee):
"""
annee -- une année
renvoie la liste, sans doublon, des noms de personnes
nées après annee.
>>> NeApres(2000)
['Auboisdormant', 'Ception', 'Gator', 'Bistraux', 'Verserre', 'Dejeu']
"""
liste = []
for personne in lignes:
if int(personne['anneeNaissance']) > annee:
if personne['nom'] not in liste:
liste.append(personne['nom'])
return liste
# test
print(NeApres(2000))
QCM☘
On utilise encore le même fichier personnes.csv.
On rappelle le contenu de ce fichier ci-dessous.
contenu du fichier
id_personne,nom,prenom,anneeNaissance
1,Labrosse,Adam,2000
2,Gemlamorte,Adèle,1985
3,Auboisdormant,Abel,2001
4,Etpan,Ahmed,1975
5,Térieur,Alain,1999
6,Térieur,Alex,1976
7,Proviste,Alain,2000
8,Verse,Alain,1970
9,Ception,Alex,2001
10,Ainé,Ali,1975
11,Gator,Ali,2001
12,Bistraux,Alonzo,2001
13,Patamob,Alphonse,1970
14,Ficulté,Andy,1980
15,Rectdustade,Andy,2000
16,Verserre,Annie,2001
17,Boréal,Aurore,1985
18,Nor,Paul,1985
19,Dejeu,Bernadette,2001
20,Dajeun,Bruno,1984
21,Hiple,Candice,2000
Avec le code suivant:
import csv
# ouverture en lecture du fichier csv
with open('personnes.csv', newline='') as fichier:
# on crée un objet reader
lecture = csv.reader(fichier, delimiter=',')
# on transforme l'itérateur en liste:
lignes = list(lecture)
print(lignes[1][2])
l'affichage obtenu est:
- 2
- Adam
- nom
- Labrosse
Réponse
- 2
- Adam
- nom
- Labrosse
QCM☘
On utilise encore le même fichier personnes.csv.
On rappelle le contenu de ce fichier ci-dessous.
contenu du fichier
id_personne,nom,prenom,anneeNaissance
1,Labrosse,Adam,2000
2,Gemlamorte,Adèle,1985
3,Auboisdormant,Abel,2001
4,Etpan,Ahmed,1975
5,Térieur,Alain,1999
6,Térieur,Alex,1976
7,Proviste,Alain,2000
8,Verse,Alain,1970
9,Ception,Alex,2001
10,Ainé,Ali,1975
11,Gator,Ali,2001
12,Bistraux,Alonzo,2001
13,Patamob,Alphonse,1970
14,Ficulté,Andy,1980
15,Rectdustade,Andy,2000
16,Verserre,Annie,2001
17,Boréal,Aurore,1985
18,Nor,Paul,1985
19,Dejeu,Bernadette,2001
20,Dajeun,Bruno,1984
21,Hiple,Candice,2000
Avec le code suivant:
import csv
# ouverture en lecture du fichier csv
with open('personnes.csv', newline='') as fichier:
# on crée un objet DictReader
lecture = csv.DictReader(fichier, delimiter=',')
lecture = list(lecture)
print(lecture[1]['nom'])
on obtient l'affichage:
- une erreur
- nom
- Labrosse
- Gemlamorte
Réponse
- une erreur
- nom
- Labrosse
- Gemlamorte
QCM☘
On utilise le fichier villes.csv.
Avec le code suivant:
import csv
# ouverture en lecture du fichier csv
with open('villes.csv', newline='') as fichier:
# on crée un objet DictReader
lecture = csv.DictReader(fichier, delimiter=',')
lecture = list(lecture)
liste = []
for ville in lecture:
if int(ville['2016']) > 90000 and int(ville['2016']) < 100000:
liste.append(ville['Nom'])
print(liste)
on obtient:
- une erreur
- ['Tourcoing ', 'Roubaix ', 'Nanterre ', 'Vitry-sur-Seine ', 'Avignon ']
- ['Paris ', 'Marseille ', 'Lyon ', 'Toulouse ', 'Nice ', 'Nantes ', 'Montpellier ', 'Strasbourg ', 'Bordeaux ', 'Lille19 ', 'Rennes ', 'Reims ', 'Saint-Étienne ', 'Le Havre ', 'Toulon ', 'Grenoble ', 'Dijon ', 'Angers ', 'Nîmes ', 'Villeurbanne ', 'Saint-Denis ', 'Aix-en-Provence ', 'Le Mans ', 'Clermont-Ferrand ', 'Brest ', 'Tours ', 'Amiens ', 'Limoges ', 'Annecy20 ', 'Perpignan ', 'Boulogne-Billancourt ', 'Metz ', 'Besançon ', 'Orléans ', 'Saint-Denis ', 'Argenteuil ', 'Rouen ', 'Mulhouse ', 'Montreuil ', 'Saint-Paul ', 'Caen ', 'Nancy ', 'Tourcoing ', 'Roubaix ', 'Nanterre ', 'Vitry-sur-Seine ', 'Avignon ', 'Créteil ', 'Dunkerque22 ', 'Poitiers ']
Réponse
- une erreur
- ['Tourcoing ', 'Roubaix ', 'Nanterre ', 'Vitry-sur-Seine ', 'Avignon ']
- ['Paris ', 'Marseille ', 'Lyon ', 'Toulouse ', 'Nice ', 'Nantes ', 'Montpellier ', 'Strasbourg ', 'Bordeaux ', 'Lille19 ', 'Rennes ', 'Reims ', 'Saint-Étienne ', 'Le Havre ', 'Toulon ', 'Grenoble ', 'Dijon ', 'Angers ', 'Nîmes ', 'Villeurbanne ', 'Saint-Denis ', 'Aix-en-Provence ', 'Le Mans ', 'Clermont-Ferrand ', 'Brest ', 'Tours ', 'Amiens ', 'Limoges ', 'Annecy20 ', 'Perpignan ', 'Boulogne-Billancourt ', 'Metz ', 'Besançon ', 'Orléans ', 'Saint-Denis ', 'Argenteuil ', 'Rouen ', 'Mulhouse ', 'Montreuil ', 'Saint-Paul ', 'Caen ', 'Nancy ', 'Tourcoing ', 'Roubaix ', 'Nanterre ', 'Vitry-sur-Seine ', 'Avignon ', 'Créteil ', 'Dunkerque22 ', 'Poitiers ']
QCM☘
On utilise le fichier villes.csv.
Avec le code suivant:
import csv
# ouverture en lecture du fichier csv
with open('villes.csv', newline='') as fichier:
# on crée un objet DictReader
lecture = csv.DictReader(fichier, delimiter=',')
lecture = list(lecture)
liste = []
for ville in lecture:
annees = [int(ville[an]) for an in ('1990', '1999', '2006', '2011', '2016')]
if max(annees) != int(ville['2016']):
liste.append(ville['Nom'])
print(liste)
on obtient:
- une erreur
- la ville ayant le plus grand nombre d'habitants en 2016
- les villes n'ayant pas leur plus grand nombre d'habitants en l'année 2016
- une liste vide
Réponses
- une erreur
- la ville ayant le plus grand nombre d'habitants en 2016
- les villes n'ayant pas leur plus grand nombre d'habitants en l'année 2016
- une liste vide
La liste obtenue:
['Paris ', 'Nice ', 'Reims ', 'Saint-Étienne ', 'Le Havre ', 'Angers ', 'Le Mans ', 'Brest ', 'Tours ', 'Amiens ', 'Limoges ', 'Metz ', 'Besançon ', 'Rouen ', 'Mulhouse ', 'Caen ', 'Nancy ', 'Roubaix ', 'Avignon ', 'Créteil ', 'Dunkerque22 ', 'Poitiers ']
Poitiers par exemple avait plus d'habitants en 2006 qu'en 2016 d'où sa présence dans la liste.