Mise en évidence
Pour faire apparaitre la necessité des tests, on peut faire manipuler les fonctions suivantes aux élèves. On leur donne la liste des fonctions possibles (carre_v1(x), carre_v2(x), cube_v1(x), cube_v2(x), cube_v3(x), somme1(n), somme2(n), somme3(n)). Pour leur faire manipuler sans que ceux-ci aient le code, on utilise le fichier compilé. On peut utiliser les fonctions help et dir :
exemple :
-help (cube_v1()) affiche "renvoie le carré de x"
-dir (module) : affiche toutes les fonctions définies dans le module notamment.
""" différentes fonctions pour mettre en evidence les besoins de tests
fonctions à ajouter au fichier pyc
"""
def carre_v1(x):
"""renvoie le carré de x"""
return int(x)**2 #ne fonctionne que pour des entiers
def carre_v2(x):
"""renvoie le carré de x"""
return x**2 #fonction correcte
def cube_v1(x):
"""renvoie de x^3"""
return int(x)**3 #ne fonctionne que pour des entiers
def cube_v2(x):
"""renvoie de x^3"""
return x**3 #fonction correcte
def cube_v3(x):
"""renvoie de x^3"""
return abs(x)**3 #ne fonctionne que pour x>=0
def somme1(n):
"""envoie la somme des n premiers termes"""
somme=1
for i in range(2, n+1):
somme=somme+i
return(somme) #résultat faux sur le cas n=0
def somme2(n):
"""réalise la somme des premiers termes"""
if n==1:
return 1
return (n+somme3(n-1)) #erreur sur le cas n=0
def somme3(n):
"""réalise la somme des premiers termes"""
somme=0
for i in range(1, n+1):
somme=somme+i
return(somme) #correcte
Méthode : Compiler le fichier
Deux modes possibles de création du fichier compilé :
-en mode console :
python -m py_compile mon_module.py
Il se crée un dossier pycache et le fichier compilé est dans ce dossier.
- via un programme python :
from compileall import compile_path
compile_path("chemin\vers\mon\fichier.py")
Pour l'utiliser, placer votre fichier compilé (*.pyc) dans le même dossier que votre fichier et l'appeler comme un module :
from fonctions_dans_pyc import *
print (carre_v1(1.5))
print (carre_v2(1.5))