<?xml version="1.0" encoding="UTF-8"?>

<upm-export>
	<title>Enseignement de l&#039;informatique et du numérique au lycée Boissy d&#039;Anglas</title>
	<link>https://icn-isn-boissy.yj.fr/wp</link>
	<description></description>
	<pubDate>Thu May 28 16:26:22 2026 / +0000  GMT</pubDate>
	<generator>Universal Post Manager 1.1.2 [ www.ProfProjects.com ] </generator>
	<language></language>
	
			<item>
			<title>5- Les fonctions</title>
			<link>https://icn-isn-boissy.yj.fr/wp/?p=1726</link>
			<pubDate>Thu May 28 16:26:22 2026 / +0000  GMT</pubDate>
			<guid isPermaLink="false">https://icn-isn-boissy.yj.fr/wp/?p=1726</guid>
			<content-encoded><![CDATA[<!-- wp:heading -->
<h2 class="wp-block-heading"> 5.1. Pourquoi a-t-on besoin de fonctions ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p> Étudions le programme ci-dessous qui calcule et affiche la moyenne de 4 élèves sur trois notes: (Exécuter le programme ci-dessous) </p>
<!-- /wp:paragraph -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:code -->
<pre class="wp-block-code"><code>prenom1 = "Anne"
note1 = 13
note2 = 10
note3 = 16
moyenneA = (note1 + note2 + note3) / 3
print("La moyenne de ", prenom1, " est : ", moyenneA)

prenom2 = "Boris"
note4 = 9
note5 = 7.5
note6 = 12
moyenneB = (note4 + note5 + note6) / 3
print("La moyenne de ", prenom2, " est : ", moyenneB)

prenom3 = "Céline"
note7 = 8
note8 = 12
note9 = 16
moyenneC=(note7 + note8 + note9) / 3
print("La moyenne de ", prenom3, " est : ", moyenneC)

prenom4 = "Denis"
note10 = 11
note11 = 14
note12 = 17
moyenneD = (note10 + note11 + note12) / 3
print("La moyenne de ", prenom4, " est : ", moyenneD)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Que se passe-t il si on ajoute 2 nouveaux élèves dans le groupe ? On ré-écrit le code de calcul de la moyenne pour les notes de ces élèves là.&nbsp;<em>Un peu ennuyant.</em></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Que se passe-t-il si on veux ajouter une note supplémentaire ?</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>prenom1 = "Anne"
note1 = 13
note2 = 10
note3 = 16
note_sup = 14
moyenneA=(note1 + note2 + note3 + note_sup) / 4
print("La moyenne de ", prenom1, " est : ", moyenneA)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>On doit ajouter une note pour Anne, et on change le calcul de la moyenne en ajoutant la note supplémentaire et en divisant par 4. Et ensuite, on doit faire cela pour Boris, Celine, Denis et les deux nouveaux...&nbsp;<em>Fastidieux !</em></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Que se passe-t-il si on veut en plus afficher un message selon la moyenne obtenue?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Exemple pour Anne et Boris:</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>prenom1="Anne"
note1=13
note2=10
note3=16
note_sup=14
moyenneA=(note1+note2+note3+note_sup)/4
print("La moyenne de ", prenom1, " est : ",moyenneA)
if moyenneA&gt;11:
    print("C'est en bonne voie")
else:
    print("Persévérez !")
prenom2="Boris"
note4=9
note5=7.5
note6=12
note_sup2=8
moyenneB=(note4+note5+note6+note_sup2)/4
print("La moyenne de ", prenom2, " est : ",moyenneB)
if moyenneB&gt;11:
    print("C'est en bonne voie") 
else:
    print("Persévérez !")</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>On a joute du code pour chaque élève qui se ressemble. Ça commence à devenir long, compliqué, et on peut facilement se tromper, alors que les tâches sont très répétitives !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Quand une tâche peut être effectuée plusieurs fois dans un programme, il devient vite TRÈS INTÉRESSANT d'utiliser un morceau de programme qu'on va réutiliser : on isole alors ce morceau de code dans un&nbsp;<strong><em>BLOC</em></strong>&nbsp;qu'on appelle&nbsp;<strong><em>FONCTION</em></strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Exemple (la syntaxe de la fonction sera expliquée plus loin) :</p>
<!-- /wp:paragraph -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:code -->
<pre class="wp-block-code"><code>#bloc fonction qui calcule et affiche la moyenne

def calcule_et_affiche_moyenne(prenom,note1,note2,note3):
    moyenne=(note1+note2+note3)/3
    print("La moyenne de ", prenom, " est : ",moyenne)

#appels répétés de la fonction dans le programme principal

calcule_et_affiche_moyenne("Anne", 13,10,16)
calcule_et_affiche_moyenne("Boris", 9,7.5,12)
calcule_et_affiche_moyenne("Céline", 8,12,16)
calcule_et_affiche_moyenne("Denis", 11,14,17)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Ce qu'on a gagné :</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On a écrit une seule fois le calcul de la moyenne. Si on ajoute 2 élèves, on appelle 2 fois la fonction Si on ajoute une note, on ne change que le contenu de la fonction calcule_et_affiche_moyenne() Si on veut ajouter l'affichage d'un message, on peut le faire dans la fonction sans changer le programme principal</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Par exemple :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>#bloc qui affiche un message d'encouragement

def affiche_message(moyenne):
    if moyenne&gt;11:
        print("C'est en bonne voie") 
    else:
        print("Persévérez !")

#bloc fonction qui calcule et affiche la moyenne

def calcule_et_affiche_moyenne(prenom,note1,note2,note3):
    moyenne=(note1+note2+note3)/3
    print("La moyenne de ", prenom, " est : ",moyenne)
    affiche_message(moyenne)

#appels répétés de la fonction dans le programme principal

calcule_et_affiche_moyenne("Anne", 13,10,16)
calcule_et_affiche_moyenne("Boris", 9,7.5,12)
calcule_et_affiche_moyenne("Céline", 8,12,16)
calcule_et_affiche_moyenne("Denis", 11,14,17)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>

Comparez maintenant ce dernier programme avec le premier : avec moins de lignes de programme, on fait plus de choses, et en plus ça reste très lisible ! c'est aussi très utile si la personne qui définit la fonction est différente de celle qui l'utilise on peut ainsi utiliser une fonction que l'on n'a pas codé sois même, simplement, on l'appelle ! Comme par exemple la fonction&nbsp;<code>print()</code></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>

Un script bien structuré contiendra un programme dit principal, et plusieurs sous-programmes codés dans des fonctions dédiées à des fonctionnalités spécifiques.

</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1760} -->
<figure class="wp-block-image"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2019/09/03-Sous1.png" alt="" class="wp-image-1760"/></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="Syntaxe-:-comment-écrire-une-fonction">5.2. Syntaxe : comment écrire une fonction</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La syntaxe Python pour la définition d'une fonction est la suivante :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def nom_fonction(liste de paramètres):
    bloc d'instructions   #corps de la fonction</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Vous pouvez choisir le nom de votre choix pour la fonction que vous créez, sauf les mots-clés réservés du langage (par exemple&nbsp;<code>if</code>,&nbsp;<code>while</code>...), sans utiliser de caractère spécial ou accentué (le caractère souligné « _ » est autorisé).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On utilise par convention des minuscules, notamment au début du nom.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Comme les instructions if, for et&nbsp;<code>while</code>&nbsp;l'instruction&nbsp;<code>def</code>&nbsp;est une instruction composée. La ligne contenant cette instruction se termine obligatoirement par un deux-points :, qui introduisent un bloc d'instructions qui est précisé grâce à l'indentation. Ce bloc d'instructions constitue le corps de la fonction.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def calcule_somme(note1,note2,note3):
    somme = (note1+note2+note3)      # corps de 
    return somme                     # la fonction

print(calcule_somme(128,1256,322))</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="Fonctions-et-paramètres">5.3. Fonctions et paramètres</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Fonction-sans-paramètre.">&nbsp;Fonction sans paramètre.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Exemple</strong> :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> bonjour():
    print("Bonjour")</pre>
<!-- /wp:preformatted -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur():
    <strong>for</strong> i <strong>in</strong> range(3):
        print(i)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Nous avons défini une première fonction qui affiche le texte&nbsp;<strong><em>Bonjour</em></strong>&nbsp;et une deuxième fonction simple qui affiche les entier de 0 à 4.<br>Notez bien les parenthèses, les deux-points, et l'indentation du bloc d'instructions qui suit la ligne d'en-tête (c'est ce bloc d'instructions qui constitue le corps de la fonction proprement dite).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avoir une fonction, c'est bien mais encore faut-il l'utiliser :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">bonjour()</pre>
<!-- /wp:preformatted -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">compteur()</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Nous pouvons maintenant réutiliser cette fonction à plusieurs reprises, autant de fois que nous le souhaitons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous pouvons également l'incorporer dans la définition d'une autre fonction.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Exemple de fonction qui appelle une autre fonction</strong> :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> poli():
    <strong>for</strong> i <strong>in</strong> range(3):
        bonjour()
poli()</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Une première fonction peut donc appeler une deuxième fonction, qui elle-même en appelle une troisième, etc.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Créer une nouvelle fonction offre l'opportunité de donner un nom à tout un ensemble d'instructions. De cette manière, on peut simplifier le corps principal d'un programme, en dissimulant un algorithme secondaire complexe sous une commande unique, à laquelle on peut donner un nom explicite.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une fonction est donc en quelque sorte une nouvelle instruction personnalisée, qu'il est possible d'ajouter librement à notre langage de programmation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Fonction-avec-paramètres.">Fonction avec paramètres.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Exemple</strong> :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> bonjour(nom):
    print("Bonjour <strong>{}</strong>".format(nom))</pre>
<!-- /wp:preformatted -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur(stop):
    <strong>for</strong> i <strong>in</strong> range(stop):
        print(i)       
compteur(5)
</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Pour tester ces fonctions, il faut les appeler avec un argument :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">bonjour("toto")</pre>
<!-- /wp:preformatted -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">compteur(4)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>On peut bien sûr avoir des fonctions qui appellent des fonctions :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> trespoli(nbfois):
    <strong>for</strong> i <strong>in</strong> range(nbfois):
        bonjour("tata toto")
trespoli(3)</pre>
<!-- /wp:preformatted -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Utilisation-d'une-variable-comme-argument.¶">Utilisation d'une variable comme argument.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'argument que nous utilisons dans l'appel d'une fonction peut être une variable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Exemple</strong> :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">a = "Bart Simpson"
bonjour(a)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Dans l'exemple ci-dessus, l'argument que nous passons à la fonction&nbsp;<code>bonjour()</code>&nbsp;est le contenu de la variable&nbsp;<code>a</code>.<br>À l'intérieur de la fonction, cet argument est affecté au paramètre&nbsp;<code>stop</code>, qui est une tout autre variable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Notez donc bien dès à présent que :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Le nom d'une variable que nous passons comme argument n'a rien à voir avec le nom du paramètre correspondant dans la fonction.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Ces noms peuvent être identiques si vous le voulez, mais vous devez bien comprendre qu'ils ne désignent pas la même chose (en dépit du fait qu'ils puissent contenir une valeur identique).</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Fonction-avec-plusieurs-paramètres.">Fonction avec plusieurs paramètres.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Exemples</strong> :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> bonjour(prenom, nom):
    print("Bonjour "<strong> </strong>+ prenom + " " + nom)

bonjour("Homer","Simpson")
bonjour("Marge","Simpson")</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>La fonction suivante utilise trois paramètres :&nbsp;<code>start</code>&nbsp;qui contient la valeur de départ,&nbsp;<code>stop</code>&nbsp;la borne supérieure exclue comme dans l'exemple précédent et&nbsp;<code>step</code>&nbsp;le pas du compteur :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur(start, stop, step):
    <strong>for</strong> i <strong>in</strong> range(start, stop, step):
        print(i)
compteur(1, 7, 2)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>À retenir:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Pour définir une <strong>fonction avec plusieurs paramètres</strong>, il suffit d'inclure <strong>les paramètres</strong> entre les parenthèses qui suivent le nom de la fonction, en <strong>les séparant à l'aide de virgules</strong>.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Lors de l'appel de la fonction, <strong>les arguments utilisés</strong> doivent être fournis dans <strong>le même ordre</strong> que celui des paramètres correspondants (en les séparant eux aussi à l'aide de virgules).<br>Le premier argument sera affecté au premier paramètre, le second argument sera affecté au second paramètre, et ainsi de suite.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> politesse(nom, titre ="Monsieur"):
    print("Veuillez agréer,", titre, nom, ", mes salutations distinguées.")
    
politesse("Dupont")</pre>
<!-- /wp:preformatted -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Valeurs-par-défaut-pour-les-paramètres">Valeurs par défaut pour les paramètres</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans la définition d'une fonction, il est possible de définir un argument par défaut pour chacun des paramètres. On obtient ainsi une fonction qui peut être appelée avec une partie seulement des arguments attendus.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Exemples :</strong></p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur(start, stop, step=1):
    <strong>for</strong> i <strong>in</strong> range(start, stop, step):
        print(i)
compteur(1, 4)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Lorsque l'on appelle cette fonction en ne lui fournissant que les deux premier arguments, le troisième argument step second reçoit tout de même une valeur par défaut (ici 1).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>alors que l'oubli d'un paramètre amène à une erreur comme ci-dessous.</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur(start, stop, step):
    <strong>for</strong> i <strong>in</strong> range(start, stop, step):
        print(i)
compteur_complet(1, 7)</pre>
<!-- /wp:preformatted -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="Arguments-avec-étiquettes">Arguments avec étiquettes</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans la plupart des langages de programmation, les arguments que l'on fournit lors de l'appel d'une fonction doivent être fournis exactement dans le même ordre que celui des paramètres qui leur correspondent dans la définition de la fonction.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Python autorise l'appel aux fonctions en fournissant les arguments correspondants&nbsp;<strong>dans n'importe quel ordre, à la condition de désigner nommément les paramètres correspondants</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Exemple :</strong></p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> compteur(start, stop, step):
    <strong>for</strong> i <strong>in</strong> range(start, stop, step):
        print(i)
compteur_complet(step=2, stop=4, start=1)</pre>
<!-- /wp:preformatted -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="Les-fonctions-avec-return">5.4.&nbsp;&nbsp;Les fonctions avec return</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous avez vu en mathématiques les fonctions pour un&nbsp;x&nbsp;donné&nbsp;<strong>retournent</strong>&nbsp;une valeur&nbsp;f(x)&nbsp;(éventuellement).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>python utilise le mot clé&nbsp;<strong><em>return</em></strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Par exemple pour la fonction&nbsp;f : x ⟼ 2x + 3&nbsp;on utilisera la fonction :</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted"><strong>def</strong> f(x):
    <strong>return</strong> 2*x+3

print(f(0))
print(f(1))</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p> Les fonctions permettent donc  de décomposer un programme complexe en une  série de sous-programmes plus simples. De plus, les fonctions sont réutilisables : si nous disposons d'une  fonction capable de calculer une racine carrée, par exemple, nous  pouvons l'utiliser un peu partout dans notre programme sans avoir à la  réécrire à chaque fois (on parle de factorisation du code) </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La notion de fonction en informatique est comparable à la notion de fonction en mathématiques.</p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://pixees.fr/informatiquelycee/n_site/img/nsi_python_2.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Si nous avons y = 3x+2, pour une valeur donnée de x, nous aurons une valeur de y.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Exemple : x=4 donc y= 14 (y = 3.4+2=14, attention ici le point correspond au signe "multiplié").</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La fonction en informatique est basée sur la même idée :</p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://pixees.fr/informatiquelycee/n_site/img/nsi_python_3.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Voici la syntaxe employée en Python pour définir une fonction :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def nom_de_la_fonction(parametre):
	instruction_1
	instruction_2
	return y
suite programme			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>La fonction renvoie la valeur contenue dans la variable y.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong><em> ATTENTION : </em></strong>Notez bien la présence du décalage entre la première  ligne et les lignes suivantes. Ce décalage est appelé indentation,  l'indentation permet de définir un bloc de code. Dans l'exemple ci-dessus, l'indentation nous permet de savoir que  "<strong>instruction_1</strong>", "<strong>instruction_2</strong>" et "<strong>return y</strong>" constituent un bloc de  code, ce bloc correspond au contenu de la fonction. "<strong>suite programme</strong>" ne fait pas partie de la fonction, car il n'est  pas indenté. Pour indenter du code, il y a 2 solutions : mettre 4  espaces ou utiliser une tabulation. En Python il est conseillé  d'utiliser les 4 espaces, mais ce n'est pas une obligation. Une chose  est sûre, une fois que vous avez choisi une méthode, n'en changez surtout pas au  cours d'un même programme ! </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Codons notre exemple (y = 3x + 2) en créant une fonction ma_fonction :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def ma_fonction(x):
	y = 3 * x + 2
	return y			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Pour "utiliser" la fonction <strong>ma_fonction</strong>, il suffit d'écrire :  <strong>ma_fonction (4)</strong> (dans ce cas précis, notre fonction renverra le nombre  14).</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 28</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p> Tester le programme suivant (quelle est la valeur référencée par la variable solution après l'exécution du programme) : </p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def ma_fonction(x):
	y = 3 * x + 2
	return y
