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
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
Concepts en pratique
Importer un module
À vous d'essayer
Module de conversion
Écrivez un module qui définit les fonctions suivantes :
cel2fah(c)–
Convertit une température de Celsius en Fahrenheit.
La formule est9/5 * c + 32.fah2cel(f)–
Convertit une température de Fahrenheit en Celsius.
La formule est5/9 * (f - 32).km2mi(km)–
Convertit une distance de kilomètres en miles.
La formule estkm / 1.60934.mi2km(mi)–
Convertit une distance de miles en kilomètres.
La formule estmi * 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 :
- 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.
- 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.