- CHAPITRE 1
- CHAPITRE 2
- CHAPITRE 3
- CHAPITRE 4
- CHAPITRE 5
- CHAPITRE 6
- CHAPITRE 7
- CHAPITRES 8 et 9
- CHAPITRES 13 et 14
- CHAPITRE 15
- CHAPITRES 16, 17, 18, 19 et 20
- CHAPITRES 21, 22, 23, 24, 25, 26, 27 et 28
- CHAPITRE 29
- CHAPITRES 10, 11, 12, 30, 31 et 32
- CHAPITRE 33

## QUESTIONS CHAPITRE 3

Q1 - On définit un dictionnaire :

    d = {'couleur': 'vert', 'taille': 42, 'marque': 'le coq sportif'}

Quelle est la valeur de l'expression d.keys() ?

Réponses :

A- ['couleur', 'taille', 'marque']

B- [('couleur', 'vert'), ('taille', 42), ('marque', 'le coq sportif')]

C- ['vert', 42, 'le coq sportif']

D- ['couleur': 'vert', 'taille': 42, 'marque': 'le coq sportif']

Q2 - Comment peut-on accéder à la valeur associée à une clé dans un dictionnaire ?

Réponses :

A- il faut parcourir le dictionnaire avec une boucle à la recherche de la clé

B- on peut y accéder directement à partir de la clé

C- on ne peut pas accéder à une valeur contenue dans un dictionnaire à partir d’une clé

D- il faut d’abord déchiffrer la clé pour accéder à un dictionnaire

Q3 - On définit le dictionnaire d = {'a': 1, 'b': 2, 'c': 3, 'z': 26}. Quelle expression permet de récupérer la valeur de la clé 'z' ?

Réponses :

A- d[4]

B- d[26]

C- d[z]

D- d['z']

Q4 - Quel est le type de la variable billes définie par : billes = {'vert': 6, 'rouge': 15, 'bleu': 11, 'jaune': 2, 'orange': 17 }

Réponses :

A- c'est une séquence

B- c'est une liste

C- c'est une liste de listes

D- c'est un dictionnaire

Q5 - Considérons le dictionnaire suivant : resultats = {'Paul':5 , 'Amina':1 , 'Léon' : 9 , 'Benoit':3}

Quelle affirmation est correcte ?

Réponses :

A- resultats['Amina'] vaut 1

B- resultats[1] vaut 'Amina'

C- 'Paul' est une valeur de ce dictionnaire

D- 9 est une clé de ce dictionnaire

Q6 - Après avoir défini : d = { 'tigre': 'félin', 'tortue': 'reptile', 'renard': 'canidé' }

laquelle des quatre expressions suivantes est correcte ?

Réponses :

A- d['tortue']

B- d['reptile']

C- d['tortue': 'reptile']

D- d[1]

Q7 - On exécute le script suivant :

    inventaire = {'pommes': 430, 'bananes': 312,'oranges' : 274, 'poires' : 137}

    stock = 0
    for fruit in inventaire.keys():
      if fruit != 'bananes':
        stock = stock + inventaire[fruit]

Que contient la variable stock à la fin de cette exécution ?

Réponses :

A- {430, 274, 137}

B- 312

C- 841

D- { 'pommes', 'oranges', 'poires' }

Q8 - On définit ainsi une liste P :

    P = [{"nom":"Turing","prénom":"Alan","âge":28},{"nom":"Lovelace","prénom":"Ada","âge":27}]

Que fait alors l'instruction P[1]["âge"] = 25 ?

Réponses :

A- elle modifie la valeur de la clé âge du deuxième élément de la liste P

B- elle modifie la valeur de la clé âge du premier élément de la liste P

C- elle donne la longueur de la liste P

D- elle donne la longueur du premier élément de la liste P

Q9 - La variable sequence contient une liste de lettres, éventuellement répétées, choisies parmi 'A', 'B', 'C', 'D'. On veut créer un dictionnaire effectifs associant à chaque lettre le nombre de fois qu'elle apparaît dans la liste sequence.

Par exemple si sequence contient ['A', 'B', 'B', 'D', 'B', 'A'], effectifs doit contenir {'A':2, 'B':3, 'C':0, 'D':1}.

Parmi les scripts suivants, lequel réalise cet objectif ?

Réponses :