solution = ma_fonction(4)			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p> Il faut savoir qu'au moment de l'exécution de votre programme le  code <strong>ma_fonction(4)</strong> sera systématiquement remplacé par la valeur renvoyée par la fonction (toujours dans notre  exemple le <strong>ma_fonction(4)</strong> sera remplacé par le nombre 14). </p>
<!-- /wp:paragraph -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 29</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Coder en Python la fonction y = x<sup>2</sup>+2x+10</p>
<!-- /wp:paragraph -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>
				Il est possible d'écrire une fonction dans l'éditeur :
			</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1700} -->
<figure class="wp-block-image"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2019/08/2019-08-29_13-54.png" alt="" class="wp-image-1700"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>
				et d'utiliser la console (après exécution du programme) pour obtenir la valeur renvoyée par une fonction
			</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1702} -->
<figure class="wp-block-image"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2019/08/2019-08-29_13-54-1.png" alt="" class="wp-image-1702"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Il est possible de faire passer plusieurs paramètres à une fonction.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 30</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quel est le résultat renvoyé par la fonction ci-dessous si l'on saisit dans la console<strong> une_autre_fonction(5, 3)</strong></p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def une_autre_fonction(x, b):
	y = 3 * x + b
	return y			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Les paramètres peuvent être des chaînes de caractères (ainsi que la valeur retournée)</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 31</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quel est le résultat attendu après l'exécution du programme  ci-dessous et la saisie dans la console de <strong>"dit_bonjour("toto", 14)"</strong> ?</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def dit_bonjour(nom, age):
	phrase = f"Bonjour {nom}, vous avez {age} ans."
	return phrase			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p><strong><em>Attention : </em></strong>remarquez bien les guillemets autour du paramètre "toto" (c'est une chaîne de caractères)</p>
<!-- /wp:paragraph -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>Les paramètres ne sont pas obligatoires.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 32</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tester la fonction suivante :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>
def ma_fon():
	return "voici une fonction qui ne sert à rien"
			</code></pre>
<!-- /wp:code -->

<!-- wp:separator {"opacity":"css"} -->
<hr class="wp-block-separator has-css-opacity"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>Il faut aussi savoir qu'une fonction ne renvoie pas forcément de  valeur (le mot clé <em>return </em>n'est pas obligatoire). Mais si elle ne  renvoie pas de valeur, que fait-elle ? Elle peut faire plein de choses,  par exemple elle peut tout simplement afficher une chaîne de caractères à  l'aide d'un "<em>print</em>". Sachez que dans certains langages, on utilise les  termes méthode ou procédure pour qualifier une fonction "qui ne renvoie  rien".</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 33</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Soit le programme suivant :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>def dit_bonjour(nom, age):
	phrase = f"Bonjour {nom}, vous avez {age} ans."
	print(phrase)			</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Tester la fonction dit_bonjour à l'aide de la console (avec par exemple un dit_bonjour("toto", 14))</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">À faire vous-même 34</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p> L'indice de masse corporelle (IMC) est une grandeur qui permet d'estimer la corpulence d'une personne.<br>Il se calcule en fonction de la taille en mètre et de la masse en kilogramme.<br>La formule est&nbsp;IMC= masse / taille² <br>Écrire une fonction&nbsp;<strong><code>imc(masse,taille)</code></strong>&nbsp;qui retourne l'indice de la masse corporelle. </p>
<!-- /wp:paragraph -->

<!-- wp:embed {"url":"https://www.youtube.com/watch?v=gy1Ln0hmXVo","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"} -->
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<p style="clear:both"> YouTube Video: <a href="http://www.youtube.com/watch?v=gy1Ln0hmXVo">YouTube.com/watch?v=gy1Ln0hmXVo</a> </p>
</div></figure>
<!-- /wp:embed -->

<!-- wp:paragraph -->
<p><a href="https://icn-isn-boissy.yj.fr/wp/2019/09/11/exercice-1-bases-de-python/"><img class="wp-image-1772" style="width: 100px;" src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2019/08/Suite.jpg" alt=""><br>Exercice 1 - L'écho</a></p>
<!-- /wp:paragraph -->]]></content-encoded>
			<excerpt-encoded><![CDATA[]]></excerpt-encoded>
			<wp-post_id>1726</wp-post_id>
			<wp-post_date>2019-09-04 17:10:53</wp-post_date>
			<wp-post_date_gmt>2019-09-04 15:10:53</wp-post_date_gmt>
				</item>
</upm-export>
