C’est le cours python numéro 10 de la série des cours d’initiation à python.
Nous avons déjà prévu dans la leçon 4 qu’en Python nous pouvons utiliser des milliers de fonctions. Cependant, elles ne sont pas toutes disponibles immédiatement, pour une raison essentiellement logistique : l’interpréteur Python qui lit nos instructions est lui-même un programme, et y intégrer toutes les fonctions aurait conduit (pour ceux qui l’ont programmé) à un seul fichier énorme et peu maniable (par exemple ajouter ou corriger une fonction aurait entraîné la modification de tout le programme qui gère Python).
Nous avons donc choisi de ne rendre disponibles que quelques fonctions immédiatement (par exemple max(), min(), len(), int() que nous avons déjà vu) tandis que les autres sont regroupées dans des fichiers externes, appelés modules. Chaque module contient des fonctions liées à un sujet (mathématiques, graphiques, temps, interface avec le système d’exploitation …) : lorsque nous devons utiliser ces fonctions, nous pouvons dire à Python d’importer ce module et ainsi nous pouvons utiliser ses fonctions.
Alors que devons-nous faire pour utiliser une fonction qui se trouve dans un module ? Dans cette leçon, nous allons faire quelques exemples de travail dans IDLE. Essayons par exemple avec la racine carrée ; on tape :
>>> sqrt(4)
Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sqrt(4) NameError: name 'sqrt' is not defined
La fonction sqrt () ne fait pas partie des fonctions immédiatement disponibles, donc Python signale une NameError et nous avertit qu’il ne le sait pas.
Pour utiliser sqrt() il faut d’abord savoir dans quel module il est contenu : c’est le module math, qui contient toutes les fonctions mathématiques.
Pour “faire connaître à Python” les fonctions contenues dans un module donné, la commande import est utilisée : elle a de nombreuses syntaxes possibles, mais nous n’en montrerons que trois. Nous écrivons:
>>> import math >>> math.sqrt(4)
2.0
L’instruction import module_name rend toutes les fonctions et constantes définies dans le module disponibles. On peut s’y référer en utilisant la syntaxe :
nom_module.nom_fonction ()
(c’est-à-dire le nom du module, le point et le nom de la fonction)
Par exemple, nous pouvons continuer comme ceci :
4)
2.0
>>> math.log(1) # Algorithme
0.0
>>> math.cos(0) # cosinus
1.0
>>> math.exp(1) # exponentiel
2.718281828459045
(pour nos besoins, il n’est pas important que vous connaissiez le logarithme, le cosinus ou l’exponentielle : vous avez juste besoin de savoir qu’il s’agit de fonctions mathématiques).
Réinitialisons maintenant IDLE en cliquant sur l’élément de menu Shell => Restart Shell afin d’annuler l’effet de la première importation. Nous écrivons:
>>> from math import sqrt, log >>> sqrt(4)
2.0
>>> log(1)
0.0
>>> cos(0)
Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> cos(0) NameError: name 'cos' is not defined
L’instruction de module_name import function_name rend disponibles uniquement les noms qui y sont indiqués (beaucoup peuvent être écrits, séparés par des virgules). On peut s’y référer directement (sans préfixer le nom du module et la période).
En fait, l’instruction que nous avons écrite a importé la racine sqrt () et le logarithme log (), mais pas le cosinus qui a donné une erreur. Notez que les calculs ont disparu dans cet exemple. avant le nom de la fonction.
Encore une fois, nous cliquons sur Shell => Redémarrer Shell et continuons comme ceci :
>>> from math import * >>> sqrt(4)
2.0
>>> exp(1)
2.718281828459045
L’instruction from math import * rend toutes les fonctions et constantes définies dans le module disponibles. On peut s’y référer directement (sans préfixer le nom du module).
Cette troisième syntaxe est certainement plus pratique et vous vous demandez probablement à quoi servent les deux autres, qui nécessitent de taper plus de touches pour appeler des fonctions. Le fait est qu’en important directement tout le module nous ne savons pas exactement ce que nous avons importé. Un programme volumineux peut importer de nombreux modules, et certains d’entre eux peuvent avoir des fonctions portant le même nom : ainsi, en appelant la fonction xxx () (sans le nom du module), nous ne savons pas exactement quelle fonction nous appelons. C’est pourquoi les programmeurs expérimentés préfèrent “avoir le contrôle” sur les noms de fonctions, en utilisant les deux premières syntaxes.
Dans la suite, cependant, puisque nos programmes importeront au plus un ou deux modules, nous utiliserons toujours la troisième forme qui permet une syntaxe plus simple. Il est courant de placer des instructions d’importation au début du programme, pour s’assurer qu’elles précèdent toutes les fonctions que nous utiliserons plus tard.
Donc, si dans un des prochains exercices je vous dis d’utiliser la fonction xxx() qui se trouve dans le module yyy vous devrez écrire ce code :
from yyy import *
...
...
a = xxx()
La distribution Python standard comprend des dizaines de modules ; la liste des modules se trouve facilement dans la documentation officielle et varie d’une version à l’autre de Python (les fonctions immédiatement disponibles appartiennent au module builtins qui se charge automatiquement au démarrage). De plus, à partir d’Internet, vous pouvez télécharger et installer d’autres modules de programmeurs indépendants concernant, par exemple, les graphiques, les jeux, la musique.
Pour savoir “ce que” contient un module, il existe quelques fonctions d’aide. Après avoir importé un module dans IDLE, on peut écrire dir (module_name) pour obtenir la liste de tous les noms définis dans le module (en plus des fonctions il peut aussi y avoir des constantes : par exemple, pi et le nombre d’Euler sont définis dans mathématiques) ; l’aide à la rédaction (nom_du_module) donne une explication plus détaillée (en anglais). Au lieu de cela, help (function_name) nous donne une brève explication (également en anglais) sur ce que fait la fonction.
Il contient une série de fonctions liées à la génération de nombres aléatoires et est largement utilisé pour les jeux, car il peut simuler le lancer d’une pièce ou d’un dé. Voici quelques-unes des fonctionnalités contenues :
Une fonction | Signification |
seed() | Il est utilisé pour initialiser le générateur de nombres aléatoires. Elle doit toujours être appelée (une seule fois) avant d’utiliser toute autre fonction du module |
randrange(n) | Renvoie un entier aléatoire entre 0 et n (non inclus). Donc avec randrange (2) vous pouvez simuler le lancer d’une pièce (il renverra aléatoirement 0 ou 1) |
randrange(m, n) | Renvoie un entier aléatoire entre m (inclus) et n (non inclus). Ainsi, avec randrange (1, 7), vous pouvez simuler le lancer d’un dé. Nous avons déjà utilisé cette fonctionnalité ici. |
random() | Renvoie un flottant aléatoire entre 0,0 et 1,0. Il est souvent utilisé pour exécuter du code de manière probabiliste. Par exemple, en écrivant si aléatoire () <0.2 : . . . si le blocage sera fait 20% du temps |
Par exemple, essayons de simuler le lancer d’un dé avec IDLE :
>>> from random import * >>> seed() >>> randrange(1, 7)
5
>>> randrange(1, 7)
3
>>> randrange(1, 7)
1
nous pouvons continuer à appeler le même randrange () autant de fois que nous le voulons, et à chaque fois il renverra un nombre aléatoire entre 1 et 6. Maintenant, nous utilisons les fonctions random pour programmer un autre jeu.
NOUVEAU PROGRAMME : Gioco_banco.py
Instructions : Répondez aux questions en choisissant ou en complétant avec le pronom relatif correct.…
Les pronoms relatifs sont utilisés pour relier deux propositions en évitant la répétition d’un mot…
Exercice 1 : Complétez les phrases avec le bon adjectif possessif C’est ______ (je) stylo.…
Les adjectifs possessifs servent à indiquer à qui appartient un objet, une personne ou un…
La gestion des coûts est l’un des aspects les plus critiques de tout projet de…
La maintenance préventive est une stratégie clé dans la gestion des équipements et des infrastructures.…
This website uses cookies.