51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
|
||
# TP n°2 donné le 19/09/2014 - Taille d'un entier en base 10
|
||
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
|
||
|
||
# Q1
|
||
from math import log10
|
||
|
||
# Q2
|
||
from math import floor
|
||
print("Q2", "floor(3.14159265359) retourne", floor(3.14159265359))
|
||
|
||
# Q3
|
||
def taille(entier):
|
||
"""
|
||
Calcule la taille décimale d’un entier positif.
|
||
|
||
CU : entier int ≥ 0
|
||
|
||
Exemple :
|
||
|
||
>>> taille(2014)
|
||
4
|
||
"""
|
||
return floor(log10(entier)) + 1
|
||
|
||
# Q4
|
||
print("Q4", "taille(2**100) retourne", taille(2**100))
|
||
|
||
# Q5
|
||
# Le code qui suit a été éxecuté dans l'interpréteur puis inseré ici en tant
|
||
# que commentaire pour garder le fichier valide car il provoque des erreurs
|
||
|
||
# >>> taille(-2014)
|
||
# Traceback (most recent call last):
|
||
# File "<stdin>", line 1, in <module>
|
||
# File "<stdin>", line 12, in taille
|
||
# ValueError: math domain error
|
||
|
||
# Lors de l'éxecution de ce script, Python détecte une erreur. Il affiche donc
|
||
# dans la console la liste des fonctions appelées en dernier afin de nous aider
|
||
# à voir d'où vient l'erreur. Ici, cette dernière vient de la fonction taille(),
|
||
# plus précisément de la ligne contenant l'instruction suivante :
|
||
# ```return floor(log10(entier)) + 1```
|
||
# Le texte de l'erreur est le suivant : "ValueError: math domain error". Cela
|
||
# signifie qu'une fonction a été appelée avec un argument en dehors de son
|
||
# domaine de définition. La fonction en question est log10 (nous pouvons le
|
||
# vérifier en tapant dans l'interpréteur ```log10(-2014)```, qui est une étape
|
||
# de la fonction taille(), ce qui affiche la même erreur), qui est définie
|
||
# pour tout réel strictement positif. Or, -2014 n'en est pas un, ce qui
|
||
# déclenche l'erreur.
|