##################################################### ##################################################### ############# Exercice 1 ########################## # 1/ # - chaîne de caractères # - booléen # 2/ # n | 9 9 9 9 # i | 0 1 2 3 # s[i] | r e s s # s[n-1-i] | r e s s # 3/ True # 4/ False # 5/ La fonction renvoie vrai s'il s'agit d'un palindrome # 6/ O(n) ##################################################### ##################################################### ############# Exercice 2 ########################## # 1/ [3, 6, 7, 9] # 2/ x == 1 or x == 3 or x == 5 or x == 6 # ou (x >= 1 and x <= 5 and x%2 == 1) or x == 6 ##################################################### ##################################################### ############# Exercice 3 ########################## def valeursSuperieures(L: list, v: float) -> list : cpt = 0 for i in L: if i >= v: cpt = cpt + 1 if cpt == 0: return [] Lres = [0] * cpt cpt = 0 for i in L: if i >= v: Lres[cpt] = i cpt = cpt + 1 return Lres def valeursSuperieuresBis(L: list, v: float) -> list : n = len(L) Ltmp = [0] * n cpt = 0 for i in L: if i >= v: Ltmp[cpt] = i cpt = cpt + 1 if cpt == 0: return [] if cpt < n: Lres = [0] * cpt for i in range(cpt): Lres[i] = Ltmp[i] return Lres def moyenneListe(L : list) -> float: som = 0 for i in L: som = som + i return som / len(L) def valeursSuperieuresMoyenne(L : list) -> list : m = moyenneListe(L) return valeursSuperieures(L, m) print(valeursSuperieuresMoyenne([8, 8, 8, 12, 12, 12])) L= [12.5, 7, 16.5, 9, 12.5, 17.5] m = moyenneListe(L) #12.5 print(valeursSuperieures(L, m)) #[12.5, 16.5, 12.5, 17.5] print(valeursSuperieures(L, 18)) # [] print(valeursSuperieuresMoyenne(L)) #[12.5, 16.5, 12.5, 17.5] ##################################################### ##################################################### ############# Exercice 4 ########################## ##Question 1 def indicePremiereOccurrence(texte:str, c:str)->int: for i in range(len(texte)): if texte[i]==c: return i return -1 ##Question 2 def indiceDerniereOccurrence(texte:str, c:str)->int: pos=-1 for i in range(len(texte)): if texte[i]==c: pos=i return pos def indiceDerniereOccurrence(texte, c): for i in range(len(texte)-1, -1, -1): if texte[i] == c: return i return -1 ##Question 3 def sousChaine(texte:str, c:str)->str: res="" deb=indicePremiereOccurrence(texte,c) fin=indiceDerniereOccurrence(texte,c) if deb ==-1: return "" for i in range(deb,fin+1): res=res+texte[i] return res indicePremiereOccurrence("chemise", "e") indiceDerniereOccurrence("chemise", "z") sousChaine("chemise", "e") ##################################################### ##################################################### ############# Exercice 4 ########################## from bibimages import * ##Question 1 def carreBlanc(img): l = largeurImage (img ) for x in range(l): for y in range (l): colorierPixel (img, x,y,(255,255,255 )) ##Question 2 def remplirTrSupGauche(img): l = largeurImage (img ) for x in range(l): for y in range (l-x): colorierPixel (img, x,y,(0,0,0 )) ##Question 3 def remplirTrSupGaucheTrSupDroit(img): l = largeurImage (img) for x in range(l//2): for y in range (l//2-x): colorierPixel (img, x,y,(0,0,0 )) for x in range(l//2,l): for y in range (x-l//2): colorierPixel (img, x,y,(0,0,0 )) ##Question 4 monImage = nouvelleImage (256,256) carreBlanc(monImage) remplirTrSupGaucheTrSupDroit(monImage)