On donne la fonction Python suivante :
def supprime_doublons(L) :
liste=[]
for i in L :
if i not in liste :
liste.append(i)
return liste
Que fait cette fonction ?
On cherche à comprendre la fonction ligne par ligne pour en comprendre l'objectif.
La fonction prend en paramètre une liste L.
Puis, au sein de la fonction, on crée une liste vide. Pour chaque élément de L, on teste si l'élément est déjà présent dans liste (boucle if). S'il ne l'est pas, on l'ajoute à la fin de la liste liste (méthode append() ). Enfin, on renvoie la liste liste ainsi constituée.
Cette fonction permet de renvoyer de manière unique tous les éléments présents dans la liste L. Elle supprime donc les doublons de la liste passée en argument.
On donne la fonction Python suivante :
def supprime_doublons(L) :
liste_inf=[]
liste_sup=[]
for i in L :
if i > 50 :
liste_sup.append(i)
else :
liste_inf.append(i)
return liste_sup, liste_inf
Que fait cette fonction ?
On cherche à comprendre la fonction ligne par ligne pour en comprendre l'objectif.
La fonction prend en paramètre une liste L.
Puis, au sein de la fonction, on crée deux listes vides. Pour chaque élément de L, on teste si l'élément est supérieur à 50. Si oui, on ajoute cet élément à liste_sup, sinon on l'ajoute à liste_inf.
Cette fonction permet de renvoyer deux listes : la première contient les éléments de L supérieurs à 50 et la seconde les éléments de L inférieurs à 50.
On donne la fonction Python suivante permettant d'approcher l'aire sous la courbe de la fonction x\mapsto x^2 sur l'intervalle [0{,}1] par la méthode des rectangles. Cette méthode divise l'intervalle en n rectangles de largeur fixe. La longueur de chaque rectangle de base le segment [ab] sur l'axe des abscisses est donnée par l'image f(c), par la fonction x\mapsto x^2 , du milieu c de [ab].
def aire(n) :
I=0
for k in range(n) :
I=I+1/n * ((2*k+1)/(2*n))**2
return I
Que fait cette fonction ?
On cherche à comprendre la fonction ligne par ligne pour en comprendre l'objectif.
La fonction prend en paramètre un nombre entier n.
Pour k\in \left[|0,n-1 \right|] on ajoute à I la valeur \dfrac{1}{n} \left(\dfrac{2k+1}{2n}\right)^2 .
Cette valeur correspond à l'aire d'un rectangle de largeur \dfrac{1}{n}, et de longueur \left(\dfrac{2k+1}{2n}\right)^2 ; ce qui correspond aux rectangles tracés pour approximer l'aire sous la courbe de la fonction carré.
Cette fonction permet donc de calculer la somme des aires des rectangles de largeur \dfrac{1}{n}, et de longueur \left(\dfrac{2k+1}{2n}\right)^2 pour k allant de 0 àn-1 .
Pour résoudre une équation du type ax^3+bx^2+cx+d = 0, on calcule son discriminant \Delta = 18abcd -4b^3d +b^2c^2 -4ac^3 -27a^2d^2 .
Il y a alors trois cas de figure :
- Si \Delta > 0 l'équation a trois solutions distinctes.
- Si \Delta = 0 l'équation a au moins deux solutions identiques.
- Si \Delta < 0 l'équation a une seule solution.
On donne la fonction Python suivante :
def nb_solutions(a,b,c,d) :
delta=18*a*b*c*d-4*b**3d+b**2c**2-4*a*c**3-27*a**2*d**2
if delta > 0 :
return 3
elif delta == 0 :
return 2
else :
return 1
Que fait cette fonction ?
On cherche à comprendre la fonction ligne par ligne pour en comprendre l'objectif.
Cette fonction prend en paramètres quatre réels qui sont les coefficients d'un polynôme de degré 3. La fonction calcule ensuite le déterminant \Delta de ce polynôme. Puis, à l'aide d'une boucle conditionnelle (if / elif / else ), elle renvoie :
- 3 si delta est positif strict.
- 2 si delta est nul.
- 1 si delta est négatif strict.
Ainsi, la fonction renvoie le nombre de solutions d'une équation du troisième degré en fonction de ses coefficients.
On se place dans une partie de jeu de stratégie dans lequel un joueur J1 dispose de deux dés à six faces et un autre joueur J2 d'un seul dé à six faces.
Si la somme des deux dés du joueur J1 est supérieure stricte à la valeur obtenue par le joueur J2, alors le joueur J1 remporte la partie.
On donne la fonction Python :
def simul_game() :
J1=0
J2= 0
for i in range(1000):
J1_score=randint(1,6)+randint(1,6)
J2_score = randint(1,6)
if J1_score>J2_score :
J1=J1+1
else :
J2=J2+1
return J1, J2
Que fait cette fonction ?
On cherche à comprendre la fonction ligne par ligne pour en comprendre l'objectif.
Cette fonction ne prend pas de paramètre. Elle initialise tout d'abord deux valeurs à 0. Puis elle répète 1 000 fois les instructions suivantes :
- Elle assigne à J1_score la somme de deux nombres aléatoires entre 1 et 6.
- Elle assigne à J2_score un nombre aléatoire entre 1 et 6.
- Si J1_score est supérieur strictement à J2_score alors elle augmente la valeur de J1.
- Sinon elle augmente la valeur de J2.
Cette fonction permet donc de simuler 1 000 fois le déroulement du jeu décrit et de renvoyer le nombre de victoires de chaque joueur.