Exercice Corrigé: Les fonctions en Python

Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Ecrivez une fonction Python pour trouver le maximum de trois nombres.

Exemple:

(3, 7, 1) -> 7
Solution:

# Définir une fonction qui renvoie le maximum de deux nombres
def max_de_deux(x, y):
    # Vérifier si x est supérieur à y
    if x > y:
        # Si x est plus grand, renvoyer x
        return x
    # Si y est supérieur ou égal à x, retourner y
    return y

# Définir une fonction qui renvoie le maximum de trois nombres
def max_de_trois(x, y, z):
    # Appeler la fonction max_de_deux pour trouver le maximum de y et z,
    # puis le compare à x pour trouver le maximum final
    return max_de_deux(x, max_de_deux(y, z))

# Afficher le résultat
print(max_de_trois(3, 7, 1))
 

Exercice 2:

Écrire une fonction Python pour additionner tous les nombres d’une liste.

Exemple:

(4, 2, 1, 0, 6) -> 13
Solution:

# Définir une fonction qui prend une liste de nombres en entrée.
def somme(nbrs):
    # Initialiser une variable total pour stocker la somme des nombres, en commençant par 0
    total = 0
    
    # Parcourir chaque élément i de la liste nbrs.
    for i in nbrs:
        # Ajouter l'élément courant 'i' au 'total'
        total += i
    
    # Renvoie la somme finale stockée dans la variable 'total'.
    return total

# Afficher le résultat 
print(somme((4, 2, 1, 0, 6))) 
 

Exercice 3:

Écrire une fonction Python pour multiplier tous les nombres d’une liste.

Exemple:

(4, 2, 1, 3, 6) -> 144
Solution:

# Définir une fonction qui prend une liste de nombres en entrée.
def multiply(nbrs):
    # Initialiser une variable total pour stocker le résultat de la multiplication, en commençant par 1
    total = 1
    
    # Parcourir chaque élément i de la liste nbrs.
    for i in nbrs:
        # Multiplier l'élément courant 'i' au 'total'
        total *= i
    
    # Renvoie la multiplication finale stockée dans la variable 'total'.
    return total

# Afficher le résultat 
print(multiply((4, 2, 1, 0, 6))) 
 

Exercice 4:

Écrire un programme Python pour inverser une chaîne de caractères.

Exemple:

"123hello" -> olleh321
Solution:

# Définir une fonction qui prend en entrée une chaîne de caractères str.
def reverse(str):
    # Initialiser une chaîne vide 'rstr' pour stocker la chaîne inversée
    rstr = ''
    
    # Calculer la longueur de la chaîne d'entrée 'str'
    index = len(str)
    
    # Exécuter une boucle while jusqu'à ce que 'index' devienne 0
    while index > 0:
        # Concaténer le caractère à l'index - 1 de 'str' à 'rstr'
        rstr += str[index - 1]
        
        # Décrémenter l'index de 1 pour la prochaine itération
        index = index - 1
    
    # Renvoie la chaîne inversée stockée dans 'rstr'
    return rstr

# Afficher le résultat 
print(reverse("123hello")) 
 

Exercice 5:

Écrire une fonction Python pour calculer la factorielle d’un nombre (un entier non négatif). La fonction accepte le nombre comme argument.

Exemple:

Entrez un nombre pour calculer le factiorial : 4                                                                  
24
Solution:

# Définir une fonction qui calcule la factorielle d'un nombre n
def fact(n):
    # Vérifier si le nombre n est égal à 0
    if n == 0:
        # Si n est 0, le résultat est 1 (la factorielle de 0 est 1)
        return 1
    else:
        # Si n est différent de 0, appeler récursivement la fonction fact avec (n-1) et la multiplier par n.
        return n * fact(n - 1)

# Demander à l'utilisateur de saisir un nombre pour calculer sa factorielle et la stocker dans la variable n.
n = int(input("Entrez un nombre pour calculer la factorielle:"))

# Afficher la factorielle du nombre saisi par l'utilisateur
print(fact(n))
 

Exercice 6:

Écrire une fonction Python pour vérifier si un nombre est compris dans un intervalle donné.

Exemple:

range(1, 5)
2 est compris dans la plage donnée.
9: Le nombre est hors de la plage donnée.
Solution:

