################ ## ## ## Exercice 4 ## ## ## ################ print('\nExercice 4\n') ## Question 4.1 def nombre_présents(liste_résultats): n = 0 for i in range(len(liste_résultats)): if liste_résultats[i] != "ABS": n = n+1 return n ## Question 4.2 def moyenne(liste_résultats): somme = 0 for i in range(len(liste_résultats)): if liste_résultats[i] != "ABS": somme = somme + liste_résultats[i] return somme/len(liste_résultats) ## Question 4.3 def bilan(liste_résultats): tab = [0] * 3 for i in range(len(liste_résultats)): if liste_résultats[i] == "ABS": tab[2] = tab[2]+1 elif liste_résultats[i] <10: tab[1] = tab[1]+1 else: tab[0] = tab[0]+1 return tab ################ ## ## ## Exercice 5 ## ## ## ################ print('\nExercice 5\n') def entrelacement(s1,s2) : # Le assert est facultatif. Il permet de s'assurer que la condition est bien vérifiée. assert len(s1) == len(s2) res = '' for i in range(len(s1)) : res = res + s1[i] + s2[i] return res print(entrelacement("abc",'123')) ################ ## ## ## Exercice 6 ## ## ## ################ print('\nExercice 6\n') def bien_ponctuée(s) : for i in range(len(s)) : if s[i] == '.' and i != len(s) - 1 and s[i+1] != ' ' : return False return True assert bien_ponctuée('Un. Deux.') == True assert bien_ponctuée('Trois.Quatre.')==False def bien_ponctuée_bis(s) : for i in range(len(s)) : if s[i] == '.' : if i != len(s) - 1 : if s[i+1] != ' ' : return False return True assert bien_ponctuée_bis('Un. Deux.')==True assert bien_ponctuée_bis('Trois.Quatre.')==False ################ ## ## ## Exercice 7 ## ## ## ################ print('\nExercice 7\n') def est_pangramme(s) : alphabet = 'abcdefghijklmnopqrstuvwxyz' s = s.lower() for i in range(len(alphabet)) : trouvé=False for j in range(len(s)): if s[j] == alphabet[i]: trouvé=True break if not trouvé: return False return True assert est_pangramme('abcdefghijklmnopqrstuvwxyz')==True assert est_pangramme('Portez ce vieux whisky au juge blond qui fume.')==True assert est_pangramme('Portez ce jeune cognac à l’avocat roux qui fulmine.')==False def est_présent(a,seq): for i in range(len(seq)): if seq[i] == a: return True return False def est_pangramme_bis(s) : alphabet = 'abcdefghijklmnopqrstuvwxyz' s = s.lower() for i in range(len(alphabet)) : if not est_présent(alphabet[i], s): return False return True assert est_pangramme_bis('abcdefghijklmnopqrstuvwxyz')==True assert est_pangramme_bis('Portez ce vieux whisky au juge blond qui fume.')==True assert est_pangramme_bis('Portez ce jeune cognac à l’avocat roux qui fulmine.')==False ################ ## ## ## Exercice 8 ## ## ## ################ print('\nExercice 8\n') def est_bien_parenthesée(s) : n = 0 # <- n est le nombre de parenthèses ouvertes non encore fermées dans s[:i] for i in range(len(s)) : if s[i] == '(' : n = n + 1 elif s[i] == ')' : n = n - 1 if n < 0 : return False return n == 0 assert est_bien_parenthesée('(1+2)×(x+(1-3))') == True assert est_bien_parenthesée('(1+2)×(x+1-3))') == False assert est_bien_parenthesée('(1+2)×()x+(1-3))') == False