PCSI Pôle Kerichen-Vauban INFORMATIQUE TP n°4 : les fonctions en python Une fonction en Python est en tout point semblable à une fonction mathématique. A partir d’une ou plusieurs entrées, on produit une ou plusieurs sorties. Exemple : Dans le schéma suivant, les entrées (les arguments ou données) sont x, y et z. Les sorties (les résultats) de la fonction sont A et B : x A y FONCTION B z I-DEFINITION ET UTILISATION DE FONCTIONS SIMPLES Exemple : fonction Somme x Somme x+y y Cette fonction Somme calcule la somme de deux nombres. Elle a deux entrées (x et y) et une sortie (x+y). définition en python de la fonction Somme : écrire et exécuter les lignes suivantes : def Somme(x,y): #nom de la fonction et ses arguments return x+y #résultat nota: -attention à l’indentation -les variables x et y sont les arguments de la fonction Somme -les arguments peuvent uniquement être utilisés pour élaborer le résultat de la fonction mais en aucun cas modifiés. utilisation de la fonction Somme : Pour calculer 4+9, écrire et exécuter dans le shell la commande : Somme(4,9) Lors de l’appel de la fonction, Python remplace la variable x par 4 et y par 9 et retourne le résultat : 13. Que se passe-t-il si vous écrivez et exécutez la commande Somme(4,9) non pas dans le shell mais dans votre programme ? Pourquoi ? Ecrire et exécuter les lignes suivantes : z=Somme(4,9) print(z) On affecte à la variable z ce que retourne la fonction somme avec les arguments 4 et 9, à savoir 13, puis, on affiche le contenu de cette variable z. Exercice 1: fonction surface (a) Définir une fonction Surface qui retourne la surface d’un rectangle à partir des longueurs des côtés. Tracer le schéma précisant les argument(s) et sortie(s) de cette fonction. 1 PCSI Pôle Kerichen-Vauban Essayer cette fonction sur des exemples. (b)Utiliser la fonction Surface pour calculer le volume d’une boîte parallélépipédique rectangle 23 cm × 15 cm × 17 cm. 3 Réponse : 5865 cm . Exercice 2: fonctions moyenne (a) Ecrire une fonction Moyenne4 qui retourne la moyenne de 4 nombres. Tracer le schéma précisant les argument(s) et sortie(s) de cette fonction. Essayer cette fonction sur des exemples. (b) Ecrire une fonction Moyenne qui retourne la moyenne de n nombres qui seront donnés par l’utilisateur. Tracer le schéma précisant les argument(s) et sortie(s) de cette fonction. On pensera à utiliser une liste pour stocker ces n nombres. Exercice 3: fonction distance Ecrire une fonction Distance qui retourne la distance entre 2 points du plan dont on donnera les coordonnées. Tracer le schéma précisant les argument(s) et sortie(s) de cette fonction. Exemple : la distance du point (1, 2) au point (4, 10) est environ égale à 8.54 Exercice 4: calcul de sommes (a) On considère la fonction f : ( x, y ) → x 1+ y2 Définir avec python la fonction f. 2015 (b)On considère la somme k 2 k =1 1 + ( k + 3) S=∑ Sur papier, écrire S à l’aide de f. Puis, avec python, calculer S en utilisant f (réponse S ≃ 5.49) 1515 1789 (c) On considère la somme double i 2 j =1 1 + ( j + 3) S = ∑∑ i =1 Sur papier, écrire S à l’aide de f. Puis, avec python, calculer S en utilisant f (réponse S ≃ 317084) Exercice 5: des carrés dans tous les sens (a) Avec la tortue (cf. TP3), écrire une fonction carre qui dessine un carré de côté L (nota : pas de return dans cette fonction). (b) Créer la figure suivante (on utilisera bien sûr la fonction carre) : On aura besoin des commandes : penup() : soulève le crayon (donc la tortue ne dessine plus) pendown() : descend le crayon (donc la tortue dessine) 2 PCSI Pôle Kerichen-Vauban (c) Créer la figure suivante : (d) Créer la figure suivante (on fait tourner un carré autour de l’un de ses sommets). II FONCTION APPELANT UNE AUTRE FONCTION Une fonction peut appeler une autre fonction. Exemple : On considère la fonction h : ( x, y , z ) → ( x + y ) + 3 z 2 On peut voir cette fonction comme constituée de 2 autres fonctions : – La fonction somme f : – La fonction g : ( x, y ) → x + y ( u, v ) → u 2 + 3v On a alors : h(x, y, z) = g (f (x, y), z) x f u = x+ y y z g v=z h Exercice 6: (a)Ecrire en Python les fonctions f et g. Tester sur des exemples. 3 u2 + 3v = ( x + y ) + 3z 2 PCSI Pôle Kerichen-Vauban (b)Ecrire la fonction h en utilisant les fonctions f et g, puis la tester. Par exemple h(1, 2, 3) = 18. Exercice 7: x2 + y 2 + z 2 + x2 + y 2 + z 2 On considère la fonction h : ( x, y , z ) → 1 + x2 + y2 + z 2 (a)On souhaite construire la fonction principale h à partir de deux fonctions auxiliaires f et g. Sur papier, tracera le schéma précisant les argument(s) et sortie(s) des différentes fonctions. Puis écrire mathématiquement la fonction principale en fonction des 2 fonctions auxiliaires. (b)Ecrire en Python les fonctions f et g. Tester sur des exemples. (c)Ecrire la fonction h en utilisant les fonctions f et g, puis la tester. Par exemple h(1, 2, 3) ≈ 1.18 III TRAVAIL SUR LES CHAÎNES DE CARACTERES ET LES FONCTIONS. Rappels : Une chaîne de caractères est une suite quelconque de caractères délimitée par des guillemets. Le type d’une chaîne caractères est le type string. Essayez l’exemple suivant : a=1 b=’1’ print(type(a)) print(type(b)) Accès au caractère individuel d’une chaîne (comme pour une liste…). Essayez l’exemple suivant : ch=’La formule de De Moivre’ print(ch[0],ch[2],ch[3]) Une chaîne de caractères est numérotée à partir de 0. Longueur d’une chaîne (comme pour une liste…). La longueur (c’est-à-dire le nombre de caractères) d’une chaîne, s’obtient à l’aide de la commande len(NomDeLaChaîne). Essayez l’exemple suivant : print(len(ch)) Concaténation (comme pour une liste…). Assembler plusieurs petites chaînes pour en construire de plus grandes. Cette opération s’appelle la concaténation et on la réalise sous Python à l’aide de l’opérateur +. Cet opérateur réalise donc l’opération d’addition lorsqu’on l’applique à des nombres, et l’opération de concaténation lorsqu’on l’applique à des chaînes de caractères (ou des listes). Essayez l’exemple suivant : a = ‘Petit poisson’ b = ‘ deviendra grand’ c=a+b print(c) La chaîne vide : La chaîne vide s’écrit ch=’’ Attention : la chaîne ch=’ ’ contient un caractère, c’est l’espace. Vous pouvez le vérifier avec la commande len. 4 PCSI Pôle Kerichen-Vauban Exercice 8: à faire d’abord sur papier puis vérifier avec Python (a) Quel est le résultat du programme suivant ? ch=’’ ch=ch+’*’ ch=ch+’*’ ch=ch+’*’ print(ch) (b) Et celui-là ? ch=’’ c=2 while c<=10: ch=ch+’*’ c=c+1 print(ch) (c) Et celui-là ? ch=’’ c=2 while c<=10: ch=ch+’*’ c=c+1 print(ch) Exercice 9: étoiles Ecrire un programme (une fonction) Etoile qui recopie une chaîne (dans une nouvelle variable), en insérant des astérisques entre les caractères. Par exemple, Etoile(‘Euler’) retourne la chaîne de caractères ‘E*u*l*e*r’ Exercice 10: occurence Ecrire un programme (une fonction) Occurence qui compte le nombre de caractères qui est dans une chaîne de caractères. Par exemple, Occurence(‘e’,’La formule de Moivre’) doit retourner le nombre 3. Exercice 11: miroir Ecrire un programme (une fonction) Inversion qui recopie une chaîne (dans une nouvelle variable) en l’inversant. Par exemple, Inversion(‘Euler’) retourne la chaîne ‘reluE’ Exercice 12: être ou ne pas être Ecrire un programme (une fonction) Existence qui détermine si un caractère donné est présent ou non dans une chaîne de caractères donnée. Exemple : Existence(‘e’,’La formule de Moivre’) devra retourner le booléen True Existence(‘p’,’La formule de Moivre’) devra retourner le booléen False 5