Épreuve pratique



Remplacer une valeur

Écrire la fonction remplacer prenant en argument :

  • une liste d’entiers valeurs
  • un entier valeur_cible
  • un entier nouvelle_valeur

et renvoyant une nouvelle liste contenant les mêmes valeurs que valeurs , dans le même ordre, sauf valeur_cible qui a été remplacé par nouvelle_valeur.

**La liste passée en paramètre ne doit pas être modifiée.**
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def remplacer(valeurs, valeur_cible, nouvelle_valeur):
    


# Tests
# 1er test
valeurs = [3, 8, 7]
assert remplacer(valeurs, 3, 0) == [0, 8, 7]
assert valeurs == [3, 8, 7]
# 2nd test
valeurs = [3, 8, 3, 5]
assert remplacer(valeurs, 3, 0) == [0, 8, 0, 5]
assert valeurs == [3, 8, 3, 5]

Est triée ?

Programmer la fonction est_trie qui prend en paramètre un tableau de valeurs numériques et qui détermine si ce tableau est trié dans l’ordre croissant. La fonction renvoie un booléen True ou False.

**On n'utilisera ni `sort` ni `sorted` dans cet exercice.**
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def est_trie(tableau):
    


# tests
assert     est_trie([0, 5, 8, 8, 9])
assert not est_trie([8, 12, 4])
assert     est_trie([-1, 4])
assert     est_trie([5])
assert     est_trie([])

La classe chien

On souhaite dans cet exercice créer une classe Chien ayant deux attributs :

  • un nom nom de type str,
  • un poids poids de type float.

Cette classe possède aussi différentes méthodes décrites ci-dessous (chien est un objet de type Chien) :

  • chien.donne_nom() qui renvoie la valeur de l’attribut nom ;
  • chien.donne_poids() qui renvoie la valeur de l’attribut poids ;
  • chien.machouille(jouet) qui renvoie son argument, la chaine de caractères jouet, privé de son dernier caractère ;
  • chien.aboie(nb_fois) qui renvoie la chaine 'Ouaf' * nb_fois, où nb_fois est un entier passé en argument ;
  • chien.mange(ration) qui modifie l’attribut poids en lui ajoutant la valeur de l’argument ration (de type float).

On ajoute les contraintes suivantes concernant la méthode mange :

  • on vérifiera que la valeur de ration est comprise entre 0 (exclu) et un dixième du poids du chien (inclus),
  • la méthode renverra True si ration satisfait ces conditions et que l’attribut poids est bien modifié, False dans le cas contraire.

Compléter le code de la classe Chien.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Chien:
    def __init__(self, nom, poids):
        self.... = nom
        self.... = poids

    def donne_nom(self):
        return self....

    def ...(self):
        return self....

    def machouille(self, jouet):
        resultat = ""
        for i in range(...):
            resultat += jouet[...]
        return ...

    def ...(self, ...):
        ...

    def ...(self, ration):
        if ...:
            ...
            return True
        else:
            return ...


# Tests
medor = Chien('Médor', 12.0)
assert medor.donne_nom() == 'Médor'
assert medor.donne_poids() == 12.0
assert medor.machouille('bâton') == 'bâto'
assert medor.aboie(3) == 'OuafOuafOuaf'
assert not medor.mange(2.0)
assert medor.mange(1.0)
assert medor.donne_poids() == 13.0
assert medor.mange(1.3)