Les bases des modules

7.1 Les bases des modules

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Écrire un module composé uniquement de définitions de fonctions.
  • Importer le module et utiliser les fonctions dans un programme.

Définir un module

Les modules sont définis en plaçant du code dans un fichier .py. Le module area ci-dessous se trouve dans un fichier nommé area.py. Ce module fournit des fonctions pour calculer des aires.

Exemple 7.1

Le module area

    """Functions to calculate the area of geometric shapes."""

    import math

    # 2D shapes

    def square(side):
        """Gets the area of a square."""
        return side**2

    def rectangle(length, width):
        """Gets the area of a rectangle."""
        return length * width

    def triangle(base, height):
        """Gets the area of a triangle."""
        return 0.5 * base * height

    def trapezoid(base1, base2, height):
        """Gets the area of a trapezoid."""
        return 0.5 * (base1 + base2) * height

    def circle(radius):
        """Gets the area of a circle."""
        return math.pi * radius**2

    def ellipse(major, minor):
        """Gets the area of an ellipse."""
        return math.pi * major * minor

    # 3D shapes

    def cube(side):
        """Gets the surface area of a cube."""
        return 6 * side**2

    def cylinder(radius, height):
        """Gets the surface area of a cylinder."""
        return 2 * math.pi * radius * (radius + height)

    def cone(radius, height):
        """Gets the surface area of a cone."""
        return math.pi * radius * (radius + math.hypot(height, radius))

    def sphere(radius):
        """Gets the surface area of a sphere."""
        return 4 * math.pi * radius**2

Concepts en pratique

Définir un module

1.
Combien de fonctions sont définies dans le module area ?
  1. 6
  2. 10
  3. 49
2.
Quel serait le résultat de l'exécution de area.py en tant que programme ?
  1. Les fonctions seraient définies et prêtes à être appelées.
  2. Rien ; le module ne contient aucune instruction à exécuter.
  3. SyntaxError
3.
Quelle est la valeur de retour de cube(5) ?
  1. 60
  2. 125
  3. 150

Importer un module

Le module défini dans area.py peut être utilisé dans d'autres programmes. Lors de l'importation du module area, le suffixe .py est supprimé :

    import area
    
    print("Area of a basketball court:", area.rectangle(94, 50))
    print("Area of a circus ring:", area.circle(21))

La sortie est :

    Area of a basketball court: 4700
    Area of a circus ring: 1385.4423602330987

Faites le point

Importer area dans un shell Python

Concepts en pratique

Importer un module

4.
Quelle instruction importerait un module à partir d'un fichier nommé secret.py ?
  1. import secret
  2. import secret.py
  3. import "secret.py"
5.
Quel code renverrait l'aire d'un cercle d'un rayon de 3 mètres ?
  1. circle(3)
  2. area.circle(3)
  3. circle.area(3)
6.
Un programmeur souhaite écrire une fonction qui calcule l'aire d'un hexagone. Où la fonction doit-elle être écrite ?
  1. le programme principal
  2. le module area
  3. le module secret

À vous d'essayer

Module de conversion

Écrivez un module qui définit les fonctions suivantes :

  1. cel2fah(c) –
    Convertit une température de Celsius en Fahrenheit.
    La formule est 9/5 * c + 32.
  2. fah2cel(f) –
    Convertit une température de Fahrenheit en Celsius.
    La formule est 5/9 * (f - 32).
  3. km2mi(km) –
    Convertit une distance de kilomètres en miles.
    La formule est km / 1.60934.
  4. mi2km(mi) –
    Convertit une distance de miles en kilomètres.
    La formule est mi * 1.60934.

Chaque fonction doit inclure une docstring comme première ligne. Une docstring pour le module vous est fournie.

Le module ne doit rien faire d'autre que définir des fonctions. Lorsque vous cliquez sur le bouton « Run », le module doit s'exécuter sans erreur. Aucune sortie ne doit être affichée.

À vous d'essayer

Vacances en Europe

Écrivez un programme qui utilise le module conversion de l'exercice précédent pour compléter une courte histoire. La sortie du programme doit correspondre à l'exemple suivant (saisie en gras) :

    How fast were you driving? 180
    Woah, that's like 112 mph!
    What was the temperature? 35
    That's 95 degrees Fahrenheit!

Remarquez que cet exercice nécessite deux fichiers :

  1. european.py, le programme principal. Les instructions d'entrée et de sortie sont fournies comme point de départ. Modifiez les lignes comportant des commentaires TODO pour utiliser le module de conversion.
  2. conversion.py, l'autre module. Copiez et collez votre code de l'exercice précédent. Importez ce module dans european.py après la docstring.