A-

    effectifs = {'A':0, 'B':0, 'C':0, 'D':0}
    for lettre in sequence:
      effectifs[lettre] = effectifs[lettre] + 1

B-

    effectifs = {}
    for lettre in sequence:
      effectifs[lettre] = effectifs[lettre] + 1

C-

    effectifs = {'A':0, 'B':0, 'C':0, 'D':0}
    for lettre in effectifs.keys():
      effectifs[lettre] = len([lettre in effectifs])

D-

    effectifs = {}
    for lettre in effectifs.keys():
      effectifs[lettre] = len([lettre in effectifs])

Q10 - On a défini

    dico = { 'a': (1,2,3), 'b': (4,5,6) }

Quelle est la valeur de l'expression dico['a'][1]?

Réponses :

A- 1

B- 2

C- (1,2,3)

D- cette expression est incorrecte, l'évaluer déclenche une erreur

Q11 - Quelle est la valeur affichée à l'exécution du programme Python suivant ?

    ports = { 'http': 80, 'imap': 142, 'smtp': 25 }
    ports['ftp'] = 21
    print(ports['ftp'])

Réponses :

A- 3

B- 21

C- { 'ftp': 21 }

D- Key not found

Q12 - On dispose du dictionnaire regions ci-dessous :

    regions = {'Mayotte': 376, 'Pays de la Loire': 32082,'La Réunion': 2504, 'Grand Est': 57441,'Martinique': 1128, 'Corse': 8680,'Bretagne': 27208, 'Nouvelle-Aquitaine': 84036}

Parmi les instructions suivantes, laquelle permet d'ajouter une nouvelle région ?

Réponses :

A- INSERT "'Hauts de France':31806" INTO regions

B- regions = dict(['Hauts de France'] = 31806)

C- regions('Hauts de France') = 31806

D- regions['Hauts de France'] = 31806

Q13 - On définit ainsi une liste P :

    P = [ {"nom":"Turing","prénom":"Alan","âge":28},{"nom":"Lovelace","prénom":"Ada","âge":27} ]

Comment accéder à la chaîne de caractères "Alan" ?

Réponses :

A- P[0]

B- P[1]

C- P[0]["prénom"]

D- P[1]["prénom"]

Q14 - On exécute le script suivant :

    def ajoute(stock,element,quantite):
      if element in stock:
        stock[element] = stock[element] + quantite
      else:
        stock[element] = quantite

    stock = { 'clous': 14, 'vis': 27, 'boulons': 8, 'écrous': 24 }
    ajoute(stock,'vis',5)
    ajoute(stock,'chevilles',3)

Quelle est la valeur de la variable stock à la fin de cette exécution ?

Réponses :

A- {‘clous’: 14, ‘vis’: 27, ‘boulons’: 8, ‘écrous’: 24}

B- {‘clous’: 14, ‘vis’: 32, ‘boulons’: 8, ‘écrous’: 24}

C- {‘clous’: 14, ‘vis’: 27, ‘boulons’: 8, ‘écrous’: 24, 'chevilles': 3}

D- {‘clous’: 14, ‘vis’: 32, ‘boulons’: 8, ‘écrous’: 24, 'chevilles': 3}

Q15 - On considère le code suivant :

    D = { 'a': '1', '2': 'a', 'b': 'a', 'c': '3'}

Que vaut D['a'] à la fin de son exécution ?

Réponses :

A- '1'

B- 2

C- [ '2', 'b' ]

D- [ '1', '3' ]

Q16 - On a défini un dictionnaire :

    contacts = {'Paul': '0601010182', 'Jacques': '0602413824', 'Claire': '0632451153'}

Quelle instruction écrire pour ajouter à ce dictionnaire un nouveau contact nommé Juliette avec le numéro de téléphone 0603040506 ?

Réponses :

A- 'Juliette': '0603040506'

B- contacts.append('Juliette': '0603040506')

C- contacts['Juliette'] = '0603040506'

D- contacts.append('Juliette', '0603040506')

Q17 - On considère le script suivant :

    billes = {'vert': 6, 'rouge': 15, 'bleu': 11, 'jaune': 2, 'orange': 17 }
    total = 0
    for n in billes.XXXXXXX():
      total = total + n

Par quoi faut-il remplacer XXXXXXX dans ce script pour qu'à la fin de son exécution la variable total contienne le nombre total de billes ?

