Restreindre le domaine
En mathématiques on ne peut pas diviser par zéro ou prendre la racine carrée d'un nombre négatif. Ces fonctions ne sont pas définies partout : leur domaine de définition est restreint.
Tu vas créer une fonction inverse
qui prévient en cas d'opération impossible et ne
génère pas d'erreur.
- 1
Quelle erreur est générée lorsqu'on divise par zéro en Python ? Fais le test dans la console.
Solution
>>> 1 / 0 ZeroDivisionError: division by zero
- 2
Défini une fonction
inverse
qui prend un nombre en argument et renvoie l'inverse de ce nombre. Il n'y a pas de conditionif
pour le moment.Solution
La fonction
inverse
dépend d'un argumentx
et renvoie1 / x
def inverse(x): return 1 / x
- 3
Si tu fais
inverse(0)
dans la console, cela génère une erreur.Utilise une instruction conditionnelle dans la fonction
inverse
: si l'argument est nul, renvoie la chaîne de caractères"impossible"
, sinon renvoie l'inverse du nombre.Solution
Il faut utiliser une instruction conditionnelle. Pour vérifier si
x
est nul on utilise la comparaisonx == 0
et dans ce cas on renvoie'impossible'
. Le blocelse
reprend le code précédent sans changement :def inverse(x): if x == 0: return 'impossible' else: return 1 / x
- 4
Fais quelques calculs dans la console avec ta fonction
inverse
commeinverse(2)
pour vérifier qu'elle fonctionne bien.Finalement assure toi qu'il n'y a pas d'erreur lorsque tu fais
inverse(0)
dans la console.Solution
>>> inverse(2) 0.5 >>> inverse(0) impossible