Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Python 3
  3. Fonctions et modules
Extrait - Python 3 Les fondamentaux du langage (4e édition)
Extraits du livre
Python 3 Les fondamentaux du langage (4e édition)
3 avis
Revenir à la page d'achat du livre

Fonctions et modules

Les fonctions

1. Pourquoi utiliser des fonctions ?

Lorsque l’on développe, on utilise énormément de fonctions, comme par exemple print ou input que nous avons vues au chapitre précédent. Ces dernières sont assez simples à manipuler pour plusieurs raisons :

  • elles portent un nom simple qui indique bien à quoi elles servent ;

  • elles prennent des paramètres qui permettent de varier la manière dont on les utilise ;

  • on n’a pas besoin de savoir comment elles sont écrites, juste ce qu’elles vont faire.

Lorsque vous écrirez votre propre code, vous allez devoir concevoir des algorithmes plus ou moins complexes, et lorsque vous n’êtes pas organisé, vous allez produire ce que nous avons fait jusqu’à présent : un code parfaitement linéaire.

L’inconvénient principal est le suivant : un tel code est une longue prose, sans repères particuliers. Il est difficile d’en isoler une partie et de toujours savoir quelle ligne est appelée à quel moment. Usuellement, on considère qu’une fonction bien faite doit faire une dizaine de lignes en moyenne, 20 à 25 au maximum.

Ces métriques ne sont pas, bien entendu, des obligations, mais un ordre d’idée à garder en tête et à essayer de respecter pour avoir un code lisible et compréhensible par tous, y compris par vous quelques mois plus tard, lorsque ce que vous avez écrit ne sera plus aussi frais qu’au moment où vous l’écrivez.

En effet, un code trop long est difficile à lire, à appréhender et donc à maintenir.

Le constat...

Les modules

1. Introduction

a. Qu’est-ce qu’un module ?

Un module est une collection de fonctions, classes, constantes ou autres variables. Il faut voir les modules comme les étagères de votre bibliothèque. Vous les utilisez pour ranger le code que vous écrivez d’une manière bien organisée.

Cette organisation, par contre, est laissée à votre discrétion : chacun est libre de procéder comme il l’entend. Bien entendu, il existe certaines recommandations, en particulier lorsque vous utilisez des projets qui nécessitent une solide architecture, comme Django, mais une fois encore, c’est vous qui décidez.

Il faut aussi savoir que n’importe quel module peut potentiellement être un point d’entrée. Ainsi, s’il n’y a rien d’autre que des constantes, des classes et des fonctions, ce module ne fera pas grand-chose : il se chargera et le programme se terminera aussitôt. Ce genre de module est en réalité plutôt destiné à être importé par un autre module.

Au contraire, s’il y a des appels de fonctions, alors on verra le résultat de ces appels. Quoi qu’il en soit, il est important d’identifier le module qui est le point d’entrée de l’application. Nous y reviendrons.

b. Comment crée-t-on un module Python ?

En Python, un module est tout simplement un fichier portant l’extension .py.

On peut créer un paquet (ou package en anglais), ce qui n’est rien d’autre qu’une arborescence de modules. Un répertoire peut être un module Python à condition de disposer d’un fichier __init__.py...

Terminer le jeu

Pour terminer ce tutoriel, nous vous proposons de réaliser plusieurs exercices.

Nous avons ici défini l’essentiel des briques pour créer un jeu consistant à deviner un nombre. Nous vous proposons de partir de la toute dernière version du jeu (20_Module_2) et de suivre plusieurs axes pour aller plus loin.

1. Créer des niveaux

Le premier axe consiste à créer un menu permettant de choisir un niveau de difficulté lié à une présélection des bornes du jeu : niveau simple (entre 0 et 100), niveau moyen (entre 0 et 1000), niveau avancé (entre 0 et 1 000 000) et niveau maître (entre 0 et 1 000 000 000 000).

Le joueur pourra alors simplement choisir son niveau, par exemple entre 1 ou 4, et les minimum et maximum seront alors automatiquement déterminés.

Accessoirement, vous pourrez, quel que soit le niveau, proposer à votre joueur d’avoir une aide (affichage du minimum et du maximum déduits des précédentes saisies) ou de la refuser.

Vous créerez une fonction pour gérer ce menu, que vous mettrez dans un nouveau module saisie.menu. Vous devrez aussi créer de nouvelles fonctions dans le module jeu et revoir la fonction jouer.

2. Déterminer un nombre de coups maximal

Il est également possible de compter le nombre de coups joués (éventuellement de l’afficher) et de terminer la partie si l’on atteint un maximum (que vous êtes libre de définir pour chaque niveau, mais soyez généreux).

Cela sera un excellent exercice qui vous imposera de vous essayer à la maintenance applicative en devant, a posteriori, reprendre...