© Copyright Franck CHEVRIER 2019-2021 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.
Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.
Le but de l'activité est :(extrait du programme d'enseignement scientifique en Terminale)
- étant donné un programme très simple, de proposer des jeux de données d'entrée permettant d'en tester toutes les lignes ;
- de corriger un algorithme ou un programme bogué simple.
1. On fournit ci-dessous une fonction Python inverse qui doit renvoyer l'inverse d'un nombre x entré en argument.
$\quad$Afin de tester cette fonction, on fournit un jeu de données sous forme d'une liste nommée Tests.
a. Observer la construction de la liste Tests. Quelles sont les valeurs de ce jeu de données ?
b. Exécuter les trois cellules suivantes, et vérifier la réponse à la question a.
$\quad$Expliquer l'erreur obtenue dans la 3ème cellule : À quoi correspond-t-elle ?
# Exécuter les 3 cellules suivantes (Sélectionner les cellules puis SHIFT+Entrée)
def inverse(x):
"""
fonction qui renvoie l'inverse de x
"""
return 1/x
Tests = [ 0.1*k for k in range(-10,11) ]
Tests
for x in Tests:
print(inverse(x))
# Écrire ici la fonction inverse modifiée
#Effectuer ici le test
# Sélectionner cette zone puis SHIFT+ENTREE
def moyenne(L):
"""
fonction qui renvoie la moyenne d'une liste de valeurs
"""
return sum(L)/len(L)
from random import randint
Tests = [ [ randint(0,20) for j in range(randint(0,6)) ] for k in range(30)]
Tests
# Effectuer ici la saisie pour tester la fonction moyenne avec le jeu de données Tests
# Écrire ici la fonction moyenne déboguée
# Effectuer ici la saisie pour tester la nouvelle fonction moyenne avec le jeu de données Tests
def resolution(a,b,c):
"""
fonction qui renvoie la solution de l'équation ax+b = c
"""
return (c-b)/a
Tests = [ (randint(-10,10),randint(-10,10),randint(-10,10)) for k in range(30)]
Tests
for valeurs in Tests:
print( resolution(*valeurs) )
# Utiliser ces zones pour définir la fonction, la tester et la déboguer
def diagnostic(m,t):
"""
fonction effectuant le diagnostic à partir de la masse et de la taille
"""
IMC = m/t**2
if IMC<18.5:
bilan = "maigreur"
if IMC<25:
bilan = "dans la norme"
if IMC>25:
bilan = "surpoids"
return bilan
# Quelques tests:
from random import randint
Tests = [ ( randint(45,110) , randint(130,200)/100) for k in range(30) ]
for donnees in Tests:
print( donnees,diagnostic(*donnees) )
© Copyright Franck CHEVRIER 2019-2021 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.