ISN. TP : Perfectionnement Python - Langages de programmation
4Fonctions et portée des variables Chapitre 5 page 33 du document courspython3.pdf
Les fonctions sont utilisées en programmation pour scinder les processus en petits morceaux. Les fonctions peuvent recevoir des
arguments (variables) qui en Python sont toujours passés par valeur 11, ce qui signifie qu’une copie de la variable est passée à la
fonction, qui n’existe que dans le cadre de celle-ci.
Toute modification apportée à la variable d’origine à l’intérieur de la fonction est perdue à la sortie de la fonction.
Les fonctions sont définies avec le mot-clé 12 def suivi du nom de la fonction, les variables transmises en arguments se placent
entre parenthèses, après le nom de la fonction - les variables multiples sont séparées par des virgules -
Les noms donnés aux variables dans ces parenthèses sont ceux qu’elles auront dans le contexte de la fonction, indépendamment
des noms des variables passées réellement à la fonction :
a. Consulter le fichier fonctions_et_portee.py avec votre éditeur préféré, puis transférer ce script sur votre RPi.
Bien sûr, on modifiera (si nécessaire ?) ses droits, pour le rendre exécutable. Comment vérifier les droits d’un fichier sous Linux?
b. Soit f(x)=2x2−x+1. Écrire un programme qui affiche le résultat de f(1), f(2) et f(3).
Vous mettrez ce programme dans le fichier calcul_polynome.py.
c. Écrire une fonction moyenne qui prends en paramètres deux entiers et qui calcule la moyenne de ces deux entiers. Écrire un
programme qui affiche la moyenne de 11 et 14, de 18 et 15, de 20 et 15 en utilisant la fonction moyenne.
Vous mettrez ce programme dans le fichier calcul_moyenne.py.
d. Écrire une fonction est_divisible_par qui prends en paramètres deux entier net ket qui renvoie vrai si nest divisible par
k, faux sinon. Écrire un programme qui affiche la divisibilité de 5 par 3, de 6 par 2 et de 9 par 3.
Vous mettrez ce programme dans le fichier calcul_arithmetique.py.
e. Écrire une fonction est_pair qui prends en paramètre un entier et qui renvoie vrai si l’entier est pair, faux sinon. Vous
utiliserez la question précédente pour réaliser cette fonction. Écrire un programme qui affiche la parité des entiers 2,4,3,et 7.
Vous ajouterez ce programme au fichier calcul_arithmetique.py.
f. Écrire une fonction est_compris_dans qui prends en paramètres trois entiers, a,bet cet qui renvoie vraie si aest compris
entre bet c.
g. (Optionnel, difficile : il faut être inventif !)
Écrire une fonction maxi qui prends en paramètres deux entiers et qui renvoie l’entier le plus grand. Vous devez écrire cette
fonction SANS utiliser les sauts conditionnels (if then else), NI les boucles (while, for).
h. Faire le TP : binaire.pdf pour « en rajouter une couche » sur la représentation des nombres.
i. Faire le TP : python_cours_TP2 sur la programmation fonctionnelle.
5Style de codage
Il est simple d’écrire du code propre, la clé en est la cohérence. Par exemple, nommé toujours vos variables de la même manière.
Peu importe que vous utilisiez la casse « ChatMot » ou le caractère underscore mais on ne devrait pas être obliger de deviner ce
qu’une variable fait (identificateurs autodocumentés pour les variables).
L’autre bonne pratique consiste à toujours commenté votre code, cela vous aidera, ainsi que tout relecteur du code.
On place également un bref résumé au sommet d’un fichier de code, qui décrit ce que fait l’application (Docstring) et un jeu de
tests (voir le document python_cours_TP1)
a. Lire les « conseils pour une bonne programmation », donnés en page 3 du document ISN_numeration_positionnelle.
Bien sûr il n’est pas inutile de consulter les pages 1 et 2 sur l’optimisation d’un algorithme.
b. Lire le « zen de Python » annexe A, p. 91 du document courspython3.pdf et son annexe B : « Par ou commencer? »
Simplicité du langage Python :
– Syntaxe claire et cohérente
– Indentation significative
– Gestion automatique de la mémoire (garbage collector)
– Typage dynamique fort : pas de déclaration
N’ayez pas peur de vous retrouver bloquer de temps en temps :
« Le vrai plaisir de la programmation, c’est de résoudre les problèmes, un à un ».
Bonne programmation !
11. Voir votre manuel de spécialité ISN, chapitre 4 page 72 « Choisir entre un passage par valeur et une variable globale ».
12. Voir le document python_cours_TP1 page 7.
http://lycee.lagrave.free.fr/isn 3n