Fonctions et modules#
Vidéo: Les fonctions#
Fonctions natives#
Il existe des fonctions prêtes à l’emploi dans Python. On en a déjà vu plusieurs :
fonction |
description |
---|---|
|
affiche le résultat à l’écran |
|
renvoie le type (classe) de l’objet |
|
conversion d’un type vers un autre |
|
supprime un ou plusieurs éléments d’une liste |
|
effectue une copie superficielle d’une liste |
Par exemple, pour obtenir le type de la valeur 10
et affecter le résultat à une nouvelle variable, on écrit :
resultat = type(10)
De manière générale, une fonction a des entrées et des sorties, et on l’appelle de la manière suivante :
sorties = nom_fonction(entrées)
La fonction len()
permet d’obtenir la longueur d’une liste ou d’une chaîne, c’est-à-dire le nombre d’éléments contenus dans la liste, ou le nombre de caractères contenus dans la chaîne.
Les fonctions min()
et max()
renvoient respectivement le plus petit et le plus grand élément d’une liste qui contient des élements d’un même type. Si ces éléments sont des chaînes, alors ils sont classés dans l’ordre alphabétique (\(a < b < c < \dots\)).
Liste des fonctions natives
Vous pouvez trouver la liste des fonctions natives et leur description à l’adresse :
Exercice#
Vous prévoyez un voyage en France qui passe par les villes suivantes : Le Mans, Nantes, Limoges, Toulouse, Montpellier, Lyon, Dijon, Nancy. Créez une liste
villes
qui contient le nom de ces villes.À l’aide des fonctions
len()
etprint()
, affichez le nombre de villes que vous prévoyez de visiter à l’écran.
Show code cell source
# Création de la liste de destinations
villes = ["Le Mans", "Nantes", "Limoges", "Toulouse", "Montpellier", "Lyon", "Dijon"]
# Affichage de la longueur de la liste
print(len(villes))
7
Aide#
Vous connaissez le nom d’une fonction mais vous ne vous souvenez plus comment l’utiliser ? Vous pouvez obtenir de l’aide (en anglais) grâce à une autre fonction, help()
, ou bien en écrivant ?
avant le nom de la fonction. Par exemple :
help(len)
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
L’aide nous renseigne sur les entrées et sorties de la fonction. Dans l’exemple, on traduit par :
entrée |
sortie |
provenance |
---|---|---|
un objet (obj) |
nombre d’éléments dans le conteneur |
fonction native (built-in) |
Conteneur
En Python, on appelle conteneur (container) un objet ayant vocation à en contenir d’autres, comme les chaînes qui contiennent des caractères, et les listes qui contiennent n’importe quel objet.
Voici un autre exemple :
help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
On voit ici qu’il y a plusieurs entrées. Les entrées obligatoires sont celles qui ne sont pas suivies du signe =
. Les points … signifient que l’on peut écrire plusieurs valeurs. Les entrées optionnelles sont suivies du signe =
, qui indique leur valeur par défaut.
Pour la fonction print()
, il faut en entrée une ou plusieurs valeurs, séparées par des virgules. On peut ensuite spécifier, dans l’ordre que l’on veut, les entrées optionnelles :
option |
valeur par défaut |
description |
---|---|---|
|
|
séparateur entre les valeurs |
|
|
caractère à écrire en fin de ligne |
On verra les autres options possibles plus tard. Par exemple, on peut écrire :
print("Le Mans", "Nantes", "Limoges", sep = ", ", end = " (mes destinations)\n")
Le Mans, Nantes, Limoges (mes destinations)
Aide du site Python
Vous pouvez consulter l’aide du site Python en Français. Il y a des tutoriels, des aides pour l’installation, une description de la bibliothèque standard, entre autres choses.
Exercice#
Afficher l’aide de la fonction
sorted()
et comprendre son fonctionnement. Note : un itérable (iterable) est un objet capable de renvoyer ses éléments un à un, comme les listes et les chaînes.Afficher à l’écran les villes contenues dans la liste
villes
créée plus haut dans un ordre alphabétique descendant (de z vers a), grâce à l’optionreverse = True
de la fonctionsorted()
, et de la fonctionprint()
.
Show code cell source
# Aide de la fonction sorted()
help(sorted)
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
Show code cell source
# Affichage de la liste dans l'ordre alphabétique inverse
print(sorted(villes, reverse = True))
['Toulouse', 'Nantes', 'Montpellier', 'Lyon', 'Limoges', 'Le Mans', 'Dijon']
Vidéo: Les méthodes#
Méthodes de chaînes#
Il existe beaucoup de méthodes pré-définies pour les chaînes de caractères. Nous en présentons quelques-unes ici. Pour avoir la liste complète, vous pouvez utiliser l’instruction help(str)
ou bien consulter l’aide du site Python.
méthode |
description |
---|---|
|
renvoit un texte en minuscules |
|
renvoit un texte en majuscules |
|
première lettre en majuscule |
|
renvoie une liste des mots séparés par des espaces |
|
recherche une chaîne spécifiée en entrée |
|
substitue une chaîne par une autre |
|
compte le nombre d’occurrences d’une chaîne |
|
vérifie si une chaîne commence par une autre chaîne |
|
“nettoie les bords” d’une chaîne |
Exercice#
Créer une variable
ville = "TOULOUSE"
Afficher le nom de la ville à l’écran avec la première lettre en capitale et le reste en minuscule
Afficher à l’écran le nombre de fois que la lettre “o” apparaît dans le mot
Show code cell source
# Création de la chaîne
ville = "TOULOUSE"
# Affichage avec seulement la première lettre en capitale
print(ville.capitalize())
# Nombre d'occurences de la lettre o
print(ville.lower().count("o"))
Toulouse
2
Méthodes de liste#
Il existe aussi beaucoup de méthodes pré-définies pour les listes. Nous en présentons quelques-unes ici. Pour avoir la liste complète, vous pouvez utiliser l’instruction help(list)
ou bien consulter l’aide du site Python.
méthode |
description |
---|---|
|
indice de la première occurrence de |
|
nombre total d’occurrences de |
|
ajoute |
|
supprime tous les éléments de |
|
crée une copie de |
|
étend |
|
insère |
|
récupère l’élément à l’indice |
|
supprime le premier élément de |
|
inverse l’ordre des éléments de |
Argument optionnel
Un argument suivi du signe =
, comme dans s.pop(i = -1)
, veut dire que l’on n’est pas obligé d’écrire explicitement cet argument. Si on ne l’écrit pas, alors il prend une valeur par défaut qui est spécifiée après le signe =
, et que l’on peut trouver dans l’aide de la fonction ; ici, c’est -1
, donc s.pop()
supprime le dernier élément de la liste s
.
Exercice#
On décide d’aller à Poitiers plutôt qu’à Limoges. Il faut donc substituer "Poitiers"
à "Limoges"
dans notre liste des destinations. De plus, on veut ajouter Paris comme destination finale.
Créer la liste
villes = ["Le Mans", "Nantes", "Limoges", "Toulouse", "Montpellier", "Lyon", "Dijon"]
Affecter l’indice de la chaîne
"Limoges"
dans la listevilles
à une variablei
.Insérer la chaîne
"Poitiers"
dans la listevilles
à l’indicei
.Retirer la chaîne
"Limoges"
de la listevilles
, et ajouter"Paris"
à la fin de la liste.Afficher la liste
villes
à l’écran.
Show code cell source
# Création de la liste
villes = ["Le Mans", "Nantes", "Limoges", "Toulouse", "Montpellier", "Lyon", "Dijon"]
# Indice de l'élément "Limoges"
i = villes.index("Limoges")
# Insertion de la chaîne "Poitiers"
villes.insert(i, "Poitiers")
# Suppression de la chaîne "Limoges"
villes.remove("Limoges")
# Ajout de la chaîne "Paris" en fin de liste
villes.append("Paris")
# Affichage de la liste
print(villes)
['Le Mans', 'Nantes', 'Poitiers', 'Toulouse', 'Montpellier', 'Lyon', 'Dijon', 'Paris']
Vidéo: Les modules#
Importer un module#
Les modules sont des bibliothèques de fonctions. Il existe de nombreux modules pour le calcul scientifique, que nous verrons dans la suite du cours. La bibliothèque Python propose quelques modules numériques et mathématiques.
Pour importer un module dans notre programme, par exemple le module math
, il suffit d’écrire :
import math
On peut alors utiliser les variables et les fonctions du module math
en écrivant :
math.pi
3.141592653589793
math.sin(3 * math.pi / 4)
0.7071067811865476
On peut aussi changer le nom du module dans notre programme :
import math as mt
On accède alors aux fonctions avec le nouveau nom :
mt.e
2.718281828459045
mt.log(mt.e)
1.0
Exercice#
Importer le module
random
en lui donnant le nomrd
.Afficher à l’écran un chiffre aléatoire entre 0 et 1 à l’aide de la fonction
random()
du modulerandom
.
Show code cell source
# Import du module random
import random as rd
# Affichage d'un nombre aléatoire entre 0 et 1
print(rd.random())
0.810732806772329
Import sélectif#
Finalement, on peut importer seulement quelques fonctions d’un module en les nommant. On n’a alors pas besoin de spécifier le module quand on les utilise :
from math import cos, radians # radians(x) convertit l'angle x de degrés en radians
angle = 360 # degrés
print(cos(radians(angle)))
1.0
Exercice#
Importer les fonctions
mean()
etmedian()
du modulestatistics
.Lire leurs descriptions dans l’aide du module statistics.
Créer une liste
nombres = [7.2, 1.5, 9.3, 6.9, 14.2, 2.5, 87.2]
Afficher à l’écran la moyenne et la médiane de la liste
nombres
.
Show code cell source
# Import des fonction mean() et median() du module statistics
from statistics import mean, median
# Création de la liste
nombres = [7.2, 1.5, 9.3, 6.9, 14.2, 2.5, 87.2]
# Affichage de la moyenne et de la médiane
print("Moyenne : " + str(mean(nombres)))
print("Médiane : " + str(median(nombres)))
Moyenne : 18.400000000000002
Médiane : 7.2