0% ont trouvé ce document utile (0 vote)
82 vues2 pages

Fonctions Python : Corrigé TP Informatique

Ce document présente des exercices sur les fonctions et les instructions conditionnelles en Python avec des définitions de fonction pour calculer des sommes, inverser des listes, chercher des éléments dans des listes, etc.

Transféré par

Antoine Dubois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
82 vues2 pages

Fonctions Python : Corrigé TP Informatique

Ce document présente des exercices sur les fonctions et les instructions conditionnelles en Python avec des définitions de fonction pour calculer des sommes, inverser des listes, chercher des éléments dans des listes, etc.

Transféré par

Antoine Dubois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ère

Informatique 1 année - TP 2 - CORRIGÉ

Fonctions
Exercice 1 : Dénir les fonctions suivantes, inspirées de programmes du TP précédent :
1. Une fonction somme_entiers(n) qui prend en argument un entier n et renvoie la somme
des entiers de 1 à n .
2. Une fonction carres(n) qui prend en argument un entier n et renvoie la liste des n premiers
carrés parfaits.
3. Une fonction somme_carres(n) qui prend en argument un entier n et renvoie la somme des
carrés des n premiers entiers. Attention : cette fonction devra faire appel aux fonctions dénies
plus haut. Elle ne devra contenir aucune boucle dans sa dénition.
4. Une fonction reverse(L) qui prend en argument une liste L et renvoie une liste contenant
les éléments de L dans l'ordre inverse.
Réponse : (consulter le TP1 et son corrigé pour les explications des programmes)

def somme_entiers(n): def carres(n): def reverse(L):


def somme_carres(n):
s=0 L=[] G=[]
C=carres(n)
for k in range(n+1): for k in range(n): for i in range(len(L)):
r=somme(C)
s=s+k [Link](k*k) [Link]( L[len(L)-1-i])
return r
return s return L return G

Instructions conditionnelles
Exercice 2 : Dénir les deux fonctions ci-dessous, qui prendont en argument une liste de nombres.
def bim(G): def bam(G):
a=0 b=False
for i in range(len(G)): for i in range(len(G)):
if G[i]==7: if G[i]==7:
a=a+1 b=True
return a return b
1. Prédire le résultat de l'appel bim([4,7,2,0,7,7,5]) :
Réponse : On peut regarder le programme équivalent : 1 G=[4,7,2,0,7,7,5]
La condition à la ligne 4 teste si G[0]==7 : elle est fausse. Donc 2 a=0
l'instruction à la ligne 5 n'est pas exécutée. 3 i=0
La condition à la ligne 7 teste si G[1]==7 : elle est vraie. Donc 4 if G[i]==7:
l'instruction à la ligne 8 est exécutée. 5 a=a+1
etc... 6 i=1
Au total l'instruction a=a+1 est exécutée à chaque fois qu'un 7 if G[i]==7:
élément de G est égal à 7, donc 3 fois dans cet exemple. 8 a=a+1
À la n, la variable a vaut 3 et c'est ce résultat qui est renvoyé. (etc...)
2. De façon générale, si L est une liste, quel est le résultat de l'appel bim(L) ?
Réponse : Le résultat renvoyé est le nombre d'élements égaux à 7 dans la liste L reçue en
argument.
3. Prédire le résultat de l'appel bam([4,7,2,0,7,7,5]) :
Réponse : L'instruction b=True est exécutée trois fois, et la variable b ne subit aucun autre

changement. C'est donc la valeur True qui est renvoyée.

1
4. De façon générale, si L est une liste, quel est le résultat de l'appel bam(L) ?
Réponse : Si au moins un élément de la liste vaut 7, alors à la n la variable b vaut True .

Si aucun élément n'est égal à 7, alors la variable b reste égale à False jusqu'à la n. Cette
fonction teste donc la présence d'un 7 dans la liste.

On voit que dans les deux fonctions précédentes, la variable a , de type nombre entier, ou b
de type booléen, sert de marqueur et renferme l'information utile concernant la partie de la liste déjà
parcourue. Sa valeur est mise à jour au fur et à mesure de l'exécution.
Exercice 3 : Utiliser une méthode similaire pour dénir les fonctions suivantes :

1. dernier_7(L) qui renvoie comme résultat la position du dernier 7 dans la liste L


2. tous_les_7(L) qui renvoie comme résultat la liste des positions où il y a un 7 dans la liste L
3. que_des_7(L) qui renvoie comme résultat un booléen : True si L ne contient que des 7,
False sinon.
Réponse :

def dernier_7(L): def tous_les_7(L): def que_des_7():


pos=-1 P=[] v=True
for i in range(len(L)): for i in range(len(L)): for i in range(len(L)):
if L[i]==7: if L[i]==7: if L[i] != 7:
pos=i [Link](i) v=False
return pos return P return v
Exercice 4 : Que fait la fonction suivante si on lui donne la liste [4,7,2,0,7,7,5] ? (l'opérateur <
signie bien sûr strictement inférieur en Python)
def boum(L):
v=L[0]
for i in range(len(L)):
if L[i] < v :
v=L[i]
return v
Réponse : Elle renvoie la plus petite valeur de la liste. En eet, tout au long de l'exécution la variable
v est égale à la plus petite valeur rencontrée : à chaque fois qu'une valeur plus petite que v est
rencontrée, on met à jour v avec cette valeur.
Exercice 5 : Dénir une fonction position_max(L) qui renvoie la position où se trouve le plus grand

élément dans L .
Réponse : On reprend le code de la fonction précédente en faisant quelques changements :
 On change le sens de la comparaison pour trouver le plus grand élément et non le plus petit
 On ajoute une variable p pour mémoriser, à chaque fois qu'on change la variable v , de quelle
position elle provient.
 à la n, on ne renvoie pas v , mais p
def position_max(L):
v=L[0]
p=0
for i in range(len(L)):
if L[i] < v :
v=L[i]
p=i
return p

Vous aimerez peut-être aussi