Finalisation des exercices

This commit is contained in:
Tipragot 2023-09-07 19:13:49 +02:00
parent e4cc0dc36d
commit fae589d57a
No known key found for this signature in database

View file

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