################ ## ## ## Exercice 3 ## ## ## ################ print("\nExercice 3\n") ## Question 3.1 def mon_max(a,b): if a == None: return b elif b == None: return a else: return max(a,b) def max_pair(liste): maximum = None for valeur in liste: if valeur%2==0: maximum = mon_max(maximum, valeur) if maximum == None: raise ValueError("Pas de valeur paire") return maximum def max_pair(liste): déjà_trouvé = False maximum = None for valeur in liste: if valeur%2==0: if déjà_trouvé: maximum = max(maximum, valeur) else: maximum = valeur déjà_trouvé = True if not déjà_trouvé: raise ValueError("Pas de valeur paire") return maximum ## Question 3.2 def afficher_max_pair(liste): try: valeur = max_pair(liste) print("Le plus grand pair est", valeur) except: print("De la musique avant toute chose,") print("Et pour cela préfère l'Impair") print("Plus vague et plus soluble dans l’air,") print("Sans rien en lui qui pèse ou qui pose.") ##FINPROF ################ ## ## ## Exercice 4 ## ## ## ################ print("\nExercice 4\n") # Question 4-1 def est_triée(L) : for i in range(len(L)-1) : if L[i] > L[i+1] : return False return True # Question 4-2 assert est_triée([]) == True assert est_triée([1]) == True assert est_triée([1,3,7]) == True assert est_triée([12, 10]) == False assert est_triée([1,2,6,12,78,70]) == False ################ ## ## ## Exercice 5 ## ## ## ################ print("\nExercice 5\n") ## Question 5.1 def grouper(L) : if len(L) == 0 : return [] e = L[0] res = [e] for i in range(1,len(L)) : if L[i] != e : e = L[i] res.append(e) return res ## Question 5.2 def compacter(L) : if len(L)==0 : return [] # L contient au moins un élément e = L[0] c = 1 res = [] for i in range(1,len(L)) : if L[i] != e : res.append((c,e)) e = L[i] c = 1 else : c = c+1 res.append((c,e)) return res ################ ## ## ## Exercice 6 ## ## ## ################ print("\nExercice 6\n") ## Question 6.1 def index_insertion(L,n) : for i in range(len(L)): if L[i]>n : return i return len(L) ## Question 6.2 def insertion_triée(L) : res = [] for i in range(len(L)) : j = index_insertion(res,L[i]) res.insert(j , L[i]) return res