# 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"