tg4/Chapitre 1 - Des bases en python/ex_pour_le_14_sept.py
2023-09-21 14:21:53 +02:00

45 lines
1.5 KiB
Python

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