2023-09-07 17:05:46 +00:00
|
|
|
|
# Exercice 1
|
|
|
|
|
def mini(L):
|
|
|
|
|
"""renvoie le minimum de la liste L."""
|
|
|
|
|
return min(L)
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
|
|
|
|
|
def mini(L): # Alternative
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""renvoie le minimum de la liste L."""
|
2023-09-07 17:13:49 +00:00
|
|
|
|
m = None
|
|
|
|
|
for v in L:
|
|
|
|
|
if m is None or v < m:
|
|
|
|
|
m = v
|
2023-09-07 17:05:46 +00:00
|
|
|
|
return m
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
|
2023-09-07 17:05:46 +00:00
|
|
|
|
# Exercice 2
|
2023-09-07 17:13:49 +00:00
|
|
|
|
def occurences(n: int) -> list:
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""compte les occurences de chaque chiffre dans le nombre entré."""
|
|
|
|
|
occurrences = [0] * 10
|
|
|
|
|
for digit in str(n):
|
|
|
|
|
occurrences[int(digit)] += 1
|
|
|
|
|
return occurrences
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
|
|
|
|
|
def occurences2(s: str) -> dict[str, int]:
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""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
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
|
|
|
|
|
cette_phrase = 'gkjgkfjdfjtgmeek,beeknqel!kh56456fg535574ϛ Ϝ ϝ Ϟ‡ ˆ ϟ‡ Ϡ ϡ Ϣ ϣ Ϥ ϥ Ϧ ϧ Ϩϛ Ϝ ϝ Ϟ ϟ Ϡ ϡ ϛ Ϝ ϝ Ϟ ϟ Ϡ ϡ Ϣ '
|
|
|
|
|
print(cette_phrase, occurences2(cette_phrase))
|
|
|
|
|
|
2023-09-07 17:05:46 +00:00
|
|
|
|
|
|
|
|
|
# Exercice 3
|
2023-09-07 17:13:49 +00:00
|
|
|
|
def repet(liste: list) -> bool:
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""renvoie True s'il y a au moins une répétition dans la liste entrée,
|
|
|
|
|
renvoie False sinon."""
|
|
|
|
|
return len(set(liste)) != len(liste)
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
|
2023-09-07 17:16:05 +00:00
|
|
|
|
def repet(liste: list) -> bool: # Alternative
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""renvoie True s'il y a au moins une répétition dans la liste entrée,
|
|
|
|
|
renvoie False sinon."""
|
|
|
|
|
occurences = {}
|
|
|
|
|
for v in liste:
|
|
|
|
|
if v in occurences:
|
|
|
|
|
return True
|
|
|
|
|
occurences[v] = 1
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
def repet2(texte: str) -> (bool, dict):
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""renvoie de plus la liste des répétitions avec les effectifs.
|
|
|
|
|
Si un caractère ou un motif apparait x fois, avec x > 1,
|
|
|
|
|
on convient qu'il y a (x-1) répétitions."""
|
|
|
|
|
return repet(texte), occurences2(texte)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Exercice 4
|
2023-09-07 17:13:49 +00:00
|
|
|
|
def fusion(liste1: list, liste2: list) -> list:
|
2023-09-07 17:05:46 +00:00
|
|
|
|
"""liste1 et liste2 sont déjà triées croissantes.
|
|
|
|
|
Renvoie liste_fusion qui est la concaténation ORDONNEE des deux listes"""
|
|
|
|
|
liste_fusion = []
|
|
|
|
|
i, j = 0, 0
|
|
|
|
|
while i < len(liste1) and j < len(liste2):
|
|
|
|
|
if liste1[i] < liste2[j]:
|
|
|
|
|
liste_fusion.append(liste1[i])
|
|
|
|
|
i += 1
|
|
|
|
|
else:
|
|
|
|
|
liste_fusion.append(liste2[j])
|
|
|
|
|
j += 1
|
|
|
|
|
liste_fusion.extend(liste1[i:])
|
|
|
|
|
liste_fusion.extend(liste2[j:])
|
|
|
|
|
return liste_fusion
|
|
|
|
|
|
|
|
|
|
|
2023-09-07 17:13:49 +00:00
|
|
|
|
print(fusion([1, 5, 8, 9, 13, 15], [2, 5, 6, 7, 100]))
|