From 4f1a9e828188cfa2d06d1d71152fd2ff64a14018 Mon Sep 17 00:00:00 2001 From: Tipragot Date: Thu, 7 Sep 2023 19:27:38 +0200 Subject: [PATCH] Ajout de l'exercice pour le 14 --- .../ex_pour_le_14_sept.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Chapitre 1 - Des bases en python/ex_pour_le_14_sept.py diff --git a/Chapitre 1 - Des bases en python/ex_pour_le_14_sept.py b/Chapitre 1 - Des bases en python/ex_pour_le_14_sept.py new file mode 100644 index 0000000..f230e49 --- /dev/null +++ b/Chapitre 1 - Des bases en python/ex_pour_le_14_sept.py @@ -0,0 +1,44 @@ +# Exercice 1 +def occurences(n: int) -> list: + """compte les occurences de chaque chiffre dans le nombre entré.""" + occurrences = [0] * 10 + for digit in str(n): + occurrences[int(digit)] += 1 + return occurrences + +# Exercice 2 +def occurences2(s: str) -> dict[str, int]: + """compte les occurences de chaque caractère dans la string entrée.""" + occurrences = {} + for char in s: + occurrences[char] = occurrences.get(char, 0) + 1 + return occurrences + +# Exercice 3 +from math import sqrt + +def distance(point1: tuple[float, float], point2: tuple[float, float]) -> float: + """ Calcule et renvoie la distance entre deux points. """ + return sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2) + +assert distance((1, 0), (5, 3)) == 5.0, "erreur de calcul" + +def plus_courte_distance(tab, depart): + """ Renvoie le point du tableau tab se trouvant à la plus + courte distance du point depart.""" + if not tab: + return None + point = tab[0] + min_dist = distance(tab[0], depart) + for i in range (1, len(tab)): + if distance(tab[i], depart) < min_dist: + point = tab[i] + min_dist = distance(tab[i], depart) + return point + +def plus_courte_distance(tab, depart): # Meilleur version + """ Renvoie le point du tableau tab se trouvant à la plus + courte distance du point depart.""" + return min(tab, key=lambda p: distance(p, depart)) + +assert plus_courte_distance([(7, 9), (2, 5), (5, 2)], (0, 0)) == [2, 5], "erreur"