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.

1
""" différentes fonctions pour mettre en evidence les besoins de tests
2
    fonctions à ajouter au fichier pyc
3
"""
4
5
6
def carre_v1(x):         
7
    """renvoie le carré de x"""
8
    return int(x)**2     #ne fonctionne que pour des entiers
9
10
def carre_v2(x):        
11
    """renvoie le carré de x"""
12
    return x**2         #fonction correcte
13
14
def cube_v1(x):         
15
    """renvoie de x^3"""
16
    return int(x)**3    #ne fonctionne que pour des entiers
17
18
def cube_v2(x):         
19
    """renvoie de x^3"""
20
    return x**3         #fonction correcte
21
22
def cube_v3(x):         
23
    """renvoie de x^3"""
24
    return abs(x)**3    #ne fonctionne que pour x>=0
25
26
def somme1(n):          
27
    """envoie la somme des n premiers termes"""
28
    somme=1
29
    for i in range(2, n+1):
30
        somme=somme+i
31
    return(somme)       #résultat faux sur le cas n=0
32
33
def somme2(n):          
34
    """réalise la somme des premiers termes"""
35
    if n==1:
36
        return 1
37
    return (n+somme3(n-1))   #erreur sur le cas n=0
38
   
39
def somme3(n):          
40
    """réalise la somme des premiers termes"""
41
    somme=0
42
    for i in range(1, n+1):
43
        somme=somme+i
44
    return(somme)       #correcte

MéthodeCompiler 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 :

1
from compileall import compile_path
2
compile_path("chemin\vers\mon\fichier.py")
3

Pour l'utiliser, placer votre fichier compilé (*.pyc) dans le même dossier que votre fichier et l'appeler comme un module :

1
from fonctions_dans_pyc import *
2
3
print (carre_v1(1.5))
4
print (carre_v2(1.5))