TP 8 L
ES FONCTIONS EN
python
1 Définir une fonction
Introduction
Il arrive de manière fréquente qu’une même séquence d’instructions doive être utilisée à plusieurs reprises dans un
programme, et on souhaitera bien évidemment ne pas avoir à la reproduire systématiquement. Une solution consiste à
créer des fonctions avec ou sans paramètres.
La syntaxe des fonctions est :
1
def
nomDeLaFonction(argument1, argument2, ...):
2
bloc d’instructions
argument1, argument2,
...
sont appelés les arguments ou les paramètres de la fonction.
Fonction sans paramètre
Une fonction n’a pas forcément d’argument, il faut quand même mettre «
()
» dans la définition de cette fonction.
On peut, par exemple, créer une fonction permettant d’obtenir la table de 7.
Exemple : enregistrer un fichier TP8cours1.py
1 def
table7():
2
"""fonction permettant d’obtenir la table par 7"""
3 n = 1
4 while n <11
:
5 print
(n
* 7,
end
= )
6 n = n +1
# Programme principal
table7() #
Pour utiliser la fonction que nous venons de définir, il suffit de l’appeler par son nom.
Noter ci-dessous l’affichage obtenu :
Fonction avec un paramètre
On peut définir une fonction qui est capable d’afficher n’importe quelle table, à la demande.
Exemple : enregistrer un fichier TP8cours2.py
1
def
table(base):
2
""" fonction permettant d’obtenir la table par base"""
3 n = 1
4 while n <11
:
5 print
(n * base, end =
)
6 n = n +1
# Programme principal
table(13) #pour obtenir la table de 13
table(9) #pour obtenir la table de 9
La fonction
table()
utilise le paramètre
base
pour calculer les dix premiers termes de la table de multiplication
correspondante.
Noter ci-dessous l’affichage obtenu :
Fonction avec plusieurs paramètres
On peut définir une fonction qui est capable d’afficher n’importe quelle table et pas forcément les dix premiers
termes
de la table.
Exemple : enregistrer un fichier TP8cours3.py
1 def
tableMulti(base, debut,
fin):
2
"""fonction permettant d’obtenir la table par base de debut à fin"""
3 print
(’Fragment de la table de multiplication par’, base,
’:’)
4 n = debut
5 while n <=
fin
:
6
print
(n,
’x’,
base,
’=’,
n * base)
7 n = n +1
8
9 tableMulti(8, 13, 17)
Noter ci-dessous l’affichage obtenu :
Vos fonctions doivent être documentées pour que d’autres puissent savoir ce que fait
cette fonction.
Vraies fonctions et procédures
Une « vraie » fonction ( au sens strict ) doit renvoyer une valeur, sinon on parle de procédure. On utilise le
mot-clé return.
Exemple :
2 Les modules en python
Un module, c’est quoi ?
En
python
, certaines fonctions font partie du « pack » de base qui est toujours disponible, par exemple,
len()
,
input()
,
print()
,
. . .
D’autres fonctions, comme les fonctions
sin
et
cos
ne sont pas présentes dans le « pack » de base contrairement
à
l’addition, la soustraction, . . .
Il faut donc faire appel aux modules . . .
Un module en python est une bibliothèque de fonction, non disponible directement au chargement de
python.
def
cube(
n):
"""fonction qui renvoie le cube dun nombre """
return
n**3
def
volumeSphere(
r):
"""fonction qui renvoie le volume dune sphère " ""
return 4 * 3.14159 * cube(r) /3 #la fonction volumeSphere appelle la fonction cube
# Programme principal
r = float(input(‘ Entrez la valeur du rayon : ‘))
print(‘Le volume de cette sphère vaut : ‘, volumeSphere(r) ) #on appelle la fonction volumesphere
Le module
math
Le module math regroupe toutes le fonctions indispensables en mathématiques.
On peut importer une fonction particulière :
1
>>>
from math import
cos
# importe la fonction cosinus du module math
On peut importer un module en entier :
1
>>>
from math import
*
# l’étoile indique que l’on doit importer tous le module math
Pour connaître le contenu d’un module :
On utilise la fonction
dir()
1 >>>import math
2 >>>dir(math)
2
[
doc
,
name
,
package
,
’acos’, acosh, ’asin’, ’asinh’, ’atan’, atan2, ’atanh’,
’ceil’,
3
’copysign, ’cos’, cosh’, degrees’, ’e’, ’erf’, erfc’, ’exp’, ’expm1’, ’fabs’, factorial’, ’floor’, ’fmod,
4
’frexp’, ’fsum’, ’gamma’, ’hypot’,
’isfinite’, ’isinf’,
’isnan’, ’ldexp, ’lgamma’,
’log’,
’log10’, ’log1p’,
5
’modf’, ’pi’, ’pow’, ’radians, sin’, ’sinh, ’sqrt’, ’tan’, ’tanh’, ’trunc’]
Puis utiliser help(cos) pour connaitre ce que fait la fonction, ou mieux aller lire la documentation en ligne.
Le module
random
Le module
random
permet de « gérer » tout l’aléatoire.
1
>>>
from random import
*
# importe tout le module random
Les principales fonctions de ce module que nous utiliserons :
randint(a,b) : renvoie aléatoirement un entier compris entre a et b (inclus tous les
deux).
Attention : a et b doivent être entiers (négatifs éventuellement).
random() : renvoie aléatoirement un réel compris entre 0 (inclus) et 1 (exclu).
Exemples
1
>>> randint(2,75)
2 63
3 >>> random()
4 0.46480356897753472
Le module
time
Le module time permet de « gérer le temps ».
1
>>>
from time import
*
# importe le module time
Les principales fonctions de ce module que nous utiliserons :
La fonction time() permet de récupérer un temps machine (donc par différence de chronométrer).
La fonction
localtime()
permet de récupérer l’« heure ».
La fonction sleep(5) permet de faire une pause de 5 secondes.
Exemple La fonction suivante :
affiche les entiers de 0 à 5 en faisant une pause entre les affichages ;
calcul le temps nécessaire à l’exécution de cette fonction.
1
from time import
*
2
3
def
essai():
4
"""essai du module time"""
5
c1=time()
6
i=0
7
while
i<6:
8 print
(i)
9
sleep(1)
10
i=i+1
11
c2=time()
12
print
("Temps écoulé
:",c2-c1)
13 # Programme Principal
14 essai() # On exécute la fonction essai qui affiche les nombres avec une pause de 1 seconde.
3 Exercices
E
XERCICE
1
Écrire un programme qui demande à un utilisateur dentrer une phrase et qui en un seul parcours de cette
chaîne de caractères, compte le nombre de voyelles et le nombre de s compris
dans cette chaîne. On définira une
fonction comptage(chaine)qui retournera deux nombres.
E
XERCICE
2
Écrire un programme qui demande à un utilisateur dentrer une phrase, puis l ui deman d e un caractère et
affiche le nombre de f ois où on ren con tre ce caractère dans la chaîne. On définira une fonction
comptageCaractere comme qui retournera le nombre cherché.
E
XERCICE
3
(1) Écrire la fonction retourne(ch) qui étant donné une chaîne de caractères renvoie la chaîne écrite « à l’envers ».
(2) Écrire une fonction palindrome(ch) qui teste si une chaîne de caractères est un palindrome et renvoie un
booléen.
(3) En déduire un programme qui affiche les années palindromiques de 1 à n.
Une année est palindromique si la chaîne de caractères correspondante est un palindrome.
On pourra utiliser la fonction str qui transforme un entier en la chaîne correspondante.
E
XERCICE
4
Écrire la fonction
triangle(n)
qui affiche un triangle d’étoiles.
1
triangle(5)
2
2
*
3
* *
4
* * *
5
* * * *
6
* * * * *
E
XERCICE
5
E
XERCICE
6
E
XERCICE
7
Écrire un programme qui recherche le plus grand élément présent dans une liste de nombre entrée par l’utilisateur.
E
XERCICE
8
La suite de ThueMorse est définie par :
a
0
=
0 ;
pour passer de an à an+1 on remplace tous les 0 de an par la séquence 01 et tous les 1 par la séquence 10.
(1) Donner, à la main, a1 ; a2 et a3.
(2) Écrire la fonction change(a) qui étant donné une chaîne de caractères a composée uniquement de 1 et de 0
renvoie la chaîne obtenue en remplaçant tous les 0 par 01 et les 1 par 10.
(3) Écrire un programme qui calcule an.
1 / 6 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 !