Calculs approximatifs !
Calculs approximatifs !
Il faut savoir que python n'est pas un logiciel de calcul formel, en tous cas pas sans l'importation d'un module adéquat. Donc a priori, il ne fait pas de calcul exact et il faut considérer que les valeurs numériques sont approchées. Il faut donc être prudent quand on teste si une égalité est vraie ou fausse.
>>> from math import sqrt
>>> a = sqrt(2)
>>> b = sqrt(3)
>>> c = sqrt(5)
>>> # testons maintenant une égalité
>>> a**2 + b**2 == c**2
False
Le résultat n'est pas celui attendu. En effet, on a bien
Messages d'erreur
Pour tout savoir, il faut se rendre à la documentation officielle. Pour faire simple, disons qu'il y a deux types d'erreur :
- les erreurs de syntaxe comme par exemple l'oubli d'un : à la fin d'une ligne if,
- les autres erreurs sont appelées exceptions.
Voyons les plus courantes pour le débutant.
>>> a = 0
>>> 1/a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
Le message d'erreur ici est composé de trois lignes, mais c'est la dernière ligne qui doit être lue avec attention. Cette dernière rappelle que la division par zéro n'est pas autorisée. Le nom de l'exception ZeroDivisionError est d'ailleurs très clair.
Il faut aussi faire attention aux index des listes et se rappeler que la numérotation des listes commence à 0.
>>> maliste = [2, 5, 10]
>>> maliste[2]
10
>>> maliste[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
L'exception IndexError indique ici que l'on est allé trop loin dans la numérotation.
Il faut aussi se rappeler que l'on ne peut pas faire d'opérations avec des variables qui n'ont pas été préalablement définies.
>>> b + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
L'exception NameError nous dit bien que la variable b n'a pas été définie.
Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source