# Définir une fonction qui vérifie si un nombre n est compris entre 1 et 5 (inclus).
def checkRange(n):
    # Vérifier si n est compris dans l'intervalle de 1 à 5 (inclus) à l'aide de l'instruction 'in range()'.
    if n in range(1, 5):
        # Si 'n' est compris dans l'intervalle, afficher que 'n' est compris dans la plage donné.
        print("%s est compris dans la plage donnée." % str(n))
    else:
        # Si 'n' est en dehors de la plage, afficher que le nombre est en dehors de la plage donnée.
        print("Le nombre est hors de la plage donnée.")

# Appeler la fonction avec l'argument 2
checkRange(2)
 

Exercice 7:

Écrire un programme Python pour exécuter une chaîne de caractères contenant du code Python.

Exemple:

'print("hello world")' -> hello world
Solution:

# Définir une variable 'strcode' contenant un code Python sous forme de chaîne de caractères
strcode = 'print("hello world")'

# Définir une variable code contenant du code Python sous la forme d'une chaîne de plusieurs lignes.
code = """
def mutiply(x,y):
    return x*y

print('La multiplication de 2 et 3 est: ',mutiply(2,3))
"""

# Exécuter le code Python dans 'strcode'
exec(strcode)

# Exécuter le code Python dans 'code'
exec(code)

Sortie:

hello world
La multiplication de 2 et 3 est:  6
 

Exercice 8:

Écrire un programme Python pour afficher les nombres pairs dans une liste donnée.

Exemple:

[1, 2, 3, 4, 5, 6, 7, 8, 9] -> [2, 4, 6, 8]
Solution:

# Définir une fonction qui prend une liste l en entrée et renvoie une liste de nombres pairs.
def nbr_paire(l):
    # Créer une liste vide res pour stocker les nombres pairs
    res = []
    
    # Parcourir chaque nombre n de la liste d'entrée l.
    for n in l:
        # Vérifier si le nombre n est pair (divisible par 2 sans reste)
        if n % 2 == 0:
            # Si n est pair, il est ajouté à la liste res.
            res.append(n)
    
    # Retourne la liste 'res' contenant des nombres pairs
    return res

# Afficher le résultat
print(nbr_paire([1, 2, 3, 4, 5, 6, 7, 8, 9])) 
 

Exercice 9:

Écrire une fonction Python qui prend une liste et renvoie une nouvelle liste contenant les éléments distincts de la première liste.

Exemple:

[1, 2, 2, 2, 3, 4, 5] -> [1, 2, 3, 4, 5]
Solution:

# Définir une fonction qui prend une liste l en entrée et renvoie une liste d'éléments uniques.
def nbr_distinct(l):
    # Créer une liste vide res pour stocker les éléments uniques
    res = []
    
    # Parcourir chaque élément i de la liste d'entrée l.
    for i in l:
        # Vérifier si l'élément i n'est pas déjà présent dans la liste res.
        if i not in res:
            # Si i n'est pas dans res, l'ajouter à la liste res.
            res.append(i)
    
    # Retourne la liste res contenant des éléments uniques
    return res

# Afficher le résultat
print(nbr_distinct([1, 2, 2, 2, 3, 4, 5]))
 

Exercice 10:

Ecrivez une fonction Python qui prend un nombre en paramètre et vérifie si le nombre est premier ou non.
Note: Un nombre premier est un nombre naturel supérieur à 1 et qui n’a pas d’autres diviseurs positifs que 1 et lui-même.

Exemple:

9 -> False
17 -> True
Solution:

# Définir une fonction qui vérifie si un nombre n est un nombre premier
def nbr_premier(n):
    # Vérifier si 'n' est égal à 1
    if (n == 1):
        # Si 'n' est 1, le résultat est False (1 n'est pas un nombre premier)
        return False
    # Vérifier si 'n' est égal à 2
    elif (n == 2):
        # Si 'n' est 2, retournez True (2 est un nombre premier)
        return True
    else:
        # Parcourir les nombres de 2 à (n-1) en utilisant 'x' comme itérateur.
        for x in range(2, n):
            # Vérifier si 'n' est divisible par 'x' sans aucun reste
            if (n % x == 0):
                # Si 'n' est divisible par 'x', retournez False (ce n'est pas un nombre premier)
                return False
        # Si 'n' n'est pas divisible par un nombre compris entre 2 et (n-1), retournez True (nombre premier)
        return True

# Afficher le résultat
print(nbr_premier(17))
 

Éditeur de code Python: Testez votre code en ligne!


 
QCM Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *