Aller au contenu

Devoir sur les bases de Python AA

L'usage de la calculatrice n'est pas autorisé

Durée: 55 min

Exercice 1

Que vaut a après l'exécution du script suivant ?

a = 3
a = a + 2
a = 3*a
a) b) c) d)
3*a 3 a 15

Exercice 2

Que va afficher le script python suivant ?

a = 3
b = `2`
a = str(a)
print (a + b)
a) b) c) d)
5 32 ERROR 3+2

Exercice 3

Quel est le résultat affiché par le script suivant ?

a = 3
b = 6
if (a > 5) or (b != 10) :
    b = 4
else :
    b = 2
print (b)
a) b) c) d)
2 4 6 ERROR

Exercice 4

Quel est le résultat du script suivant ?

x = "Bonsoir"
nombre = 0
for c in x :
    nombre = nombre + 1
print (nombre)
a) b) c) d)
7 9 0 8

Exercice 5

Quel est le résultat attendu après l’exécution de ce programme ?

CauseToujours = 10
while (CauseToujours > 0) :
    CauseToujours = CauseToujours + 10
print (CauseToujours)
a) b) c) d)
100 10 Rien CauseToujours

Exercice 6

Quelle est la réponse affichée après l’exécution du programme Python suivant ?

def test (a):
    a = a + 10
    return a
a = 20
print(a)
a = test(40)
print(a)
a) b) c) d)
20 20 20 50 Erreur 20 40

Exercice 7

Que va afficher le programme suivant ?

def augmente():
    global valeur
    valeur = valeur + 1
    valeur = double (valeur)
    return valeur

def double (valeur):
    valeur = 2*valeur
    return valeur

valeur = 10
resultat = augmente()
print(resultat)
print(valeur)
a) b) c) d)
22 22 22 10 22 11 22 20

Exercice 8

On considère le programme suivant :

nombre = 0
for i in range (1,6) :
    nombre = nombre - 2
    print(nombre)

Écrire sur la feuille annexe ce qui s'affiche sur la console lors de l'exécution de ce programme.

Exercice 9

Écrire une fonction nettoie qui retourne une liste à laquelle on a enlevé tous les éléments égaux à 0. Aucune méthode sur les listes n'est souhaitée.

Exemple :

>>>nettoie([1,4,0,'truc',0,9])
>>>[1,4,'truc',9]

Aide: [7]+[10,2] retourne [7,10,2]

Corrigé
def nettoie(L):
    res=[]
    for e in L:
        if e !=0:
            res=res+[e]
    return res

Une autre version avec une liste créée par compréhension.

def nettoie(L):
    return [element for element in L if element != 0]

Exercice 10

Écrire une fonction compare(chaine1,chaine2) qui retourne True si deux chaînes de caractères contiennent les mêmes caractères (pas forcément dans le même ordre ni le même nombre) et False sinon.

Corrigé
def compare(chaine1,chaine2):
    res = True
    for elem in chaine1:
        res = res and elem in chaine2
    if res == False:
        return False
    else:
        for elem in chaine2:
            res = res and elem in chaine1
    return res