Réponses :

A- keys

B- values

C- items

D- numbers

Q18 - On définit :

    dico = {"Herve": 15, "Kevin":17, "Fatima":16}

qui associe nom et âge de trois élèves.

Comment accéder à l'âge de Kevin ?

Réponses :

A- dico[1]

B- dico[Kevin]

C- dico["Kevin"]

D- dico("Kevin")

Q19 - On exécute le code suivant :

    placard = { 'chemise': 3, 'pantalon': 6, 'tee shirt': 7 }
    placard['chaussette'] = 4
    placard['chemise'] = 5

    L = list(placard.values())

Quelle est la valeur de la variable L à l'issue de cette exécution ?

Réponses :

A- [ 3, 6, 7 ]

B- [ 3, 6, 7, 4 ]

C- [ 5, 6, 7 ]

D- [ 5, 6, 7, 4 ]

Q20 - Pour gérer certaines données EXIF de photographies, on a utilisé le code suivant pour stocker dans une liste L de dictionnaires quelques données :

    L = []
    L.append({'marque': 'Canon', 'modele': 'EOS 7D', 'focale': '19mm', 'flash': False})
    L.append({'marque': 'Nikon', 'modele': 'CoolPix A1000', 'focale': '19mm', 'flash': True})
    L.append({'marque': 'Sony', 'modele': 'HK 350', 'focale': '24mm', 'flash': False})
    L.append({'marque': 'Sony', 'modele': 'HK 350', 'focale': '19mm', 'flash': True})
    # ……
    # et ainsi de suite, d'autres informations ont été ajoutées
    # ……

On veut extraire de ces informations la liste Z des photographies obtenues avec un Canon ou un Nikon et une distance focale de 19 mm.

Quelle instruction permet de réaliser cette extraction ?

Réponses :

A-

    Z = [ p for p in L if (p['marque'] == 'Canon' or p['focale'] == '19mm') and (p['marque'] == 'Nikon' or p['focale'] == '19mm') ]

B-

    Z = [ p for p in L if (p['marque'] == 'Canon' and p['focale'] == '19mm') and (p['marque'] == 'Nikon' and p['focale'] == '19mm') ]

C-

    Z = [ p for p in L if (p['marque'] == 'Canon' or p['focale'] == '19mm') or (p['marque'] == 'Nikon' or p['focale'] == '19mm') ]

D-

    Z = [ p for p in L if (p['marque'] == 'Canon' and p['focale'] == '19mm') or (p['marque'] == 'Nikon' and p['focale'] == '19mm') ]

Q21 - On définit :

    contacts = {'Toto': 'toto@nsi.fr', 'Chloé': 'chloe@nsi.com','Paul': 'paul@nsi.net', 'Clémence': 'clemence@nsi.org' }

Parmi les propositions suivantes, laquelle est exacte ?

Réponses :

A- 'Chloé' est une valeur de la variable contacts

B- 'Chloé' est une clé de la variable contacts

C- 'Chloé' est un attribut de la variable contacts

D- 'Chloé' est un champ de la variable contacts

Q22 - On considère la table suivants :

    t = [{'type': 'marteau', 'prix': 17, 'quantité': 32},{'type': 'scie', 'prix': 24, 'quantité': 3},{'type': 'tournevis', 'prix': 8, 'quantité': 45}]

Quelle expression permet d'obtenir la quantié de scies ?

Réponses :

A- t[2]['quantité']

B- t[1]['quantité']

C- t['quantité'][1]

D- t['scies']['quantité']

Q23 - On définit ainsi une liste t :

    t = [ {'id':1, 'age':23, 'sejour':'PEKIN'},{'id':2, 'age':27, 'sejour':'ISTANBUL'},{'id':3, 'age':53, 'sejour':'LONDRES'},{'id':4, 'age':41, 'sejour':'ISTANBUL'},{'id':5, 'age':62, 'sejour':'RIO'},{'id':6, 'age':28, 'sejour':'ALGER'}]

Quelle affirmation est correcte ?

Réponses :

A- t est une liste de listes

B- t est une liste de dictionnaires

C- t est un dictionnaire de listes

D- t est une liste de tuples

