Corrigé détaillé des 20 questions : bonne réponse et explication.
Q1. Quelle sera la sortie du code suivant ?
L'opérateur + entre deux listes réalise une concaténation. L + [7] donne donc une nouvelle liste [4, 5, 6, 7].
Q2. Quelle sera la sortie du code suivant ?
La liste [10, 20, 30] a une longueur de 3, donc len(t) >= 3 est vrai. La fonction retourne t[1], c'est-à-dire l'élément d'indice 1 : 20.
Q3. Quelle sera la sortie du code suivant ?
np.linspace(0, 1, 5) génère 5 valeurs régulièrement espacées entre 0 et 1 inclus : [0, 0.25, 0.5, 0.75, 1.0]. L'indice 3 correspond à la quatrième valeur, donc 0.75.
Q4. Quelle sera la sortie du code suivant ?
np.arange(2, 10, 2) commence à 2 et ajoute 2 jusqu'à atteindre 10 (exclu) : [2, 4, 6, 8]. L'indice 2 correspond à la troisième valeur, donc 6.
Q5. Quelle sera la sortie du code suivant ?
range(3) produit 0, 1, 2. On a : a = 2 + 0 = 2 ; puis a = 2 + 1 = 3 ; puis a = 3 + 2 = 5. b est incrémenté 3 fois, donc b = 3. La sortie est 5 3.
Q6. Quelle sera la sortie du code suivant ?
Déroulement : n=0, i=1 ; n=1, i=2 ; n=3, i=3 ; n=6, i=4. La condition n<5 est fausse après n=6, la boucle s'arrête. La sortie est 6 4.
Q7. Qu'est-il retourné si on tape dans la console : print('Banana'[2])
Les caractères de 'Banana' sont indexés : 0:B, 1:a, 2:n, 3:a, 4:n, 5:a. L'indice 2 correspond à 'n'.
Q8. Qu'est-il retourné si on tape dans la console : print('Banana'[1:4][1])
'Banana'[1:4] donne les indices 1, 2, 3, soit 'ana'. Puis 'ana'[1] donne 'n'.
Q9. Qu'est-il retourné si on tape dans la console : print(2 * 'BCPST'[-1])
On évalue d'abord 'BCPST'[-1], qui vaut 'T'. Ensuite 2 * 'T' donne 'TT'.
Q10. Qu'est-il retourné si on tape dans la console : print((2 * 'BCPST')[-1])
Les parenthèses imposent de calculer d'abord 2 * 'BCPST', ce qui donne 'BCPSTBCPST'. L'indice [-1] renvoie le dernier caractère, soit 'T'.
Q11. On execute les 2 lignes suivantes :
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:5][1:3])
Qu'est renvoyé dans la console ?
a[1:5] vaut [1,2,3,4] (de l'élément numéro 1 de a au numéro 5 (exclu). On prend ensuite l'élément numéro 1 inclus au numéro 3 exclu de [1,2,3,4], ce qui donne [2,3].
Q12. On execute les 2 lignes suivantes :
tableau = numpy.array([[1,2,3],[4,5,6]])
print(tableau[1,:])
Qu'est renvoyé dans la console ?
tableau[1,:] sélectionne la ligne d'indice 1 (la deuxième ligne) et toutes les colonnes. On obtient [4,5,6].
Q13. Qu'est-il retourné si on tape dans la console : print(type([10, 3.5, 'ok'][2]))
[10, 3.5, 'ok'][2] vaut 'ok', qui est une chaîne de caractères. Son type est donc str : <class 'str'>.
Q14. Quelle sera la sortie du code suivant ?
Pour x=7, x>0 est vrai, mais 7%2 vaut 1, donc x%2==0 est faux. La condition complète avec and est fausse, la fonction retourne False.
Q15. On execute les 3 lignes suivantes :
a = "abc" ; b = "abc"
print(a == b)
print(a is b)
Qu'est renvoyé dans la console ?
L'opérateur == compare les valeurs, et les deux chaînes valent "abc", donc a==b est True. Dans l'implémentation Python courante, les deux littéraux identiques peuvent référencer le même objet, donc a is b est aussi True. Pour comparer des valeurs, on utilise == ; is teste l'identité.
Q16. Quelle sera la sortie du code suivant ?
La fonction parcourt chaque caractère de "python" et l'ajoute à res s'il est différent de "o". Seul le 'o' est retiré. On obtient "pythn".
Q17. Quelle sera la sortie du code suivant ?
i commence à 0 et augmente de 2 à chaque tour. On prend les éléments d'indices 0, 2 et 4 : 10, 30 et 50. Le résultat est "103050".
Q18. On execute les lignes suivantes :
Qu'est renvoyé dans la console ?
A[2,1] sélectionne l'élément à la ligne d'indice 2 (troisième ligne) et à la colonne d'indice 1 (deuxième colonne). La troisième ligne est [5,6], donc l'élément est 6.
Q19. On execute les lignes suivantes :
Qu'est renvoyé dans la console ?
A[:, 1:] sélectionne toutes les lignes et les colonnes à partir de l'indice 1 (inclus) jusqu'à la fin. On obtient donc les colonnes 1 et 2 de chaque ligne : [[2,3],[5,6]].
Q20. On execute les lignes suivantes :
Qu'est renvoyé dans la console ?
On calcule d'abord A[:, 1:], qui vaut [[2,3],[5,6]]. Ensuite, [1,0] sélectionne l'élément à la ligne d'indice 1 et à la colonne d'indice 0 de ce nouveau tableau, c'est-à-dire 5.