Python

Pair impair Python : exercices corrigés et applications

Python est un langage de programmation puissant et polyvalent qui offre de nombreuses fonctionnalités pour travailler avec des nombres, y compris la possibilité de déterminer si un nombre est pair ou impair. Dans cet article, nous allons explorer plusieurs exercices corrigés et applications pratiques de la vérification de la parité en Python.

Lire le cours complet : Pair Impair en Python – Guide Complet

Exercice 1 : Vérifier si un nombre est pair ou impair

Le premier exercice consiste à écrire une fonction simple en Python pour déterminer si un nombre donné est pair ou impair. Voici une solution possible :

def est_pair_ou_impair(nombre):
    if nombre % 2 == 0:
        return "pair"
    else:
        return "impair"

Vous pouvez utiliser cette fonction en passant un nombre en argument, et elle vous retournera “pair” ou “impair” en fonction de la parité du nombre.

Exercice 2 : Trouver tous les nombres pairs ou impairs dans une liste

Supposons que vous ayez une liste de nombres et que vous souhaitiez trouver tous les nombres pairs ou impairs de cette liste. Voici comment vous pourriez le faire en Python :

def trouver_pairs_impairs(liste):
    pairs = []
    impairs = []
    for nombre in liste:
        if nombre % 2 == 0:
            pairs.append(nombre)
        else:
            impairs.append(nombre)
    return pairs, impairs

Cette fonction prend une liste de nombres en entrée et renvoie deux listes distinctes, l’une contenant tous les nombres pairs et l’autre contenant tous les nombres impairs.

Application 1 : Vérifier la parité d’un nombre d’itérations

Supposons que vous ayez un programme qui effectue un certain nombre d’itérations, et vous souhaitez vérifier si le nombre d’itérations est pair ou impair. Vous pouvez utiliser la fonction est_pair_ou_impair que nous avons définie précédemment pour cela.

nombre_iterations = 10

if est_pair_ou_impair(nombre_iterations) == "pair":
    print("Le nombre d'itérations est pair.")
else:
    print("Le nombre d'itérations est impair.")
Application 2 : Filtrer une liste en utilisant la parité

Imaginez que vous ayez une liste de nombres et que vous souhaitiez filtrer cette liste pour n’inclure que les nombres pairs. Vous pouvez utiliser la fonction trouver_pairs_impairs que nous avons définie précédemment.

liste_de_nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pairs, impairs = trouver_pairs_impairs(liste_de_nombres)

print("Nombres pairs :", pairs)

Cette application vous permet de séparer facilement les nombres pairs des nombres impairs dans une liste donnée.

Série d’exercices avancés portant sur la manipulation de nombres pairs et impairs en Python
Conversion binaire et parité


Écrivez une fonction qui prend un nombre entier positif en entrée et retourne True s’il a une parité paire en notation binaire et False sinon.

Manipulation avancée de listes


Écrivez une fonction qui prend une liste de nombres en entrée et renvoie deux listes : une contenant les nombres pairs et l’autre contenant les nombres impairs, tout en conservant l’ordre initial des éléments.

Somme spéciale


Écrivez une fonction qui prend une liste de nombres en entrée et renvoie la somme des nombres pairs élevés au carré.

Séquence de Fibonacci avec parité


Écrivez une fonction qui génère les n premiers termes de la séquence de Fibonacci, mais seulement les termes qui sont impairs.

Série de Taylor


Implémentez la série de Taylor pour calculer la fonction exponentielle ( e^x ), mais en utilisant uniquement des termes avec une parité spécifique (par exemple, alternant entre nombres pairs et impairs).

Modélisation de jeu de plateau


Créez une classe Python pour modéliser un jeu de plateau dans lequel les joueurs déplacent un pion sur une grille de taille variable. Limitez les mouvements du pion en fonction de sa parité actuelle.

Optimisation d’algorithme


Améliorez un algorithme existant (par exemple, un algorithme de tri ou de recherche) en exploitant la parité des éléments pour réduire la complexité temporelle ou spatiale.