Q24 - On exécute le code suivant :

    dict = {"alexandre" : 17, "mehdi" : 18,  "jeanne" : 16,"charlotte" : 19, "celina" : 18, "noé" : 19}

    def f(dic):
      for cle, valeur in dic.items() :
        if valeur > 18:
          return cle

Que renvoie l'appel f(dict) ?

Réponses :

A- 19

B- 19,19

C- "charlotte"

D- "charlotte","noé"

Q25 - On définit la variable suivante : lettres = {"a": 1, "b": 2, "c": 3}.

Quelle est la valeur de l'expression list(lettres.keys()) ?

Réponses :

A- [a,b,c]

B- [1,2,3]

C- ["a","b","c"]

D- {"a": 1, "b": 2, "c": 3}

Q26 - On exécute le script suivant :

    notes = {"Paul": 12, "Jean": 16, "Clara": 14, "Aïssa": 18}
    t = list(notes.keys())

Quelle est la valeur de t à la fin de cette exécution ?

Réponses :

A- Paul

B- ["Paul", '"Jean", "Clara", "'Aïssa']

C- [12, 16, 14, 18]

D- [ "Paul": 12, "Jean": 16, "Clara": 14, "Aïssa": 18 ]

Q27 - Par quelle expression remplacer les pointillés dans le programme Python suivant, pour que son exécution affiche le numéro de Dupond ?

    repertoire = [{'nom':'Dupont', 'tel':'5234'},{'nom':'Tournesol', 'tel':'5248'}, {'nom':'Dupond', 'tel':'3452'}]
    for i in range(len(repertoire)):
      if ......   :
        print(repertoire[i]['tel'])

Réponses :

A- nom == 'Dupond'

B- repertoire['nom'] == 'Dupond'

C- repertoire[i] == 'Dupond'

D- repertoire[i]['nom'] == 'Dupond'

Q28 - On définit :

    T = [{'fruit': 'banane', 'nombre': 25}, {'fruit': 'orange', 'nombre': 124}, {'fruit': 'pomme', 'nombre': 75}, {'fruit': 'kiwi', 'nombre': 51}]

Quelle expression a-t-elle pour valeur le nombre de pommes ?

Réponses :

A- T[2]['nombre']

B- T[2,'nombre']

C- T[3]['nombre']

D- T[3,'nombre']

Q29 - Quelle expression Python permet d’accéder au numéro de téléphone de Tournesol, sachant que le répertoire a été défini par l’affectation suivante :

    repertoire = [{'nom':'Dupont', 'tel':'5234'}, {'nom':'Tournesol', 'tel':'5248'}, {'nom':'Dupond', 'tel':'3452'}]

Réponses :

A- repertoire['Tournesol']

B- repertoire['tel'][1]

C- repertoire[1]['tel']

D- repertoire['Tournesol'][tel]

Q30 - On définit ainsi une liste t puis une liste r :

    t = [ {'id':1, 'age':23, 'sejour':'PEKIN'},{'id':2, 'age':27, 'sejour':'ISTANBUL'},{'id':3, 'age':53, 'sejour':'LONDRES'},{'id':4, 'age':41, 'sejour':'ISTANBUL'},{'id':5, 'age':62, 'sejour':'RIO'},{'id':6, 'age':28, 'sejour':'ALGER'}]

    r = [ c for c in t if c['age']>30 and c['sejour']=='ISTANBUL' ]

Combien la liste r contient-elle d'éléments ?

Réponses :

A- 0

B- 1

C- 2

D- 3

Q31 - On définit ainsi une liste t :

    t = [ {'id':1, 'age':23, 'sejour':'PEKIN'},{'id':2, 'age':27, 'sejour':'ISTANBUL'},{'id':3, 'age':53, 'sejour':'LONDRES'},{'id':4, 'age':41, 'sejour':'ISTANBUL'},{'id':5, 'age':62, 'sejour':'RIO'},{'id':6, 'age':28, 'sejour':'ALGER'}]

Quelle expression vaut-elle 'RIO' parmi les suivantes ?

Réponses :

A- t[4]['sejour']

B- t[5]['sejour']

C- t('id'=5)

D- t.['id'=5].['sejour']

Q32 - On considère des dictionnaires comme

    { 'nom': 'Jérôme', 'NSI': 16.2, 'maths': 11.4, 'physique': 13.0 }

pour retenir les notes d'un élève.

On définit :

    def somme(notes):
      return notes['NSI'] + notes['maths'] + notes['physique']

    def plusPetit(n1, n2):
      if n1['NSI'] < n2['NSI']:
        return True
      if n1['NSI'] == n2['NSI']:
        if somme(n1) < somme(n2):
          return True
        elif somme(n1) == somme(n2) and n1['nom'] < n2['nom']:
          return True
      return False

pour définir un ordre croissant sur ces dictionnaires.

Ranger dans l'ordre croissant les dictionnaires suivants :

    n1 = { 'nom': "Albert", 'NSI': 12.3, 'maths': 14.0, 'physique': 8.7 }
    n2 = { 'nom': "Béatrice", 'NSI': 12.3, 'maths': 11.0, 'physique': 12.5 }
    n3 = { 'nom': "Colin", 'NSI': 12.3, 'maths': 7.0, 'physique': 15.7 }
    n4 = { 'nom': "Daniel", 'NSI': 13.4, 'maths': 9.0, 'physique': 5.2 }
    n5 = { 'nom': "Emilie", 'NSI': 16.1, 'maths': 5.3, 'physique': 14.4 }

Réponses :

A- n1, n2, n3, n4, n5

B- n1, n4, n2, n4, n5

C- n1, n3, n2, n4, n5

D- n5, n4, n2, n3, n1

Q33 - Par quoi faut-il remplacer les pointillés dans le script suivant :

    relevé = [{'matière':'EPS','moyenne':11}, {'matière':'Sciences','moyenne':6}, {'matière':'LV1','moyenne':14}, {'matière':'Histoire','moyenne':9}, {'matière':'LV2','moyenne':15}]
    a = ......
    b = ......
    for i in relevé :
      if i[a] > 10:
        print(i[b])

pour qu'il affiche

    EPS
    LV1
    LV2

Réponses :

A-

    a = 'moyenne'
    b = 'matière'

B-

    a = 'matière
    b = 'moyenne'

C-

    a = 0
    b = 1

D-

    a = 1
    b = 0

Q34 - On définit :

    stock = [{'nom': 'flageolets', 'quantité': 50, 'prix': 5.68},{'nom': 'caviar', 'quantité': 0, 'prix': 99.99},.........,.........,{'nom': 'biscuits', 'quantité': 100, 'prix': 7.71}]

Quelle expression permet d'obtenir la liste des noms des produits effectivement présents dans le stock (c'est-à-dire ceux dont la quantité n'est pas nulle) ?

Réponses :

A- ['nom' for p in stock if 'quantité' != 0]

B- [p for p in stock if p['quantité'] != 0]

C- [p['nom'] for p in stock if 'quantité' != 0]

D- [p['nom'] for p in stock if p['quantité'] != 0]

Q35 - On considère le code suivant :

    def clearfield(f):
      for i in range(len(f)):
        fiche[i]['code'] = None
      return f

    fiche = [{"nom": "pierre", "note": 5.99, "code": 125},{"nom": "pol", "note": 2.99, "code": 82},{"nom": "jack", "note": 7.99, "code": 135}]

Que renvoie clearfield(fiche) ?

Réponses :

A-

    [{"nom": "pierre", "note": 5.99, "code": 125},{"nom": "pol", "note": 2.99, "code": 82},{"nom": "jack", "note": 7.99, "code": 135}]

B-

    [{"nom": "pierre", "note": None, "code": 125},{"nom": "pol", "note": None, "code": 82},{"nom": "jack", "note": None, "code": 135}]

C-

    [{"nom": "pierre", "note": 5.99, "None": 125},{"nom": "pol", "note": 2.99, "None": 82},{"nom": "jack", "note": 7.99, "None": 135}]

D-

    [{"nom": "pierre", "note": 5.99, "code": None},{"nom": "pol", "note": 2.99, "code": None},{"nom": "jack", "note": 7.99, "code": None}]

Q36 - On a défini

    repertoire = [{'nom': 'Francette', 'poste': 412},{'nom': 'Jeanne', 'poste': 222},{'nom': 'Éric', 'poste': 231}]

Quelle expression permet d'accéder au poste d'Éric ?

Réponses :

A- repertoire[2]['poste']

B- repertoire['poste'][2]

C- repertoire['Éric']['poste']

D- repertoire['Éric']