TD2
Exercice 1 :
Écrivez une fonction somme_liste qui prend une liste de nombres (type List[int]) et
retourne la somme de ses éléments.
Solution
from typing import List
def somme_liste(numbers: List[int]) -> int:
"""
Cette fonction prend une liste de nombres entiers et retourne leur somme en
utilisant une boucle.
:param numbers: Liste d'entiers à additionner
:return: Somme des éléments de la liste
"""
total: int = 0 # Initialise la somme à 0
for number in numbers:
total += number # Ajoute chaque élément de la liste à la somme
return total
# Exemple d'utilisation
resultat = somme_liste([1, 2, 3, 4])
print(resultat) # Sortie : 10
Exercice 2 :
Écrivez une fonction max_liste qui prend une liste de nombres (type List[float]) et
retourne le plus grand élément.
Solution
from typing import List
def max_liste(numbers: List[float]) -> float:
return max(numbers)
# Exemple d'utilisation
resultat = max_liste([1.1, 3.5, 2.8, 4.0])
print(resultat) # Sortie : 4.0
Exercice 3 :
Écrivez une fonction filtrer_pairs qui prend une liste de nombres entiers et retourne
une nouvelle liste contenant uniquement les nombres pairs.
Sollution
from typing import List
def filtrer_pairs(numbers: List[int]) -> List[int]:
result: List[int] = []
for number in numbers:
if number % 2 == 0:
result.append(number)
return result
# Exemple d'utilisation
resultat = filtrer_pairs([1, 2, 3, 4, 5, 6])
print(resultat) # Sortie : [2, 4, 6]
Exercice 4 :
Écrivez une fonction concatener_listes qui prend deux listes (type List[str]) et retourne
une liste concaténée.
sollution
from typing import List
def concatener_listes(list1: List[str], list2: List[str]) -> List[str]:
return list1 + list2
# Exemple d'utilisation
resultat = concatener_listes(["a", "b"], ["c", "d"])
print(resultat) # Sortie : ['a', 'b', 'c', 'd']
Exercice 5 :
Écrivez une fonction est_triee qui prend une liste d'entiers et retourne un booléen
indiquant si la liste est triée par ordre croissant.
Solution
from typing import List
def est_triee(numbers: List[int]) -> bool:
for i in range(len(numbers) - 1):
if numbers[i] > numbers[i + 1]:
return False
return True
# Exemple d'utilisation
resultat = est_triee([1, 2, 3, 4])
print(resultat) # Sortie : True
resultat = est_triee([4, 3, 2, 1])
print(resultat) # Sortie : False
Exercice 6 :
Écrivez une fonction inverser_liste qui prend une liste d'entiers (type List[int]) et
retourne une nouvelle liste contenant les éléments dans l'ordre inverse.
Solution
from typing import List
def inverser_liste(numbers: List[int]) -> List[int]:
return numbers[::-1]
# Exemple d'utilisation
resultat = inverser_liste([1, 2, 3, 4, 5])
print(resultat) # Sortie : [5, 4, 3, 2, 1]
Exercice 7 :
Écrivez une fonction elements_uniques qui prend une liste d'entiers et retourne une
liste contenant uniquement les éléments uniques, sans changer l'ordre d'apparition.
solution
from typing import List
def elements_uniques(numbers: List[int]) -> List[int]:
uniques = []
for number in numbers:
if number not in uniques:
uniques.append(number)
return uniques
# Exemple d'utilisation
resultat = elements_uniques([1, 2, 2, 3, 4, 4, 5])
print(resultat) # Sortie : [1, 2, 3, 4, 5]
Exercice 8 :
Écrivez une fonction calculer_mediane qui prend une liste de nombres et retourne la
médiane. La médiane est :
● Le nombre au milieu si la taille de la liste est impaire.
● La moyenne des deux nombres du milieu si la taille de la liste est paire.
NB : il faut trier la liste avant de calculer la médiane en utilisant la fonction sort().
Solution
from typing import List
def calculer_mediane(numbers: List[float]) -> float:
sorted_numbers = sort(numbers)
n = len(sorted_numbers)
if n % 2 == 1:
return sorted_numbers[n // 2]
else:
milieu1, milieu2 = sorted_numbers[n // 2 - 1], sorted_numbers[n // 2]
return (milieu1 + milieu2) / 2
# Exemple d'utilisation
resultat = calculer_mediane([7, 3, 1, 4, 2])
print(resultat) # Sortie : 3
resultat = calculer_mediane([7, 3, 1, 4])
print(resultat) # Sortie : 3.5