Énigmes mathématiques


Concevez des énigmes mathématiques qui nécessitent la manipulation de nombres pairs et impairs pour être résolues.

Développement de jeux


Créez un petit jeu (par exemple, un jeu de devinettes ou un jeu de logique) qui repose sur des mécanismes de jeu basés sur la parité des nombres.

Analyse de données


Utilisez des données réelles et effectuez une analyse exploratoire en mettant en évidence des tendances ou des patterns basés sur la parité des valeurs.

D’accord, nous allons résoudre quelques-uns de ces exercices avec du code Python.

Conversion binaire et parité
def parite_binaire(nombre):
    binaire = bin(nombre)[2:]  # Convertir en binaire et ignorer le préfixe '0b'
    nb_uns = binaire.count('1')
    return nb_uns % 2 == 0  # True si le nombre de '1' est pair, False sinon

# Exemple d'utilisation
print(parite_binaire(10))  # Output: True
print(parite_binaire(15))  # Output: False
Manipulation avancée de listes
def separer_pairs_impairs(liste):
    pairs = [x for x in liste if x % 2 == 0]
    impairs = [x for x in liste if x % 2 != 0]
    return pairs, impairs

# Exemple d'utilisation
liste_nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pairs, impairs = separer_pairs_impairs(liste_nombres)
print("Pairs:", pairs)     # Output: [2, 4, 6, 8, 10]
print("Impairs:", impairs) # Output: [1, 3, 5, 7, 9]
Somme spéciale
def somme_pairs_carres(liste):
    somme = sum(x ** 2 for x in liste if x % 2 == 0)
    return somme

# Exemple d'utilisation
liste_nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
resultat = somme_pairs_carres(liste_nombres)
print("Somme des carrés des nombres pairs:", resultat)  # Output: 220

Ces exemples illustrent comment résoudre certains des exercices avancés en utilisant du code Python.

D’accord, continuons avec la résolution des autres exercices :

Séquence de Fibonacci avec parité
def fibonacci_impairs(n):
    fib = [1, 1]
    while len(fib) < n:
        next_term = fib[-1] + fib[-2]
        if next_term % 2 != 0:
            fib.append(next_term)
        else:
            fib.append(next_term + 1)  # Si le prochain terme est pair, on lui ajoute 1 pour le rendre impair
    return fib

# Exemple d'utilisation
n = 10
sequence = fibonacci_impairs(n)
print("Les", n, "premiers termes de la séquence de Fibonacci impairs sont:", sequence)
Série de Taylor
import math

def taylor_exponentielle(x, n):
    resultat = 0
    for i in range(n):
        terme = ((-1) ** i) * (x ** (2 * i)) / math.factorial(2 * i)
        resultat += terme
    return resultat

# Exemple d'utilisation
x = 2
n = 5
approximation = taylor_exponentielle(x, n)
print("Approximation de e^{} avec {} termes de la série de Taylor:", x, n, approximation)
Modélisation de jeu de plateau
class JeuDePlateau:
    def __init__(self, taille_plateau):
        self.taille_plateau = taille_plateau
        self.position = 0  # Position initiale du pion

    def deplacer(self, deplacement):
        nouvelle_position = self.position + deplacement
        if nouvelle_position % 2 == self.position % 2:  # Vérifier la parité pour limiter les mouvements
            self.position = nouvelle_position

# Exemple d'utilisation
jeu = JeuDePlateau(10)
jeu.deplacer(3)  # Le pion se déplace de 3 cases (la position reste inchangée car la parité est la même)
print("Position du pion après déplacement:", jeu.position)
Optimisation d’algorithme


Supposons que nous devons rechercher un élément dans un tableau trié. Plutôt que d’utiliser la recherche binaire classique, nous pouvons exploiter la parité des éléments dans le tableau pour réduire le nombre d’itérations nécessaires. Voici un exemple d’algorithme de recherche binaire optimisé pour les tableaux contenant des nombres pairs :

