Devoir sur les bases de Python A
L'usage de la calculatrice n'est pas autorisé
Durée: 55 min
Exercice 1 : Cochez la ou les réponses correctes
-
Qu'affiche le code suivant ?
x = 6 y = 2 print(x ** y) print(x // y)
\(\square\) \(\square\) \(\square\) \(\square\) 66 36 66 36 0 0 3 3 -
Qu'affiche le code suivant ?
var1 = 1 var2 = 2 var3 = "3" print(var1 + var2 + var3)
\(\square\) \(\square\) \(\square\) \(\square\) 6 33 123 Error -
Qu'affiche le code suivant ?
valueOne = 5 ** 2 valueTwo = 5 ** 3 print(valueOne) print(valueTwo)
\(\square\) \(\square\) \(\square\) 10 25 Error: invalid syntax 15 125 -
Quelle est la valeur de
x
après l'exécution du code :x = 0 while (x < 100): x+=2 print(x)
\(\square\) \(\square\) \(\square\) \(\square\) 101 99 100 Boucle infinie -
Qu'affiche le code suivant ?
numbers = [10, 20] items = ['Chair', 'Table'] for x in numbers: for y in items: print(x, y)
\(\square\) \(\square\) 10 'Chair' 10 'Chair' 10 'Table' 10 'Table' 20 'Chair' 20 'Table' -
Qu'affiche le code suivant ?
for num in range(-2,-5,-1): print(num)
\(\square\) \(\square\) \(\square\) \(\square\) -2, -1, -3, -4 -2, -1, 0, 1, 2, 3 -2, -1, 0 -2, -3, -4 -
Qu'affiche le code suivant ?
x = 0 a = 5 b = 5 if a > 0: if b < 0: x = x + 5 elif a > 5: x = x + 4 else: x = x + 3 else: x = x + 2 print(x)
\(\square\) \(\square\) \(\square\) \(\square\) 0 4 2 3 -
Qu'affiche le code suivant ?
res='' for car in 'Jhon': if car != 'o': res=res+car print(res)
\(\square\) \(\square\) \(\square\) 'Jhn' 'Jhon' 'J' 'Jh' 'Jhn' -
Qu'affiche le code suivant ?
for num in range(10, 14): for i in range(2, num): if num%i == 1: print(num) break
\(\square\) \(\square\) \(\square\) 10 10 11 11 13 12 13 -
Qu'affiche le code suivant ?
x = 75 def myfunc(): x = x + 1 print(x) myfunc() print(x)
\(\square\) \(\square\) \(\square\) \(\square\) Error 76 1 None
Exercice 2
Voici la réduction pour le prix d'un billet de train en fonction de l'âge du voyageur :
-
réduction de 50% pour les moins de 10 ans ;
-
réduction de 30% pour les 10 à 18 ans ;
-
réduction de 20% pour les 60 ans et plus.
Écrire une fonction reduction(age)
en Python qui retourne le pourcentage (valeur entière) de réduction en fonction de la variable age
.
Corrigé
def reduction(age):
if age<10:
return 50
elif age<18:
return 30
elif age<60:
return 0
else:
return 20
Exercice 3
Écrire une fonction sommeinverse(nombre)
en Python qui retourne la somme des inverses de 1
jusqu'Ă nombre
. La variable nombre
est un nombre entier.
Exemples
sommeinverse(1)
retourne 1
sommeinverse(2)
retourne 1.5
car \(1+\dfrac{1}{2}=1.5\)
sommeinverse(3)
retourne 1.833333333333333
car \(1+\dfrac{1}{2}+\dfrac{1}{3} \approx 1.833333333333333\)
Corrigé
def sommeinverse(nombre):
S=0
for i in range(1,nombre+1):
S=S+1/i
return S
Exercice 4
On dispose de la liste suivante:
scrabble = ['A',1,'B',3,'C',3,'D',2,'E',1,'F',4,'G',2,'H',4,
'I',1,'J',8,'K',10,'L',1,'M',2,'N',1, 'O',1,
'P',3,'Q',8,'R',1,'S',1,'T',1,'U',1,'V',4,'W',10,
'X',10,'Y',10,'Z',10]
Chaque lettre de l'alphabet est suivie du nombre de points qui lui est attribué au scrabble.
Écrire une fonction `points' en Python spécifiée comme suit:
def points(mot):
"""retourne le nombre de points obtenus au scrabble pour la variable 'mot'"""
Aide
On pourra commencer par Ă©crire une fonction qui retourne le nombre de points d'une lettre.
Corrigé
def points(lettre):
for i in range(len(scrabble)):
if scrabble[i]==lettre:
return scrabble[i+1]
def pointsmot(mot):
P=0
for lettre in mot:
P=P+points(lettre)
return P
Exercice 5 (from codex)
Écrire une fonction nb_max_consecutifs(motif,phrase)
qui prend en arguments un caractère motif
(une chaine de caractères de longueur 1), et une chaine de caractères phrase
à analyser. La fonction retourne le nombre maximal d'occurrences consécutives de motif
dans phrase
.
Exemple
>>> phrase = "Dans une phrase !!! Ă©crite !!! certains utilisateurs abusent des points d'exclamations !!"
>>> nb_max_consecutifs("!", phrase)
3
Corrigé
def nb_max_consecutifs(motif, phrase):
compteur = 0
maxi = 0
for lettre in phrase :
if lettre==motif :
compteur = compteur + 1
else :
if compteur > maxi :
maxi = compteur
compteur = 0
return maxi