Exercice Corrigé: Python Avancé – Partie 4

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:

Écrire un programme Python pour extraire l’année, le mois, la date et l’heure en utilisant Lambda.

Exemple:

Date: 2024-09-15 14:49:58.612345
Année: 2024
Mois 9
Jour: 15
Heure: 14:49:58.612345
Solution:

import datetime

# Récupérer la date et l'heure actuelles
now = datetime.datetime.now()
print('Date:',now)

# Définir une fonction lambda 'year' pour extraire l'année de l'objet datetime 'x'.
year = lambda x: x.year
# Définir une fonction lambda 'month' pour extraire le mois
month = lambda x: x.month
# Définir une fonction lambda 'day' pour extraire le jour
day = lambda x: x.day
# Définir une fonction lambda 't' pour extraire l'heure
t = lambda x: x.time()

print('Année:',year(now))
print('Mois',month(now))
print('Jour:',day(now))
print('Heure:',t(now)) 

Sortie:

Date: 2024-09-15 14:49:58.612345
Année: 2024
Mois 9
Jour: 15
Heure: 14:49:58.612345
 

Exercice 2:

Écrire un programme Python pour vérifier si une chaîne donnée est un nombre ou non en utilisant Lambda.

Exemple:

is_num('15') -> True
is_num('1.5') -> True
is_num('001') -> True
is_num('F001') -> False
Solution:

# Définir une fonction lambda 'is_num' qui vérifie si une chaîne donnée 's' représente un nombre
# Elle supprime d'abord la première virgule de la chaîne en utilisant 'replace()',
# puis vérifie si la chaîne résultante est composée de chiffres en utilisant 'isdigit()'
is_num = lambda s: s.replace('.', '', 1).isdigit()

# Vérifier si les chaînes données sont numériques en utilisant la fonction lambda 'is_num'
print(is_num('15'))
print(is_num('1.5'))
print(is_num('001')) 
print(is_num('F001'))

Sortie:

True
True
True
False
 

Exercice 3:

Ecrire un programme Python pour créer des séries de Fibonacci jusqu’à n en utilisant Lambda.

Exemple:

Série de Fibonacci jusqu'à 2:
[0, 1]

Série de Fibonacci jusqu'à 10:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Solution:

# Importer la fonction 'reduce' du module 'functools'
from functools import reduce

# Définir une fonction lambda 'fibonacci' qui génère une série de Fibonacci jusqu'à 'n' éléments
# Elle utilise la fonction 'reduce()' avec une fonction lambda et une liste initiale [0, 1] pour générer la série de Fibonacci.
fibonacci = lambda n: reduce(lambda x, _: x + [x[-1] + x[-2]], range(n - 2), [0, 1])

print("Série de Fibonacci jusqu'à 2:")
print(fibonacci(2))

print("\nSérie de Fibonacci jusqu'à 10:")
print(fibonacci(10))

Sortie:

Série de Fibonacci jusqu'à 2:
[0, 1]

Série de Fibonacci jusqu'à 10:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
 

Exercice 4:

Écrire un programme Python pour trouver l’intersection de deux tableaux donnés en utilisant Lambda.

Exemple:

Tableaux originaux:
[1, 2, 3, 5, 7, 8, 9, 10]
[2, 4, 5, 9]

Intersection de ces deux tableaux:  [2, 5, 9]
Solution:

tab1 = [1, 2, 3, 5, 7, 8, 9, 10]
tab2 = [2, 4, 5, 9]

print("Tableaux originaux:")
print(tab1)
print(tab2)

# Utiliser la fonction 'filter()' avec une fonction lambda pour trouver l'intersection de 'tab1' et 'tab2'
# Filtrer les éléments de 'tab2' qui sont également présents dans 'tab1' à l'aide de la fonction lambda
res = list(filter(lambda x: x in tab1, tab2))

print("\nIntersection de ces deux tableaux: ", res) 

Sortie:

Tableaux originaux:
[1, 2, 3, 5, 7, 8, 9, 10]
[2, 4, 5, 9]

Intersection de ces deux tableaux:  [2, 5, 9]
 

Exercice 5:

Écrire un programme Python pour réarranger les nombres positifs et négatifs dans un tableau donné en utilisant Lambda.

Exemple:

Tableaux original:
[-2, 5, -4, 6, 3, 2, -6]

Réorganiser les nombres positifs et négatifs:
[2, 3, 5, 6, -6, -4, -2]
Solution:

tab = [-2, 5, -4, 6, 3, 2, -6]

print("Tableaux original:")
print(tab)

# Utiliser la fonction 'sorted()' pour réorganiser les éléments dans 'tab' en fonction d'une clé personnalisée
# Le paramètre 'key' utilise une fonction lambda pour trier les éléments:
# Elle place les nombres positifs avant les nombres négatifs et les zéros, en gardant leur ordre initial
# Les zéros sont placés au début (index 0) de la liste triée.
res = sorted(tab, key=lambda i: 0 if i == 0 else -1 / i)

print("\nRéorganiser les nombres positifs et négatifs:")
print(res)

Sortie:

Tableaux original:
[-2, 5, -4, 6, 3, 2, -6]

Réorganiser les nombres positifs et négatifs:
[2, 3, 5, 6, -6, -4, -2]
 

Exercice 6:

Écrire un programme Python pour compter les nombres pairs et impairs dans un tableau d’entiers donné en utilisant Lambda.

Exemple:

Tableaux original:
[1, 2, 3, 5, 7, 8, 9, 10]

Nombre de nombres pairs:  3
Nombre de nombres impairs:  5
Solution:

tab = [1, 2, 3, 5, 7, 8, 9, 10]

print("Tableaux original:")
print(tab) 

# Utiliser la fonction 'filter()' avec des fonctions lambda pour filtrer et compter le nombre de nombres pairs et impairs
# Utiliser 'filter()' avec une fonction lambda pour filtrer et compter le nombre de nombres impairs dans 'tab'
impairs = len(list(filter(lambda x: (x % 2 != 0), tab)))

# Utilisez 'filter()' avec une fonction lambda pour filtrer et compter le nombre de nombres pairs dans 'tab'.
pairs = len(list(filter(lambda x: (x % 2 == 0), tab)))

print("\nNombre de nombres pairs: ", pairs)
print("Nombre de nombres impairs: ", impairs)

Sortie:

Tableaux original:
[1, 2, 3, 5, 7, 8, 9, 10]

Nombre de nombres pairs:  3
Nombre de nombres impairs:  5
 

Exercice 7:

Écrire un programme Python pour filtrer une liste donnée afin de trouver les valeurs dans la liste qui ont une longueur de 3 en utilisant Lambda.

Exemple:

Liste original:
['Alex', 'Bob', 'Olivier', 'Ali', 'Emily']

Noms ayant une longueur de 3 caractères:
Bob
Ali
Solution:

names = ['Alex', 'Bob', 'Olivier', 'Ali', 'Emily']

print("Liste original:")
print(names) 

# Utiliser la fonction 'filter()' avec une fonction lambda pour filtrer les jours avec une longueur de 3 caractères
# La fonction lambda vérifie la longueur de chaque nom et ne garde que les jours ayant une longueur de 3 caractères.
# Les chaînes vides ('') sont filtrées pour ne garder que les jours avec une longueur de 3 caractères
names = filter(lambda name: name if len(name) == 3 else '', names)

print("\nNoms ayant une longueur de 3 caractères:")
# Parcourez les jours filtrés et affichez chaque nom ayant une longueur de 3 caractères.
for i in names:
    print(i)

Sortie:

Liste original:
['Alex', 'Bob', 'Olivier', 'Ali', 'Emily']

Noms ayant une longueur de 3 caractères:
Bob
Ali
 

Exercice 8:

Écrire un programme Python pour additionner deux listes données en utilisant map et lambda.

Exemple:

Liste original:
[1, 2, 3]
[3, 2, 1]

Après avoir additionné deux listes
[4, 4, 4]
Solution:

nbrs1 = [1, 2, 3]
nbrs2 = [3, 2, 1]

print("Liste original:")
print(nbrs1)
print(nbrs2)

# Utiliser la fonction 'map()' avec une fonction lambda pour ajouter les éléments correspondants de 'nbrs1' et 'nbrs2'
# Appliquer la fonction lambda aux paires d'éléments de 'nbrs1' et 'nbrs2' et générer un nouvel itérable 'res'.
res = map(lambda x, y: x + y, nbrs1, nbrs2)

print("\nAprès avoir additionné deux listes")
print(list(res))

Sortie:

Liste original:
[1, 2, 3]
[3, 2, 1]

Après avoir additionné deux listes
[4, 4, 4]
 

Exercice 9:

Écrire un programme Python pour trouver des palindromes dans une liste donnée de chaînes de caractères en utilisant Lambda.

Exemple:

Liste original:
['php', 'alo', 'bob', 'anna', 'java', 'c']

Liste des palindromes:
['php', 'bob', 'anna', 'c']
Solution:

liste = ["php", "alo", "bob", "anna", "java", "c"]

print("Liste original:")
print(liste) 

# Utiliser la fonction 'filter()' avec une fonction lambda pour filtrer les palindromes de la liste
# Filtrer les éléments de 'liste' en utilisant la fonction lambda pour garder les chaînes qui sont des palindromes
# La fonction lambda vérifie si une chaîne est égale à son inverse en joignant ses caractères dans l'ordre inverse.
res = list(filter(lambda x: (x == "".join(reversed(x))), liste))

print("\nListe des palindromes:")
print(res)

Sortie:

Liste original:
['php', 'alo', 'bob', 'anna', 'java', 'c']

Liste des palindromes:
['php', 'bob', 'anna', 'c']
 

Exercice 10:

Écrire un programme Python pour trouver tous les anagrammes d’une chaîne dans une liste donnée de chaînes en utilisant Lambda.

Exemple:

Liste original:
['arme', 'more', 'mare', 'amer', 'maere']

Anagrammes de 'rame' dans la chaîne ci-dessus: 
['arme', 'mare', 'amer']
Solution:

from collections import Counter

liste = ["arme", "more", "mare", "amer", "maere"]
str = "rame"

print("Liste original:")
print(liste)  

# Utiliser la fonction 'filter()' avec une fonction lambda pour filtrer les anagrammes de 'Rame' de la liste
# Filtrer les éléments de 'liste' en utilisant la fonction lambda pour garder les chaînes qui sont des anagrammes de 'Rame'
# La fonction lambda vérifie si le compteur de 'str' (nombre de caractères) est égal au compteur de chaque chaîne 'x'.
res = list(filter(lambda x: (Counter(str) == Counter(x)), liste))

print("\nAnagrammes de 'rame' dans la chaîne ci-dessus: ")
print(res)

Sortie:

Liste original:
['arme', 'more', 'mare', 'amer', 'maere']

Anagrammes de 'rame' dans la chaîne ci-dessus: 
['arme', 'mare', 'amer']
 

É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 *