def recherche_binaire_pairs(tab, element):
    debut = 0
    fin = len(tab) - 1
    while debut <= fin:
        milieu = (debut + fin) // 2
        if tab[milieu] % 2 == 0:
            if tab[milieu] == element:
                return True
            elif tab[milieu] < element:
                debut = milieu + 1
            else:
                fin = milieu - 1
        else:
            fin = milieu - 1
    return False

# Exemple d'utilisation
tableau = [1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
element_recherche = 10
print(recherche_binaire_pairs(tableau, element_recherche))  # Output: True
Énigmes mathématiques


Concevons une énigme mathématique :
“Trouvez le prochain nombre impair dans la séquence : 6, 9, 12, 15, 18, …”.

def prochain_impair(sequence):
    for nombre in sequence:
        if nombre % 2 != 0:
            return nombre + 3  # Le prochain impair dans la séquence est obtenu en ajoutant 3 au nombre impair actuel

# Exemple d'utilisation
sequence = [6, 9, 12, 15, 18]
print("Le prochain nombre impair dans la séquence est:", prochain_impair(sequence))  # Output: 21
Développement de jeux

Créons un petit jeu où les joueurs doivent deviner si le nombre suivant dans une séquence est pair ou impair, en fonction des nombres précédents de la séquence.

def deviner_parite_suivant(sequence):
    for i in range(len(sequence) - 1):
        if sequence[i + 1] % 2 == 0 and sequence[i] % 2 == 0:
            resultat = "pair"
        elif sequence[i + 1] % 2 != 0 and sequence[i] % 2 != 0:
            resultat = "impair"
        else:
            resultat = "indéterminé"
            break
    return resultat

# Exemple d'utilisation
sequence = [2, 4, 6, 8, 10]
resultat = deviner_parite_suivant(sequence)
print("Le prochain nombre dans la séquence est:", resultat)  # Output: pair
Analyse de données


Utilisons un ensemble de données fictif pour effectuer une analyse exploratoire en mettant en évidence des tendances basées sur la parité des valeurs.

donnees_ventes = [120, 150, 130, 200, 180, 190, 160, 170, 140, 210]

# Séparation des ventes en ventes de produits pairs et impairs
ventes_pairs = [vente for vente in donnees_ventes if vente % 2 == 0]
ventes_impairs = [vente for vente in donnees_ventes if vente % 2 != 0]

# Calcul des moyennes de ventes pour chaque catégorie
moyenne_ventes_pairs = sum(ventes_pairs) / len(ventes_pairs)
moyenne_ventes_impairs = sum(ventes_impairs) / len(ventes_impairs)

# Affichage des résultats
print("Moyenne des ventes pour les produits pairs:", moyenne_ventes_pairs)
print("Moyenne des ventes pour les produits impairs:", moyenne_ventes_impairs)

Ces solutions résolvent les exercices de 8 à 10 en utilisant du code Python. Si vous avez d’autres questions ou si vous avez besoin de plus de détails, n’hésitez pas à demander !

Synthèse 😉

Python offre des fonctionnalités simples et puissantes pour travailler avec des nombres et vérifier leur parité. Les exercices corrigés et les applications pratiques présentés dans cet article vous montrent comment utiliser ces fonctionnalités pour résoudre divers problèmes. Que vous travailliez sur des projets de programmation ou que vous recherchiez des moyens d’optimiser vos tâches de traitement des données, la manipulation de la parité des nombres en Python peut s’avérer très utile.

Autres articles

crossorigin="anonymous
Guide Complet : Les Fonctions en Python...
Les fonctions en Python sont un élément clé de la...
Read more
Conversion de Binaire en Hexadécimal en Python
La conversion entre différents systèmes de numérotation est une compétence...
Read more
Différence entre une Liste et un Tableau...
Python est un langage de programmation très polyvalent et puissant,...
Read more

Laisser un commentaire

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