Aller au contenu

QCM
Déf. en compréhension

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

Dans l'interpréteur Python, on saisit les instructions :

>>> a = [1, 2, 3]
>>> a = [str(x) for x in a]
>>> a[1] + a[2]

Que renvoie cette dernière instruction ?

  • 3
  • 5
  • '12'
  • '23'
Réponse
  • 3
  • 5
  • '12'
  • '23'

La première instruction construit le tableau contenant les entiers 1, 2, 3.
En ligne 2, on construit le tableau des chaînes de caractères définies à partir des entiers de la liste précédente :

>>> str(2)
'2'
>>> a = [1, 2, 3]
>>> type(a[0])
<class 'int'>

>>> a = [str(x) for x in a]
>>> a
['1', '2', '3']

>>> type(a[0])
<class 'str'>
La dernière instruction demande donc la concaténation de deux chaînes de caractères, ici les chaînes '2' et '3'. Leur concaténation est '23'.

QCM 2

Que renvoie l'instruction suivante ?

>>> [a + b for a in ['1', '2', '3'] for b in ['4', '5', '6']]
  • ['41', '52', '63']
  • ['14', '25', '36']
  • ['14', '24', '34', '15', '25', '35', '16', '26', '36']
  • ['14', '15', '16', '24', '25', '26', '34', '35', '36']
Réponse
  • ['41', '52', '63']
  • ['14', '25', '36']
  • ['14', '24', '34', '15', '25', '35', '16', '26', '36']
  • ['14', '15', '16', '24', '25', '26', '34', '35', '36']

L'instruction

1
tab = [a + b for a in ['1', '2', '3'] for b in ['4', '5', '6']]

est équivalente au code suivant :

1
2
3
4
tab = []
for a in ['1', '2', '3']:
    for b in ['4', '5', '6']:
        tab.append(a+b)

La lecture est la suivante:

  • a étant fixé à la valeur '1', b parcourt le tableau ['4', '5', '6'] : on incorpore donc '14', puis '15' puis '16' au tableau tab.
  • a prend ensuite la valeur '2' et b parcourt le tableau ['4', '5', '6']: on incorpore donc '24', puis '25' puis '26' au tableau tab.
  • a prend ensuite la valeur '3' et b parcourt le tableau ['4', '5', '6']: on incorpore donc '34', puis '35' puis '36' au tableau tab.

QCM 3

Dans l'interpréteur Python, on saisit les instructions :

>>> a = [i*i for i in range(5)]
>>> a[len(a)-1]

Que renvoie cette dernière instruction ?

  • Une erreur
  • 0
  • 16
  • 25
Réponse
  • Une erreur
  • 0
  • 16
  • 25
>>> a = [i*i for i in range(5)]
>>> a
[0, 1, 4, 9, 16]

>>> a[len(a)-1]
16

QCM 3

Après l'affectation suivante :

1
alpha = [x for x in 'abcdefghijklmnopqrstuvwxyz']

on accède à la lettre 'b' avec :

  • alpha[1]
  • alpha[2]
  • alpha['b']
  • alpha(1)
Réponse
  • alpha[1]
  • alpha[2]
  • alpha['b']
  • alpha(1)
>>> alpha = [x for x in 'abcdefghijklmnopqrstuvwxyz']
>>> alpha
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

>>> alpha[1]
'b'