#%% Exo 1 def créer1(n): #On crée la liste formée des n premiers entiers non nuls. l=[] for i in range(1, n+1): l.append(i) return l def créer2(n): #On crée la liste formée des n premiers entiers non nuls. return [i for i in range(1, n+1)] n=int(input("Saisir un entier strictement positif : ")) l1=créer1(n) print("Première version :", l1) print("Somme :", sum(l1)) l2=créer2(n) print("Seconde version :", l2) print("Somme :", sum(l2)) #%% Exo 2 def créer1(n): #On crée la liste formée des carrés des n premiers entiers non nuls. l=[] for i in range(1, n+1): l.append(i**2) return l def créer2(n): #On crée la liste formée des carrés des n premiers entiers non nuls. return [i**2 for i in range(1, n+1)] n=int(input("Saisir un entier strictement positif : ")) l1=créer1(n) print("Première version :", l1) print("Somme :", sum(l1)) l2=créer2(n) print("Seconde version :", l2) print("Somme :", sum(l2)) #%% Exo 3 def construction(l1, l2): #On construit une liste contenant tous les éléments de l1 et de l2 en les alternant. l=[] for i in range(len(l1)): l.append(l1[i]) l.append(l2[i]) return l def construction2(l1, l2): #On construit une liste contenant tous les éléments de l1 et de l2 en les alternant. l=[] for x, y in zip(l1, l2): l.append(x) l.append(y) return l def éclatement(l): #On éclate une liste l en termes d'indice pair et termes d'indice impair. l1, l2 = [], [] pair=True for x in l: if pair: l1.append(x) else: l2.append(x) pair = not pair return l1, l2 l1=["Albert", "Marie", "Raymond", "Emmy"] l2=["Einstein", "Curie", "Poincaré", "Noether"] l3=construction(l1, l2) print("Liste des prénoms et des noms :", l3) l4=construction2(l1, l2) print("Liste des prénoms et des noms :", l4) (l5, l6)=éclatement(l3) print("Liste des prénoms :", l5) print("Liste des noms :", l6) #%% Exo 4 def créer(n): #On crée la liste formée des n premiers entiers non nuls. return [i for i in range(1, n+1)] def modifier(l): #On suppose que l est une liste d'entiers. On remplace les entiers pairs par leur moitié. for i in range(len(l)): if l[i]%2==0: l[i]//=2 return l n=int(input("Saisir un entier strictement positif : ")) l=créer(n) print("Avant modification :", l) modifier(l) print("Après modification :", l) #%% Exo 5 def multiples(a, b, n): #On crée la liste formée des multiples de a ou de b inférieurs ou égaux à n. l=[] for i in range(1, n+1): if i%a==0 or i%b==0: l.append(i) return l def multiples2(a, b, n): #On crée la liste formée des multiples de a ou de b inférieurs ou égaux à n. return [i for i in range(1, n+1) if i%a==0 or i%b==0] a=int(input("Saisir le premier entier : ")) b=int(input("Saisir le second entier : ")) n=int(input("Saisir une valeur limite : ")) l1=multiples(a, b, n) print("Première version : ", l1) l2=multiples(a, b, n) print("Seconde version : ", l2) #%% Exo 6 from random import randrange def créer(n): return [randrange(21) for i in range(n)] def apparitions(x, l): l1=[] for i in range(len(l)): if x==l[i]: l1.append(i) return l1 n=int(input("Saisir le nombre d'entiers de la liste : ")) l=créer(n) print("Liste :", l) x=int(input("Saisir l'entier cherché : ")) print("liste des indices d'apparitions :", apparitions(x, l)) #%% Exo 7 from random import randrange def créer(n): return [randrange(21) for i in range(n)] def listeSansDoublons(l): #Si l est une liste de nombres, on renvoie la liste des valeurs de l, triée et sans doublons. l1=[] for m in l: if m not in l1: l1.append(m) l1.sort() return l1 def listeSansDoublons2(l): #Si l est une liste de nombres, on renvoie la liste des valeurs de l, triée et sans doublons. return list(set(l)) n=int(input("Saisir le nombre d'entiers de la liste : ")) l=créer(n) print("Liste initiale :", l) l1=listeSansDoublons(l) print("Liste triée sans doublons v1 :", l1) l2=listeSansDoublons2(l) print("Liste triée sans doublons v2 :", l2) #%% Exo 8 from random import randrange def créer(n): return [randrange(21) for i in range(n)] def valeursCommunes1(l1, l2): #On crée une liste contenant tous les éléments présents à la fois dans les listes l1 et l2. #Ces deux listes peuvent contenir des doublons mais pas la liste renvoyée. l3=[] for i in l1: if i in l2 and not i in l3: l3.append(i) return l3 def valeursCommunes2(l1, l2): #On crée une liste contenant tous les éléments présents à la fois dans les listes l1 et l2. #Ces deux listes peuvent contenir des doublons mais pas la liste renvoyée. return [x for x in set(l1)&set(l2)] def valeursCommunes3(l1, l2): #On crée une liste contenant tous les éléments présents à la fois dans les listes l1 et l2. #Ces deux listes peuvent contenir des doublons mais pas la liste renvoyée. return list(set(l1)&set(l2)) n1=int(input("Saisir le nombre d'entiers de la première liste : ")) l1=créer(n1) print("Première liste :", l1) n2=int(input("Saisir le nombre d'entiers de la seconde liste : ")) l2=créer(n2) print("Seconde liste :", l2) l3=valeursCommunes1(l1, l2) print("Liste des valeurs communes v1 :",l3) l4=valeursCommunes2(l1, l2) print("Liste des valeurs communes v2 :",l4) l5=valeursCommunes3(l1, l2) print("Liste des valeurs communes v2 :",l5) #%% Exo 9 from random import randrange def créer(n): return [randrange(21) for i in range(n)] def estTriée(l): #On vérifie si la liste l est rangée dans l'ordre croissant. for i in range(len(l)-1): if l[i]>l[i+1]: return False return True n=int(input("Saisir le nombre d'entiers de la liste : ")) l=créer(n) print("Liste initiale :", l) if estTriée(l): print("La liste est dans l'ordre croissant.") else: print("La liste n'est pas dans l'ordre croissant.") l.sort() print("Liste modifiée :", l) if estTriée(l): print("La liste est dans l'ordre croissant.") else: print("La liste n'est pas dans l'ordre croissant.") #%% Exo 10 from random import * def créer(n): return [randrange(21) for i in range(n)] def maximum(l): #On renvoie le maximum des valeurs de la liste non vide l sans utiliser de fonction prédéfinie. max=l[0] for x in l: if x>max: max=x return max def minimum(l): #On renvoie le minimum des valeurs de la liste non vide l sans utiliser de fonction prédéfinie. min=l[0] for x in l: if xl[indice]: indice=i return indice def indiceDuMin(l): #On donne l'indice de la première apparition du minimum de la liste non vide l. indice=0 for i in range(1, len(l)): if l[i]l[indice]: r.clear() r.append(i) indice=i elif l[i]==l[indice]: r.append(i) return (l[indice], r) n=int(input("Saisir le nombre d'entiers de la liste : ")) l=créer(n) print("Liste initiale :", l) ##print("Maximum :", maximum(l)) ##x=max(l) ##print("Vérification :", x) ##print("Minimum :", minimum(l)) ##y=min(l) ##print("Vérification :", y) ##print("Indice du maximum :", indiceDuMax(l)) ##print("Vérification :", l.index(x)) ##print("Indice du minimum :", indiceDuMin(l)) ##print("Vérification :", l.index(y)) (x, r)=record(l) print("Maximum :", x) print("Liste des indices d'apparitions :", r)