TP2 - cours lacroix

publicité
Station météo
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
Terminale Spécialité ISN
Une fonction : pourquoi ? comment ?
Un exemple (exemple.py):
print ("Il y a de nombreux éditeurs permettant de travailler avec python, dans la mesure où
n'importe quel éditeur de texte peut faire l'affaire. Naturellement, il existe des éditeurs plus
spécialisés permettant d'avoir la coloration ")
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) :
Déclaration du nom de la fonction
et définition des tâches associées
def ecrire_nom():
print("Il y a de nombreux éditeurs permettant de travailler avec python, dans la
mesure où n'importe quel éditeur de texte peut faire l'affaire.Naturellement, il existe
des éditeurs plus spécialisés permettant d'avoir la coloration")
ecrire_nom()
Appel de la fonction ecrire_nom()
dans le programme
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 :
Terminale Spécialité ISN
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')
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
1
premier terme 𝑣0 définie par 𝑣𝑛 = 2𝑛 + ( )𝑛 .
Fonction à plusieurs variables :
2
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) .
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.
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.
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
Les
variables définies à l'extérieur d'une fonction sont des variables globales. Leur contenu
7 age=calcul_age(annee_de_naissance)
est8 «print(b)
visible » de l'intérieur d'une fonction, mais la fonction ne peut pas les modifier si elles
sont
de
type nombre,avez',age,'ans')
chaînes de caractères ( on dit que ces types sont immutables). En
9 print('vous
revanche, elles peuvent être modifiée si elles sont de type liste (type mutable)
Terminale Spécialité ISN
•
Exemple : tester l’exemple suivant .
1
2
3
4
5
6
7
8
9
•
n=2
def modifie_nombre():
n=5
modifie_nombre()
print(n)
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 :
1
2
3
4
5
6
7
8
n=2
def modifie_nombre():
global n
n=5
modifie_nombre()
print(n)
Cette fois-ci la variable est bien modifiée par la fonction
• Les listes sont mutables : tester l’exemple suivant.
1
2
3
4
5
6
7
n=[2]
def modifie_nombre():
n[0]=5
modifie_nombre()
print(n)
Mini_projet : Station météo Convertisseur base 10 base 2
La carte d’acquisition Arduino Communique avec le PC en binaire. Tandis que la fonction qui permet
l’affichage des données utilise le code décimal. Il est donc nécessaire d’effectuer une conversion binaire
décimale et décimale binaire afin de rendre compatible les données de l’arduino avec le PC.
Objectif : Réaliser un programme qui convertisse un nombre donné dans une des bases dans l’autre base.
Travail à réaliser : Réaliser un programme qui convertisse un nombre donné dans une des bases dans l’autre
base. une interface Homme/machine simple.
Documents à rendre : un rapport incluant un listing commenté , des procédures de test validant le
fonctionnement du programme , une clé USB contenant un fichier groupeX_TP2.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 .
Terminale Spécialité ISN
Téléchargement