from metakernel import register_ipython_magics
register_ipython_magics()
moyenne3notes(a, b, c)
qui renvoie la moyenne arithmétique d'une série de 3 notes a, b, c
.Réponse :
def moyenne3notes(a, b, c):
return (a + b + c) / 3
moyenne(n)
qui prend en paramètres un nombre de notes et retourne la moyenne de ces notes saisies par l'utilisateur. Réponse :
def moyenne(n):
somme = 0
for _ in range(n):
note = int(input("Note ?"))
somme = somme + note
return somme / n
Réponse :
On aimerait pouvoir stocker une séquence de notes dans une variable.
def moyenne3notes(a, b, c):
return (a + b + c) / 3
def moyenne(n):
somme = 0
for _ in range(n):
note = int(input("Note ?"))
somme = somme + note
return somme / n
liste_pays = ["France","Allemagne","Italie","Belgique"]
.Que renvoie : liste_pays[2]
?
Solution : "Italie"
Quelle est la valeur référencée par le tableau L après exécution du programme ci-dessous ?
L = [731, 732, 734]
L[0], L[1] = L[1], L[0]
M = L
M[1] = 732
Réponse 1 : [732, 731, 734] Réponse 2 : [731, 732, 734] Réponse 3 : [732, 732, 734]
Solution : [732, 732, 734]
On définit : L = [10,9,8,7,6,5,4,3,2,1]
.
Quelle est la valeur de L[L[3]]
?
Solution : 3
Écrire une fonction recherche(tab, element)
qui prend en paramètre un tableau et un élément et qui retourne True
si element
est dans tab
et False
sinon.
Solution :
def recherche(tab, element):
for e in tab:
if e == element:
return True
return False
Auteur : Germain Becker, question n°326 Genumsi.
Quel est le tableau t
construit par les instructions suivantes ?
tab = [1, 2, -3, 7, 4, 10, -1, 0]
t = [e for e in tab if e >= 0]
t = [1, 2, 7, 4, 10, 0]
t = [e, e, e, e, e, e]
t = [1, 2, 7, 4, 10]
Réponse 4 : t = [-3, -1, 0]
Solution : t = [1, 2, 7, 4, 10]
Quel est le résultat de l'évaluation de l'expression Python suivante ? Auteur : Eric Rougier
[2 ** n for n in range(4)]
Réponses :
[0, 2, 4, 6, 8]
[1, 2, 4, 8]
[0, 1, 4, 9]
Réponse 4 : [1, 2, 4, 8, 16]
Solution : [1, 2, 4, 8]
Qu'affiche le programme [Python][Python] ci-dessous ?
L=[0,1,2]
M=[3,4,5]
N=[L[i]+M[i] for i in range(len(L))]
print(N)
Solution : [3,5,7]
On exécute le script suivant :
L = [12,0,8,7,3,1,5,3,8]
a = [elt for elt in L if elt < 4]
Quelle est la valeur de a
à la fin de son exécution ?
[12,0,8]
Réponse 2 : [12,0,8,7]
[0,3,1,3]
Réponse 4 : [0,3,1]
Solution : [0,3,1,3]
On exécute le script suivant :
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
Que contient la variable c
à la fin de cette exécution ?
Réponses :
Réponse 1 : [5,7,9]
Réponse 2 : [1,4,2,5,3,6]
Réponse 3 : [1,2,3,4,5,6]
Réponse 4 : [1,2,3,5,7,9]
Solution : [1,2,3,4,5,6]
Soit la fonction mystere
ci-dessous.
Quelle est la valeur retournée par mystere([831, 832, 833, 841, 842, 843])
?
def mystere(u):
v = []
n = len(u)
for k in range(n):
v = [u[k]]+v
return v
Solution : [843, 842, 841, 833, 832, 831]
occurences(v, t)
qui renvoie le nombre d'occurences de la valeur v
dans le tableau t
.def occurences(v, t):
"""Renvoie le nombre d'occurences de v
dans le tableau t"""
cpt = 0
for e in t:
if e == v:
cpt = cpt + 1
return cpt
Auteur : Nicolas Réveret, question n°379 Genumsi
On a saisi le code suivant :
liste = [0, 1, 2, 3]
compteur = 0
for i in range(len(liste)-1) :
for j in range(i,len(liste)) :
compteur += 1
Que contient la variable compteur à la fin de l’exécution de ce script ?
Solution : 9
%%tutor
liste = [0, 1, 2, 3]
compteur = 0
for i in range(len(liste)-1) :
for j in range(i,len(liste)) :
compteur += 1
Revenons sur notre situation d'accroche.
somme(tab)
qui renvoie la somme des éléments d'un tableau de nombres tab
. moyenne_arithmetique(tab)
qui renvoie la moyenne arithmétique des éléments d'un tableau de nombres tab
. En voulant programmer une fonction qui calcule la valeur minimale d'un tableau d'entiers, on a écrit :
def minimum(L):
mini = 0
for e in L:
if e < mini:
mini = e
return mini
Cette fonction a été mal programmée. Pour quel tableau ne donnera-t-elle pas le résultat attendu, c'est-à-dire son minimum ?
Réponses :
[-1,-8,12,2,23]
[0,18,12,2,3]
[-1,-1,12,12,23]
[1,8,12,2,23]
Solution : [1,8,12,2,23]
max_tab(tab)
qui renvoie le maximum d'un tableau de nombres passé en paramètredef max_tab(tab):
"""Renvoie le maximum d'un tableau passé en paramètre"""
if len(tab) == 0:
return None
else:
maxi = tab[0]
for k in range(1, len(tab)):
if t[k] > maxi:
maxi = tab[k]
return maxi
%%tutor
a = 5
b = a
b = 6
t1 = [14, 18]
t2 = t1
t2[0] = 39
t1[1] = 45
%%tutor
t1 = [14, 18]
t2 = t1[:]
copie(tab)
qui renvoie une copie superficielle du tableau tab
sans utiliser de slicing.def copie(tab):
"""renvoie une copie superficielle du tableau tab sans utiliser de slicing"""
return [e for e in tab]
On considère le code suivant :
def f(tab):
for i in range(len(tab)//2):
tab[i],tab[-i-1] = tab[-i-1],tab[i]
Après les lignes suivantes :
tab = [2,3,4,5,7,8]
f(tab)
Quelle est la valeur de la variable tab
?
Réponses :
[2,3,4,5,7,8]
Réponse 2 [5,7,8,2,3,4]
[8,7,5,4,3,2]
Réponse 4 [4,3,2,8,7,5]
Solution : [8,7,5,4,3,2]
%%tutor
def incremente(x):
x = x + 1
return x
def incremente_tab(tab):
for k in range(len(tab)):
tab[k] = tab[k] + 1
a = 5
t1 = [5, 6, 7]
b = incremente(a)
incremente_tab(t1)
On veut écrire une procédure echange(tab, i, j)
qui échange les éléments d'index i
et j
d'un tableau tab
. On fournit le modèle ci-dessous :
def echange(tab, i, j):
assert 0 <= i < len(tab) and 0 <= j < len(tab), "message d'erreur"
# à compléter
Solution :
def echange(tab, i, j):
assert 0 <= i < len(tab) and 0 <= j < len(tab), "index hors des bornes"
tab[i], tab[j] = tab[j], tab[i]
permutation_circulaire(tab)
qui modifie la position des éléments du tableau tab
par permutation circulaire de gauche à droite : >>> t = list(range(6))
>>> t
[0, 1, 2, 3, 4, 5]
>>> permutation_circulaire(t)
>>> t
[5, 0, 1, 2, 3, 4]
>>> permutation_circulaire(t)
>>> t
[4, 5, 0, 1, 2, 3]
def permutation_circulaire(tab):
dernier = tab[len(tab) - 1]
for k in range(len(tab) - 1, 0, -1):
tab[k] = tab[k-1]
tab[0] = dernier
t = list(range(6))
t
permutation_circulaire(t)
t
filtre_notes(tab)
qui extrait toutes les notes inférieures à 10 d'un tableau de notes entre 0 et 20 et les renvoie dans un autre tableau.def filtre_notes(tab):
"""Extrait toutes les notes inférieures à 10
d'un tableau de notes entre 0 et 20
et les renvoie dans un autre tableau"""
return [note for note in tab if note < 10]
def filtre_notes2(tab):
"""Extrait toutes les notes inférieures à 10
d'un tableau de notes entre 0 et 20
et les renvoie dans un autre tableau"""
tab2 = []
for note in tab:
if note < 10:
tab2.append(note)
return tab2
def maximum_pos(tab):
"""Renvoie le maximum d'un tableau passé en paramètre
et le tableau des positions où ce maximum est atteint."""
if len(tab) == 0:
return [None, []]
maxi = tab[0]
pos = [0]
for k in range(1, len(tab)):
if tab[k] > maxi:
maxi = tab[k]
pos = [k]
elif tab[k] == maxi:
pos.append(k)
return [maxi, pos]
def f(L):
S = []
for i in range(len(L)-1):
S.append(L[i] + L[i+1])
return S
Quel est le tableau renvoyé par f([1, 2, 3, 4, 5, 6])
?
[3, 5, 7, 9, 11, 13]
[1, 3, 5, 7, 9, 11]
[3, 5, 7, 9, 11]
Solution : [3, 5, 7, 9, 11]
def f(L):
S = []
for i in range(len(L)-1):
S.append(L[i] + L[i+1])
return S
print(f([1, 2, 3, 4, 5, 6]))