BNS PREMIERE NSI

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']