Fonctions et modules¶
Fonctions natives¶
Il existe des fonctions prêtes à l’emploi dans Python. On en a déjà vu plusieurs:
| fonction | description |
|---|---|
print() |
affiche le résultat à l’écran |
type() |
renvoie le type (classe) de l’objet |
str(), float() et int() |
conversion d’un type vers un autre |
del() |
supprime un ou plusieurs élément d’une liste |
Par exemple, pour obtenir le type de la valeur 10 et affecter le résultat à une nouvelle variable, on écrit:
[1]:
resultat = type(10)
De manière générale, une fonction à 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 élement 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 < …).
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éer une liste
villesqui contient le nom de ces villes. - A l’aide des fonctions
len()etprint(), afficher le nombre de villes que vous prévoyez de visiter à l’écran.
[2]:
# 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’un fonction mais vous ne vous souvenez plus comment l’utiliser? Vous pouvez obtenr de l’aide (en anglais) grâce à une autre fonction, help(), ou bien en écrivant ? avant le nom de la fonction. Par exemple:
[3]:
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:
[4]:
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ée par une virgule. On peut ensuite spécifier, dans l’ordre que l’ont veut, les entrées optionnelles:
| option | valeur par défaut | description |
|---|---|---|
sep |
" " |
séparateur entre les valeurs |
end |
"\n" |
caractère à écrire en fin de ligne |
On verra les autres options possibles plus tard. Par exemple, on peut écrire:
[5]:
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
villescréée plus haut dans un ordre alphabétique descendant (de z vers a), grâce à l’optionreverse=Truede la fonctionsorted(), et de la fonctionprint().
[6]:
# 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.
[7]:
# affichage de la liste dans l'ordre alphabétique inverse
print(sorted(villes, reverse=True))
['Toulouse', 'Nantes', 'Montpellier', 'Lyon', 'Limoges', 'Le Mans', 'Dijon']
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 une 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 |
|---|---|
str.lower() |
renvoit un texte en minuscule |
str.upper() |
renvoit un texte en majuscule |
str.capitalize() |
première lettre en majuscule |
str.split() |
renvoie une liste des mots sépararés par des blancs |
str.find(str) |
recherche une chaîne spécifiée en entrée |
str.replace(str1,str2) |
substitue une chaîne par une autre |
str.count(str) |
compte le nombre d’occurrences d’une chaîne |
str.startswith(str) |
vérifie si une chaîne commence par une autre chaîne |
str.strip() |
“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
[8]:
# création de la chaîne
ville = "TOULOUSE"
# affichage avec seulement la première lettre en capitale
print(ville.lower().capitalize())
# nombre d'occurence 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 une 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 |
|---|---|
s.index(x) |
indice de la première occurrence de x dans s |
s.count(x) |
nombre total d’occurrences de x dans s |
s.append(x) |
ajoute x à la fin de la séquence s |
s.clear() |
supprime tous les éléments de s (comme del(s[:])) |
s.copy() |
crée une copie de s (comme s[:]) |
s.extend(t) |
étend s avec le contenu de t |
s.insert(i,x) |
insère x dans s à l’indice i |
s.pop([i]) |
récupère l’élément à l’indice i et le supprime de s |
s.remove(x) |
supprime le premier élément de s égal à x |
s.reverse() |
inverse l’ordre des éléments de s |
Argument optionnel
Un argument entre crochet, comme dans s.pop([i]), 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 que l’on peut trouver dans l’aide de la fonction.
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.
[9]:
# 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']
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:
[10]:
import math
On peut alors utiliser les fonctions du module ``math` <https://docs.python.org/fr/3/library/math.html>`__ en écrivant:
[11]:
math.pi
[11]:
3.141592653589793
[12]:
math.sin(3 * math.pi / 4)
[12]:
0.7071067811865476
On peu aussi changer le nom du module dans notre programme:
[13]:
import math as mt
On accède alors aux fonctions avec le nouveau nom:
[14]:
mt.e
[14]:
2.718281828459045
[15]:
mt.log(mt.e)
[15]:
1.0
Exercice¶
- Importer le module
randomen lui donnant le nomrd. - Afficher à l’écran un chiffre aléatoire entre 0 et 1 à l’aide de la fonction ``random()` <https://docs.python.org/fr/3/library/random.html>`__ du module
random.
[16]:
# import du module random
import random as rd
# affichage d'un nombre aléatoire entre 0 et 1
print(rd.random())
0.5079299333449618
Import séléctif¶
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:
[17]:
from math import cos, radians # radian(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.
[18]:
# import des fonction mean() et random() 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