2023-09-07 17:27:38 +00:00
|
|
|
# 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))
|
|
|
|
|
2023-09-21 12:21:53 +00:00
|
|
|
assert plus_courte_distance([(7, 9), (2, 5), (5, 2)], (0, 0)) == (2, 5), "erreur"
|