Terminale Spécialité ISN
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):
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 ("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 ")
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
Déclaration du nom de la fonction
et définition des tâches associées
Terminale Spé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 𝑣0 finie par 𝑣𝑛= 2𝑛+ (1
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')
Terminale Spé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 : 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 .
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 n[0]=5
5
6 modifie_nombre()
7 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 !