TerminaleSpécialitéISN
TP 2: PYTHON 3 – les fonctions
Objectif :
- Entrer dans la programmation fonctionnelle.
- Mise en œuvre de programmes utilisant des fonctions.
Compétences :
- C.2.1 Analyser
- C.2.3 Développer
- C.4.1 Documenter un projet numérique.
Evaluation :
- Recherche et analyse de problèmes
- Qualité des programmes produits
- Choix de la structure algorithmique adaptée (passage de paramètres …)
- Respect des consignes
- Documentation des programmes
- Autonomie
TerminaleSpécialitéISN
Une fonction : pourquoi ? comment ?
Un exemple (exemple.py):
Imaginons que nous devions répéter cette instruction de nombreuses fois dans divers
endroits du programme, L’écriture et l’analyse de ce code pourrait être fastidieuse. Pour
palier ce problème, Python ( et d’autres langages comme C, Java …) nous permettent de
réaliser des fonctions. Une fonction déclarée et définie dans un programme peut être
utilisée à n’importe quel endroit de celui-ci.
Reprenons l’exemple précédent en y définissant une fonction (exemple1.py) :
Exercice 1 :
En définissant et utilisant une fonction ou des fonctions, produire un programme qui affiche n fois
« Bonjour le monde » (n étant paramétré par l’utilisateur).
Fonctions et variables : passages de paramètres :
Dans l’exemple précédent, la fonction utilisée (qui n’est pas une fonction au sens
mathématique)* n’utilise aucun paramètre et ne fourni aucune variable en sortie : c’est une
fonction qui effectue des actions mais qui est muette d’un point de vue des variables.
*En informatique, on les appelle parfois procédure en réservant le mot fonction aux fonctions mathématiques mais cet usage se fait de
plus en plus rare ….)
Fonctions utilisant une ou plusieurs paramètres :
Exemple :
print("Ilyadenombreuxéditeurspermettantdetravailleravecpython,danslamesure
n'importequeléditeurdetextepeutfairel'affaire.Naturellement,ilexistedeséditeursplus
spécialiséspermettantd'avoirlacoloration")
defecrire_nom():
print("Ilyadenombreuxéditeurspermettantdetravailleravecpython,dansla
mesuren'importequeléditeurdetextepeutfairel'affaire.Naturellement,ilexiste
deséditeursplusspécialiséspermettantd'avoirlacoloration")
ecrire_nom()Appeldelafonctionecrire_nom()
dansleprogramme
Déclarationdunomdelafonction
etdéfinitiondestâchesassociées
TerminaleSpécialitéISN
La fonction calcul_age utilise un paramètre a et retourne un paramètre b qui sont deux
entiers.
Exercice 2 :Ecrire un programme qui détermine la somme des 20 premiers termes de la suite de
premier terme définie par 2

.
Fonction à plusieurs variables :
Exercice 3 : Ecrire un programme qui détermine les racines éventuelles d’un trinôme. On créera une
fonction calcul_delta(a,b,c) .
Variables locales et variables locales :
Lorsque nous définissons des variables à l'intérieur du corps d'une fonction, ces variables ne
sont accessibles qu'à la fonction elle-même. On dit que ces variables sont des variables locales
à la fonction.
Exemple 3 : reprenons l’exemple 2 en ajoutant dans le corps du programme une commande
d’affichage de la variable b définie dans la fonction calcul_age ()(« print(b) ») . Le
programme nous renvoie alors un message d’erreur. Si nous ajoutons cette ligne de
programme dans la fonction, le programme fonctionne. En effet, la variable est connue
localement dans la fonction mais elle est inconnue à l’extérieur de celle-ci.
Les variables définies à l'extérieur d'une fonction sont des variables globales. Leur contenu
est « visible » de l'intérieur d'une fonction, mais la fonction ne peut pas les modifier si elles
sont de type nombre, chaînes de caractères ( on dit que ces types sont immutables). En
revanche, elles peuvent être modifiée si elles sont de type liste (type mutable)
1 def calcul
_
age(a):
2 b=2012-a
3 return b
4
5 annee_de_naissance=int(input("indiquez votre année de
naissance:\n"))
6
7
8 age=calcul_age(annee_de_naissance)
9 print('vous avez',age,'ans')
Règles d’utilisation :
Pour définir une fonction avec plusieurs paramètres, il suffit
d'inclure ceux-ci entre les parenthèses qui suivent le nom de la
fonction, en les séparant à l'aide de virgules.
Lors de l'appel de la fonction, les arguments utilisés doivent être
fournis dans le même ordre que celui des paramètres
correspondants (en les séparant eux aussi à l'aide de virgules). Le
premier argument sera affecté au premier paramètre, le second
argument sera affecté au second paramètre, et ainsi de suite.
1 def calcul
_
age(a):
2 b=2012-a
3 return b
4
5 annee_de_naissance=int(input("indiquez votre année de
naissance:\n")
6
7 age=calcul_age(annee_de_naissance)
8 print(b)
9 print('vous avez',age,'ans')
TerminaleSpécialitéISN
Exemple : tester l’exemple suivant .
On remarque que la variable n n’a pas été modifiée. Pour qu’elle puisse être modifiée,
il faut ajouter dans la fonction : global n :
Cette fois-ci la variable est bien modifiée par la fonction
Les listes sont mutables : tester l’exemple suivant.
Mini_projet : Convertisseur base 10 base 2
Objectif : Réaliser un programme qui convertisse un nombre donné dans une des bases dans l’autre base.
Cahier des charges : Vous rendrez un fichier nommé groupe?_TP_conv.py contenant une fonction bin2dec
(fonction permettant la conversion d’un nombre binaire en décimal), la fonction dec2bin (fonction
permettant la conversion d’un nombre décimal en binaire) , une interface Homme/machine simple et
quelques tests du programmes et des fonctions que vous aurez effectués. Vous devez également ajouter des
commentaires permettant au lecteur de votre code de le comprendre sans ambiguïté.
1 n=2
2
3 def modifie_nombre():
4 n=5
5
6
7
8 modifie_nombre()
9 print(n)
1 n=2
2
3 def modifie_nombre():
4 global n
5 n=5
6
7 modifie_nombre()
8 print(n)
1 n=[2]
2
3 def modifie_nombre():
4
5 n[0]=5
6
7 modifie_nombre()
8 print(n)
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !