This repository has been archived on 2019-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
s1-tp/S1/TP 2/Taille d un entier en base 10.py
2014-10-07 19:32:31 +02:00

51 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 dun 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.