QCM☘
Rappel
Les questions ci-dessous sont là pour vous aider à contrôler ce que vous avez retenu.
Si vous ne répondez pas à toutes les questions sans hésitation, c'est sans doute qu'il faut retravailler les pages précédentes.
Pour chaque question, il faut trouver la (ou les) bonne(s) réponse(s).
QCM 1☘
On utilise à nouveau le fichier personnes.csv.
On rappelle le contenu de ce fichier ci-dessous :
contenu du fichier
id_personne,nom,prenom,annee_naissance
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
Le code ci-dessous :
1 2 3 4 5 6 7 8 9 |
|
- est correct
- n'est pas correct
Réponse
- est correct
- n'est pas correct
On cherche à comparer les données dico['annee_naissance']
, qui sont
chargées en tant que chaîne de caractères, avec la valeur 2000
qui est
un entier.
On obtient l'erreur:
TypeError: '>' not supported between instances of 'str' and 'int'
Il faut penser à convertir (transtyper) la donnée. Par exemple en
utilisant la fonction attributs_entiers()
du module fonctions_csv
:
1 2 3 4 5 6 7 8 9 10 |
|
On obtient :
{'id_personne': '3', 'nom': 'Auboisdormant', 'prenom': 'Abel', 'annee_naissance': 2001}
{'id_personne': '9', 'nom': 'Ception', 'prenom': 'Alex', 'annee_naissance': 2001}
{'id_personne': '11', 'nom': 'Gator', 'prenom': 'Ali', 'annee_naissance': 2001}
{'id_personne': '12', 'nom': 'Bistraux', 'prenom': 'Alonzo', 'annee_naissance': 2001}
{'id_personne': '16', 'nom': 'Verserre', 'prenom': 'Annie', 'annee_naissance': 2001}
{'id_personne': '19', 'nom': 'Dejeu', 'prenom': 'Bernadette', 'annee_naissance': 2001}
QCM 2☘
On utilise le fichier villes.csv.
Avec le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
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 ']
-
[{'Nom': 'Tourcoing '}, {'Nom': 'Roubaix '}, {'Nom': 'Nanterre '}, {'Nom': 'Vitry-sur-Seine '}, {'Nom': 'Avignon '}]
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 ']
-
[{'Nom': 'Tourcoing '}, {'Nom': 'Roubaix '}, {'Nom': 'Nanterre '}, {'Nom': 'Vitry-sur-Seine '}, {'Nom': 'Avignon '}]
QCM 3☘
On utilise à nouveau le fichier villes.csv.
Avec le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
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
- un tableau 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
- un tableau vide
Le tableau obtenu :
['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 ']
QCM 4☘
Avec le code:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
on obtient:
-
[{'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
Réponses
-
[{'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 2, 'C2': 18, 'C3': 15}]
-
[{'C1': 10, 'C2': 11, 'C3': 12}, {'C1': 8, 'C2': 12, 'C3': 9}, {'C1': 14, 'C2': 13, 'C3': 17}, {'C1': 2, 'C2': 18, 'C3': 15}]
Le tri se fait suivant l'ordre croissant des amplitudes (différence entre la plus grande et la plus petite valeur).
On pourrait avoir un doute entre les propositions 3 et 4 car les deux
tableaux centraux présentent la même amplitude. Rappelez vous que dans ce
cas, Python conserve l'ordre initial des éléments.
Puisque le dictionnaire {"C1": 8, "C2": 12, "C3": 9}
est avant
{"C1": 14,"C2": 13,"C3": 17}
dans le tableau initial, il reste avant dans
le tableau final car le critère de tri choisi ne permettant pas de les
ordonner.
QCM 5☘
A partir du code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
on veut fabriquer le tableau « fusion » T
suivant :
[{'nom': 'Torvalds', 'né en': 1969, 'père de': 'Linux'},
{'nom': 'Gates', 'né en': 1955, 'père de': 'Microsoft'},
{'nom': 'Knuth', 'né en': 1938, 'père de': 'TeX'},
{'nom': 'Eich', 'né en': 1961, 'père de': 'JavaScript'},
{'nom': 'Lerdorf', 'né en': 1968, 'père de': 'PHP'},
{'nom': 'Berners-Lee', 'né en': 1955, 'père de': 'HTML'}]
Parmi les programmes suivants, lesquels conviennent ?
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realise['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if p['Nom'] == r['Nom'] ]
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realisation['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if p['Nom'] == r['Nom'] ]
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realise['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if personnes['Nom'] == realisation['Nom'] ]
-
1 2 3 4 5 6 7 8 9 10 11 12 13
def fusion(): tab = [] for p in personnes: for r in realisation: if p['Nom'] == r['Nom']: tab.append({ 'nom': p['Nom'], 'né en': p['naissance'], 'père de': r['oeuvre']}) return tab ##----- Programme principal -----## T = fusion()
Réponse
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realise['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if p['Nom'] == r['Nom'] ]
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realisation['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if p['Nom'] == r['Nom'] ]
-
1 2 3 4 5 6 7 8 9
def fusion(individu, realise): return {'nom': individu['Nom'], 'né en': individu['naissance'], 'père de': realise['oeuvre']} ##----- Programme principal -----## T = [ fusion(p, r) for p in personnes for r in realisation if personnes['Nom'] == realisation['Nom'] ]
-
1 2 3 4 5 6 7 8 9 10 11 12 13
def fusion(): tab = [] for p in personnes: for r in realisation: if p['Nom'] == r['Nom']: tab.append({ 'nom': p['Nom'], 'né en': p['naissance'], 'père de': r['oeuvre']}) return tab ##----- Programme principal -----## T = fusion()